diff --git a/spec.bs b/spec.bs index 48cce048c..5653f5ce8 100644 --- a/spec.bs +++ b/spec.bs @@ -35,6 +35,8 @@ urlPrefix: https://github.com/WICG/turtledove/blob/main/FLEDGE_k_anonymity_serve type: dfn; text: k-anonymity; url: what-is-k-anonymity urlPrefix: https://developer.chrome.com/en/docs/privacy-sandbox/glossary/ type: dfn; text: ad creative; url: ad-creative +spec: RFC4648; urlPrefix: https://datatracker.ietf.org/doc/html/rfc4648 + type: dfn; text: base64url; url: section-5 spec: RFC6234; urlPrefix: https://www.ietf.org/rfc/rfc6234.txt type: dfn; text: SHA-256 urlPrefix: https://datatracker.ietf.org/doc/html/rfc8032 @@ -2773,9 +2775,15 @@ a {{ReportingBrowserSignals}} |browserSignals|, a [=direct from seller signals=] To parse and validate server response given an [=auction config=] |auctionConfig|, an [=auction config=]-or-null |topLevelAuctionConfig|, a [=global object=] |global|, a [=list=] of [=interest groups=] |bidIgs|, and a [=list=] of [=bid debug reporting info=] -|bidDebugReportInfoList|: +|bidDebugReportInfoList|, perform the following steps. They return a [=leading bid info=] or a failure. 1. [=Assert=] that these steps are running [=in parallel=]. +1. Let |hash| be the [=SHA-256=] of |auctionConfig|'s [=auction config/server response=]. +1. Let |capturedAuctionHeaders| be |global|'s [=associated Document's=] [=node navigable's=] + [=traversable navigable's=] [=traversable navigable/captured ad auction result headers=]. +1. Let |seller| be |auctionConfig|'s [=auction config/seller=]. +1. If |capturedAuctionHeaders|[|seller|] does not [=map/exist=] or does not [=list/contain=] |hash|, + then return failure. 1. Let |requestId| be the value of |auctionConfig|'s [=auction config/server response id=]. 1. Let |requestContexts| be the value of |global|'s [=associated Document's=] [=node navigable's=] [=traversable navigable's=] [=traversable navigable/saved Bidding and Auction request context=]. @@ -5576,9 +5584,6 @@ prevents a leak of the user's ad interest group membership to the server. # Fetch Patch for Auction Headers # {#fetch-patch-for-auction-headers} - Issue: TODO: Handle Bidding and Auction Server header. - (WICG/turtledove#1254) - This section specifies a manner by which some data, including [=additional bids=] and [=direct from seller signals=], may be provided to auctions such that the data is only used within their intended auction. @@ -5586,7 +5591,8 @@ their intended auction. Any {{Document}} in a [=traversable navigable=] may run a Protected Audience auction (with {{Window/navigator}}.{{Navigator/runAdAuction()}}) whose [=script runners=] functions receive signal objects derived from JSON from an [:Ad-Auction-Signals:] header, or [=additional bids=] derived from -an [:Ad-Auction-Additional-Bid:] header, captured by a {{WindowOrWorkerGlobalScope/fetch()}} call +an [:Ad-Auction-Additional-Bid:] header, or response blob's [=base64url=] encoded [=SHA-256=] hash +derived from an [:Ad-Auction-Result:] header, captured by a {{WindowOrWorkerGlobalScope/fetch()}} call (using the {{RequestInit/adAuctionHeaders}} option) initiated by any *other* {{Document}} in the *same* [=traversable navigable=], or from an iframe navigation @@ -5624,6 +5630,10 @@ the [=string representation=] of a [=version 4 UUID=] and whose [=map/values=] are [=server auction request contexts=]. +Each [=traversable navigable=] has a captured ad auction result +headers, which is a [=map=] whose [=map/keys=] are [=origins=] and [=map/values=] are +[=strings=]. +
Ad-Auction-Result
\`
+HTTP response header.Ad-Auction-Result
\` response header provides the
+[=base64url=] encoded [=SHA-256=] hash of the response blob. Multiple hashes can be included in a
+response by either repeating the header or by specifying multiple hashes separated by a "`,`" character.
+
++ Ad-Auction-Result: ungWv48Bz-pBQUDeXa4iI7ADYaOWF3qctBD_YfIAFa0=,9UTB-u-WshX66Xqz5DNCpEK9z-x5oCS5SXvgyeoRB1k= ++ is equivalent to +
+ Ad-Auction-Result: ungWv48Bz-pBQUDeXa4iI7ADYaOWF3qctBD_YfIAFa0= + Ad-Auction-Result: 9UTB-u-WshX66Xqz5DNCpEK9z-x5oCS5SXvgyeoRB1k= ++