Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spec: Fix error and not requested cases around trusted bidding signals #1180

Merged
merged 9 commits into from
May 29, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 22 additions & 17 deletions spec.bs
Original file line number Diff line number Diff line change
Expand Up @@ -3386,9 +3386,10 @@ of the following global objects:
To <dfn>evaluate a bidding script</dfn> given a [=string=] |script|, an {{unsigned short}}
|multiBidLimit|, an [=interest group=] |ig|, a [=currency tag=] |expectedCurrency|,
a {{GenerateBidInterestGroup}} |igGenerateBid|, a [=string=]-or-null
|auctionSignals|, a [=string=]-or-null |perBuyerSignals|, an [=ordered map=]-or-null |trustedBiddingSignals|,
a {{BiddingBrowserSignals}} |browserSignals|, a {{DirectFromSellerSignalsForBuyer}}
|directFromSellerSignalsForBuyer| and an integer millisecond [=duration=] |timeout|:
|auctionSignals|, a [=string=]-or-null |perBuyerSignals|, an [=ordered map=]-or-null
|trustedBiddingSignals|, a {{BiddingBrowserSignals}} |browserSignals|,
a {{DirectFromSellerSignalsForBuyer}} |directFromSellerSignalsForBuyer| and an integer millisecond
[=duration=] |timeout|:

1. Let |realm| be the result of [=creating a new script runner realm=] given
{{InterestGroupBiddingScriptRunnerGlobalScope}}.
Expand Down Expand Up @@ -5033,7 +5034,7 @@ An <dfn>interest group</dfn> is a [=struct=] with the following [=struct/items=]
[=same origin=] with [=interest group/owner=].
</p>
: <dfn>trusted bidding signals keys</dfn>
:: A [=list=] of [=string=]. See [=building trusted bidding signals url=].
:: A [=list=] of [=strings=]. See [=building trusted bidding signals url=].
: <dfn>trusted bidding signals slot size mode</dfn>
:: "`none`", "`slot-size`" or "`all-slots-requested-sizes`". Initially "`none`". Each value
reprensents a {{long}} integer. See [=calculate the ad slot size query param=].
Expand Down Expand Up @@ -5401,7 +5402,7 @@ To <dfn>look up per-buyer multi-bid limit</dfn> given an [=auction config=] |auc
<h3 id=bid-generators>Bid generator</h3>

A <dfn>per buyer bid generator</dfn> is an [=ordered map=] whose [=map/keys=] are [=URLs=]
representing [=interest group/trusted bidding signals urls=] or null, and whose [=map/values=] are
or null representing [=interest group/trusted bidding signals urls=], and whose [=map/values=] are
morlovich marked this conversation as resolved.
Show resolved Hide resolved
[=per signals url bid generators=].

A <dfn>per signals url bid generator</dfn> is an [=ordered map=] whose [=map/keys=] are [=origins=]
Expand Down Expand Up @@ -5491,16 +5492,18 @@ and a [=string=] |slotSizeQueryParam|:
1. [=map/For each=] |key| → |value| in |partialTrustedBiddingSignals|:
1. Set |trustedBiddingSignalsBatcher|'s
morlovich marked this conversation as resolved.
Show resolved Hide resolved
[=trusted bidding signals batcher/all trusted bidding signals=][|key|] to |value|.
1. [=set/For each=] |igName| of |trustedBiddingSignalsBatcher|'s [=trusted bidding signals batcher/ig names=]:
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s [=trusted bidding signals batcher/data versions=][|igName|]
to |dataVersion|.
1. [=set/For each=] |igName| of |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/ig names=]:
morlovich marked this conversation as resolved.
Show resolved Hide resolved
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/data versions=][|igName|] to |dataVersion|.
1. [=Append to a bidding signals per-interest group data map=] with
|partialPerInterestGroupData|, |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/ig names=], and |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/all per interest group data=].
1. [=set/For each=] |igName| of |trustedBiddingSignalsBatcher|'s [=trusted bidding signals batcher/ig names=]:
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s [=trusted bidding signals batcher/no signals flags=][igName]
to true.
1. Otherwise, [=set/for each=] |igName| of |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/ig names=]:
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/no signals flags=][|igName|] to true.

</div>

Expand All @@ -5514,12 +5517,14 @@ and a [=string=] |slotSizeQueryParam|:
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s [=trusted bidding signals batcher/no signals flags=]
[|ig|'s [=interest group/name=]] to true.
1. Return.
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s [=trusted bidding signals batcher/no signals flags=]
[|ig|'s [=interest group/name=]] to [=interest group/trusted bidding signals keys=] [=map/is empty=].

Note: an interest group with no trusted signals keys requests would still fetch and process
per-interest group data like priorityVector and updateIfOlderThanMs, but it will get
null passed in to its bidding function.
1. [=map/Set=] |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/no signals flags=][|ig|'s [=interest group/name=]] to
[=interest group/trusted bidding signals keys=] [=map/is empty=].

Note: An interest group with no trusted signals keys requests would still fetch and process
per-interest group data like priorityVector and
[=bidding signals per interest group data/updateIfOlderThanMs=], but it will get null passed in
to its bidding function.

1. Let |putativeKeys| be a [=set/clone=] of |trustedBiddingSignalsBatcher|'s
[=trusted bidding signals batcher/keys=].
Expand Down
Loading