LGTM2
On 2/11/25 1:52 PM, Chris Harrelson wrote:
LGTM1
On Thu, Feb 6, 2025 at 9:57 AM Dan McArdle <dmcar...@chromium.org> wrote:
Thanks for the questions, Yoav.
First, a little background. Sites make contributions to Private
Aggregation histograms from within isolated contexts that have
access to cross-site data. The browser sends these contributions
back to the site that made them via the encrypted payload of an
aggregatable report. Although the reporting endpoint cannot
decrypt incoming payloads (that is the Aggregation Service’s job),
it can still see each payload's /length/.
Can you expand a bit on what this limit is protecting against,
and why it's fine to remove it?
For privacy, we cannot let the payload length depend on cross-site
data. To that end, the browser limits the number of contributions
per report, without any input from the isolated context. It also
pads the payload with null contributions up to the limit to
achieve a fixed length prior to encryption.
Today, the limit is based solely on the identity of the calling
API. This I2S proposes a more flexible way to select the limit.
We’d like to enable Shared Storage callers to configure their
operations with `maxContributions`, an optional field that
pre-declares the maximum number of contributions the operation can
make. This scheme enables sites to customize the number of
contributions per report without letting isolated contexts leak
cross-site data.
What are the tradeoffs here?
The primary tradeoff is that larger reports cost more to process
on the Aggregation Service in terms of computation and storage.
Secondly, processing each report has a fixed computational
overhead independent of its size; we expect that it’s always more
efficient to send N contributions in one report than N
contributions across multiple reports.
Also, why would developers want to reduce the limit?
The default limit for Shared Storage is currently 20 contributions
per report. This one size may not fit all use cases.
Sites that send more than 20 contributions across multiple reports
by triggering multiple Shared Storage operations could leverage
`maxContributions` to send fewer, larger reports. This should
reduce the cost of processing these contributions on the
Aggregation Service.
On the other hand, sites that make fewer than 20 contributions per
Shared Storage operation could reduce costs by setting
`maxContributions` to a smaller number, since it would reduce the
payload length.
Thanks!
Dan
On Wed, Feb 5, 2025 at 11:25 AM Yoav Weiss (@Shopify)
<yoavwe...@chromium.org> wrote:
On Tuesday, February 4, 2025 at 9:20:37 PM UTC+1 Dan McArdle
wrote:
Contact emailsdmcar...@chromium.org
Explainerhttps://github.com/patcg-individual-drafts/private-aggregation-api#limiting-the-number-of-contributions-per-report
<https://github.com/patcg-individual-drafts/private-aggregation-api#limiting-the-number-of-contributions-per-report>
Specificationhttps://github.com/patcg-individual-drafts/private-aggregation-api/pull/164/files
<https://github.com/patcg-individual-drafts/private-aggregation-api/pull/164/files>
Summary
Enables Shared Storage callers to customize the number of
contributions per Private Aggregation report. This feature
enables Shared Storage callers to configure per-context
contribution limits via a new field, `maxContributions`.
Callers set this field to override the default number of
contributions per report — larger and smaller numbers will
both be permitted. Chrome will accept values of
`maxContributions` between 1 and 1000 inclusive; larger
values will be interpreted as 1000.
Can you expand a bit on what this limit is protecting against,
and why it's fine to remove it? What are the tradeoffs here?
Also, why would developers want to reduce the limit?
Due to padding, the size of each report's payload will be
roughly proportional to the chosen number of contributions
per report. We expect that opting into larger reports will
increase the cost of operating the Aggregation Service.
Protected Audience callers will not be affected by this
feature. However, we are planning to add support for
customizing the number of contributions for Protected
Audience reports in future features.
Blink componentBlink>PrivateAggregation
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPrivateAggregation%22>
TAG
reviewhttps://github.com/w3ctag/design-reviews/issues/846
<https://github.com/w3ctag/design-reviews/issues/846>
TAG review statusDeclined
Risks
Interoperability and Compatibility
None
/Gecko/: No signal
(https://github.com/mozilla/standards-positions/issues/805
<https://github.com/mozilla/standards-positions/issues/805>)
/WebKit/: No signal
(https://github.com/WebKit/standards-positions/issues/189
<https://github.com/WebKit/standards-positions/issues/189>)
/Web developers/: Positive
(https://github.com/patcg-individual-drafts/private-aggregation-api/issues/81
<https://github.com/patcg-individual-drafts/private-aggregation-api/issues/81>)
/Other signals/:
WebView application risks
Does this intent deprecate or change behavior of existing
APIs, such that it has potentially high risk for Android
WebView-based applications?
None
Debuggability
No new debug capabilities beyond the existing internals
page (chrome://private-aggregation-internals) and debug
mode. These capabilities will reflect the variable number
of contributions across payloads.
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android
WebView)?
All but WebView
Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?Yes
Flag name on about://flagsNone
Finch feature namePrivateAggregationApiMaxContributions
Requires code in //chrome?False
Tracking bughttps://crbug.com/376707230
Launch bughttps://launch.corp.google.com/launch/4357940
<https://launch.corp.google.com/launch/4357940>
Estimated milestonesShipping on desktop134Shipping on
Android134
Anticipated spec changes
Open questions about a feature may be a source of future
web compat or interop issues. Please list open issues
(e.g. links to known github issues in the project for the
feature specification) whose resolution may introduce web
compat/interop risk (e.g., changing to naming or structure
of the API in a non-backward-compatible way).
None
Link to entry on the Chrome Platform
Statushttps://chromestatus.com/feature/5189366316793856?gate=5179705727385600
<https://chromestatus.com/feature/5189366316793856?gate=5179705727385600>
This intent message was generated by Chrome Platform
Status <https://chromestatus.com/>.
--
You received this message because you are subscribed to the Google
Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to blink-dev+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGmnN44pgvBDymyiaJNpX%2BREGR2pw8yOPBeAugAnBa-O%2B7%2BFaA%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGmnN44pgvBDymyiaJNpX%2BREGR2pw8yOPBeAugAnBa-O%2B7%2BFaA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google
Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to blink-dev+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8K%2B4pHF9OxtGsjSTCgcEg79f3RQHZHxagX4ZJV-ST7AA%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8K%2B4pHF9OxtGsjSTCgcEg79f3RQHZHxagX4ZJV-ST7AA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bd17c967-f5ee-4a8d-a73c-ce2d4a881a1f%40chromium.org.