From d98b3fc26e9015a8fda4aa617d19a7389a95bfdc Mon Sep 17 00:00:00 2001 From: Alex Turner Date: Fri, 18 Oct 2024 11:02:11 -0400 Subject: [PATCH] Spec: export obtain the Private Aggregation coordinator algorithm (#163) The version that takes a USVString is shared between Protected Audience and Shared Storage, so we can export it. Also updates the name of the monkey patched version, which will be removed from this spec soon. --- spec.bs | 53 +++++++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/spec.bs b/spec.bs index 9c13897..378967f 100644 --- a/spec.bs +++ b/spec.bs @@ -641,6 +641,24 @@ an [=origin=] |origin|, perform the following steps. They return a [=boolean=]. +
+To obtain the Private Aggregation coordinator given a +{{USVString}} |originString|, perform the following steps. They return an +[=aggregation coordinator=] or a {{DOMException}}. + +1. Let |url| be the result of running the [=URL parser=] on |originString|. +1. If |url| is failure or null, return a new {{DOMException}} with name + "`SyntaxError`". + + Issue: Consider throwing an error if the path is not empty. +1. Let |origin| be |url|'s [=url/origin=]. +1. If the result of [=determining if an origin is an aggregation coordinator=] + given |origin| is false, return a new {{DOMException}} with name + "`DataError`". +1. Return |origin|. + +
+
To set the aggregation coordinator for a batching scope given an [=origin=] |origin| and a [=batching scope=] |batchingScope|: @@ -1513,8 +1531,8 @@ following steps at the end of the scope nested under step 5 ("Validate the given
17. If |group|["{{AuctionAdInterestGroup/privateAggregationConfig}}"] [=map/exists=]: - 1. Let |aggregationCoordinator| be the result of [=obtaining the Private - Aggregation coordinator=] given + 1. Let |aggregationCoordinator| be the result of [=obtaining the coordinator + from a Private Aggregation config=] given |group|["{{AuctionAdInterestGroup/privateAggregationConfig}}"]. 1. If |aggregationCoordinator| is a {{DOMException}}, then [=exception/throw=] |aggregationCoordinator|. @@ -1610,8 +1628,8 @@ modified to add the following steps just before the last step ("Return : [=debug details/key=] :: |debugKey| 1. If |config|["{{AuctionAdConfig/privateAggregationConfig}}"] [=map/exists=]: - 1. Let |aggregationCoordinator| be the result of [=obtaining the Private - Aggregation coordinator=] given + 1. Let |aggregationCoordinator| be the result of [=obtaining the coordinator + from a Private Aggregation config=] given |config|["{{AuctionAdConfig/privateAggregationConfig}}"]. 1. If |aggregationCoordinator| is a {{DOMException}}, return failure. 1. Set auctionConfig's [=auction config/seller Private @@ -1781,8 +1799,7 @@ steps are modified to add the following case at the end of the "Switch on 1. If |value|["`aggregationCoordinatorOrigin`"] [=map/exists=]: 1. If |value|["`aggregationCoordinatorOrigin`"] is not a [=string=], jump to the step labeled Abort update. - 1. Let |aggregationCoordinator| be the result of [=obtain the Private - Aggregation coordinator from a string|obtaining the Private + 1. Let |aggregationCoordinator| be the result of [=obtaining the Private Aggregation coordinator=] given |value|["`aggregationCoordinatorOrigin`"]. 1. If |aggregationCoordinator| is a {{DOMException}}, jump to the step @@ -2119,37 +2136,17 @@ They return an [=interest group=] or null:
-To obtain the Private Aggregation coordinator given a +To obtain the coordinator from a Private Aggregation config given a {{ProtectedAudiencePrivateAggregationConfig}} |config|, perform the following steps. They return an [=aggregation coordinator=], null or a {{DOMException}}. 1. If |config|["{{ProtectedAudiencePrivateAggregationConfig/aggregationCoordinatorOrigin}}"] does not [=map/exist=], return null. -1. Return the result of [=obtain the Private Aggregation coordinator from a - string|obtaining the Private Aggregation coordinator=] given +1. Return the result of [=obtaining the Private Aggregation coordinator=] given |config|["{{ProtectedAudiencePrivateAggregationConfig/aggregationCoordinatorOrigin}}"].
-
-To obtain the -Private Aggregation coordinator given a {{USVString}} |originString|, -perform the following steps. They return an [=aggregation coordinator=] or a -{{DOMException}}. - -1. Let |url| be the result of running the [=URL parser=] on |originString|. -1. If |url| is failure or null, return a new {{DOMException}} with name - "`SyntaxError`". - - Issue: Consider throwing an error if the path is not empty. -1. Let |origin| be |url|'s [=url/origin=]. -1. If the result of [=determining if an origin is an aggregation coordinator=] - given |origin| is false, return a new {{DOMException}} with name - "`DataError`". -1. Return |origin|. - -
- Privacy considerations {#privacy-considerations} ================================================