From 2a6c10ab88d2a30feebb90231d77af254de5e0c8 Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Fri, 6 Dec 2024 23:02:27 +0000 Subject: [PATCH 1/7] Remove aggregatable report limit when trigger context ID is non-null --- index.bs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index 74875eff6..76fb5ca23 100644 --- a/index.bs +++ b/index.bs @@ -4274,7 +4274,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. If the result of running [=check if attribution should be blocked by rate limits=] with |trigger|, |sourceToAttribute|, and |rateLimitRecord| is not null, return it. -1. If |sourceToAttribute|'s [=attribution source/number of aggregatable attribution reports=] value is equal to [=max aggregatable reports per source=][0], then: +1. If |sourceToAttribute|'s [=attribution source/number of aggregatable attribution reports=] value is equal to [=max aggregatable reports per source=][0] and |trigger|'s [=attribution trigger/trigger context ID=] is null, then: 1. Return the [=triggering result=] ("[=triggering status/dropped=]", ("[=trigger debug data type/trigger-aggregate-excessive-reports=]", null)). 1. If the result of running [=check if an attribution source can create aggregatable contributions=] @@ -4294,7 +4294,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. Decrement |sourceToAttribute|'s [=attribution source/remaining named budgets=][|matchedBudgetName|] value by |report|'s [=aggregatable attribution report/required aggregatable budget=]. 1. If |matchedDedupKey| is not null, [=list/append=] it to |sourceToAttribute|'s [=attribution source/aggregatable dedup keys=]. -1. [=set/Append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. +1. If |trigger|'s [=attribution trigger/trigger context ID=] is null, [=set/append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. 1. Run [=generate null attribution reports=] with |trigger| and |report|. 1. If the result of [=checking if attribution debugging can be enabled=] with |report|'s [=aggregatable attribution report/attribution debug info=] is true, From 6bcae3595e91b037a2399061167d2cadcb64af55 Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Mon, 9 Dec 2024 17:42:03 +0000 Subject: [PATCH 2/7] Remove change to attribution rate limit handling --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 76fb5ca23..1d309dd5f 100644 --- a/index.bs +++ b/index.bs @@ -4294,7 +4294,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. Decrement |sourceToAttribute|'s [=attribution source/remaining named budgets=][|matchedBudgetName|] value by |report|'s [=aggregatable attribution report/required aggregatable budget=]. 1. If |matchedDedupKey| is not null, [=list/append=] it to |sourceToAttribute|'s [=attribution source/aggregatable dedup keys=]. -1. If |trigger|'s [=attribution trigger/trigger context ID=] is null, [=set/append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. +1. [=set/Append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. 1. Run [=generate null attribution reports=] with |trigger| and |report|. 1. If the result of [=checking if attribution debugging can be enabled=] with |report|'s [=aggregatable attribution report/attribution debug info=] is true, From a53283f240a4a692b934151486a7b25910f88de0 Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Tue, 10 Dec 2024 22:30:30 +0000 Subject: [PATCH 3/7] Increment report count if trigger context ID present --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 1d309dd5f..0775ec9dd 100644 --- a/index.bs +++ b/index.bs @@ -4287,7 +4287,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. Return the [=triggering result=] ("[=triggering status/dropped=]", ("[=trigger debug data type/trigger-aggregate-insufficient-named-budget=]", null)). 1. [=set/Append=] |report| to the [=aggregatable attribution report cache=]. -1. Increment |sourceToAttribute|'s [=attribution source/number of aggregatable attribution reports=] value by 1. +1. If |trigger|'s [=attribution trigger/trigger context ID=] is null, increment |sourceToAttribute|'s [=attribution source/number of aggregatable attribution reports=] value by 1. 1. Decrement |sourceToAttribute|'s [=attribution source/remaining aggregatable attribution budget=] value by |report|'s [=aggregatable attribution report/required aggregatable budget=]. 1. If |matchedBudgetName| is not null and |sourceToAttribute|'s [=attribution source/remaining named budgets=][|matchedBudgetName|] [=map/exists=]: From 89b035fa2d7f43bb24b660ce33a21b0796bdfa36 Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Wed, 11 Dec 2024 18:59:11 +0000 Subject: [PATCH 4/7] Amend AGGREGATE.md --- AGGREGATE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AGGREGATE.md b/AGGREGATE.md index 77d92e5a1..cbb6fc0bc 100644 --- a/AGGREGATE.md +++ b/AGGREGATE.md @@ -505,6 +505,9 @@ As the trigger context ID in the aggregatable report explicitly reveals the association between the report and the trigger, these reports can be sent immediately without delay. +When a trigger context ID is provided, the aggregatable report will not count +towards the limit of aggregatable reports per source, nor be limited by it. + Note: This is an [alternative](https://github.com/WICG/attribution-reporting-api/blob/main/report_verification.md#could-we-just-tag-reports-with-a-trigger_id-instead-of-using-anonymous-tokens) considered for [report verification](https://github.com/WICG/attribution-reporting-api/blob/main/report_verification.md), and achieves all of the higher priority [security goals](https://github.com/WICG/attribution-reporting-api/blob/main/report_verification.md#security-goals). From b682d6e39677acb805c58e53a0e22ed7d99b12ce Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Fri, 6 Dec 2024 23:02:27 +0000 Subject: [PATCH 5/7] Remove aggregatable report limit when trigger context ID is non-null --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 0775ec9dd..1a1aac60c 100644 --- a/index.bs +++ b/index.bs @@ -4294,7 +4294,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. Decrement |sourceToAttribute|'s [=attribution source/remaining named budgets=][|matchedBudgetName|] value by |report|'s [=aggregatable attribution report/required aggregatable budget=]. 1. If |matchedDedupKey| is not null, [=list/append=] it to |sourceToAttribute|'s [=attribution source/aggregatable dedup keys=]. -1. [=set/Append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. +1. If |trigger|'s [=attribution trigger/trigger context ID=] is null, [=set/append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. 1. Run [=generate null attribution reports=] with |trigger| and |report|. 1. If the result of [=checking if attribution debugging can be enabled=] with |report|'s [=aggregatable attribution report/attribution debug info=] is true, From a62db817da00f06422d11928827b8efe0732d89e Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Mon, 9 Dec 2024 17:42:03 +0000 Subject: [PATCH 6/7] Remove change to attribution rate limit handling --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 1a1aac60c..0775ec9dd 100644 --- a/index.bs +++ b/index.bs @@ -4294,7 +4294,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. Decrement |sourceToAttribute|'s [=attribution source/remaining named budgets=][|matchedBudgetName|] value by |report|'s [=aggregatable attribution report/required aggregatable budget=]. 1. If |matchedDedupKey| is not null, [=list/append=] it to |sourceToAttribute|'s [=attribution source/aggregatable dedup keys=]. -1. If |trigger|'s [=attribution trigger/trigger context ID=] is null, [=set/append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. +1. [=set/Append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. 1. Run [=generate null attribution reports=] with |trigger| and |report|. 1. If the result of [=checking if attribution debugging can be enabled=] with |report|'s [=aggregatable attribution report/attribution debug info=] is true, From 2075829003ecdf6031d53436037d7a4be7faa4d9 Mon Sep 17 00:00:00 2001 From: Gilad Barkan Date: Fri, 6 Dec 2024 23:02:27 +0000 Subject: [PATCH 7/7] Remove aggregatable report limit when trigger context ID is non-null --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 0775ec9dd..1a1aac60c 100644 --- a/index.bs +++ b/index.bs @@ -4294,7 +4294,7 @@ To trigger aggregatable attribution given an [=attribution trigger=] 1. Decrement |sourceToAttribute|'s [=attribution source/remaining named budgets=][|matchedBudgetName|] value by |report|'s [=aggregatable attribution report/required aggregatable budget=]. 1. If |matchedDedupKey| is not null, [=list/append=] it to |sourceToAttribute|'s [=attribution source/aggregatable dedup keys=]. -1. [=set/Append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. +1. If |trigger|'s [=attribution trigger/trigger context ID=] is null, [=set/append=] |rateLimitRecord| to the [=attribution rate-limit cache=]. 1. Run [=generate null attribution reports=] with |trigger| and |report|. 1. If the result of [=checking if attribution debugging can be enabled=] with |report|'s [=aggregatable attribution report/attribution debug info=] is true,