From da020dcd850b4c47d09b2829235ae3f161168ec0 Mon Sep 17 00:00:00 2001 From: Dan McArdle Date: Thu, 9 Jan 2025 16:59:48 -0500 Subject: [PATCH] [spec] Enable per-context contribution limits for Private Aggregation The goal is to enable Shared Storage embedders to override the default number of contributions per Private Aggregation report. To that end, this change adds the `maxContributions` field to the web-visible Private Aggregation config dictionary and plumbs its value into Private Aggregation's "pre-specified report parameters". Context: * Explainer: patcg-individual-drafts/private-aggregation-api#146 * Spec change: patcg-individual-drafts/private-aggregation-api#164 --- spec.bs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec.bs b/spec.bs index 58b582b..fe4d0aa 100644 --- a/spec.bs +++ b/spec.bs @@ -575,11 +575,24 @@ Moreover, each {{SharedStorageWorklet}}'s [=global scopes|list of global scopes= 1. If |filteringIdMaxBytes| is not the [=default filtering ID max bytes=] or |contextId| is not null, return a new {{DOMException}} with name "`DataError`". + 1. Let |maxContributions| be null. + 1. If + |privateAggregationConfig|["{{SharedStoragePrivateAggregationConfig/maxContributions}}"] + [=map/exists=], set |maxContributions| to + |privateAggregationConfig|["{{SharedStoragePrivateAggregationConfig/maxContributions}}"]. + 1. If |maxContributions| is not a positive integer, set |maxContributions| to null. 1. Return a new [=pre-specified report parameters=] with the items: : context ID :: |contextId| : [=pre-specified report parameters/filtering ID max bytes=] :: |filteringIdMaxBytes| + : requested max contributions + :: |maxContributions| + + Issue: Remove the `ignore` tag on requested max + contributions once Private Aggregation's [PR + #164](https://github.com/patcg-individual-drafts/private-aggregation-api/pull/164) + is merged.
@@ -1446,6 +1459,7 @@ On the other hand, methods for getting data from the [=shared storage database=] USVString aggregationCoordinatorOrigin; USVString contextId; [EnforceRange] unsigned long long filteringIdMaxBytes; + [EnforceRange] unsigned long long maxContributions; }; dictionary SharedStorageRunOperationMethodOptions {