0

Deprecate and remove web bundle directFromSellerSignals

The header-based version of directFromSellerSignals
(directFromSellerSignalsHeaderAdSlot) is unaffected.

Also, adds a WPT negative test, and uses a feature flag to control the
removal.

Usage metrics for web-bundle directFromSellerSignals are extremely low [0].

I2D&R thread [1].

[0] https://chromestatus.com/metrics/feature/timeline/popularity/5034

[1] https://groups.google.com/a/chromium.org/g/blink-dev/c/t9gHiTwV370

Bug: 384481095
Change-Id: I36d6ba9dbbeef4c434d00f5ba61cb1696bfbe11d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6096602
Reviewed-by: Mike Taylor <miketaylr@chromium.org>
Commit-Queue: Paul Jensen <pauljensen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1400484}
This commit is contained in:
Caleb Raitto
2024-12-27 06:31:30 -08:00
committed by Chromium LUCI CQ
parent 68432900b9
commit 2d59b38ce9
5 changed files with 24 additions and 23 deletions
content/browser/interest_group
third_party/blink

@ -751,6 +751,9 @@ class InterestGroupBrowserTest : public ContentBrowserTest {
{blink::features::kFledgeAuctionDealSupport, {}},
{blink::features::kFledgeDeprecatedRenderURLReplacements, {}},
{blink::features::kFledgeSellerNonce, {}},
// TODO(crrev.com/c/6096602): Remove once implementation is removed.
{blink::features::kFledgeDirectFromSellerSignalsWebBundles, {}},
{blink::features::kFledgeSellerNonce, {}},
{blink::features::kFledgeTrustedSignalsKVv2Support, {}}},
/*disabled_features=*/
{blink::features::kFencedFrames,

@ -55,6 +55,7 @@ dictionary AuctionAdConfig {
Promise<any> auctionSignals;
Promise<any> sellerSignals;
[RuntimeEnabled=FledgeDirectFromSellerSignalsWebBundles]
Promise<USVString?> directFromSellerSignals;
[RuntimeEnabled=FledgeDirectFromSellerSignalsHeaderAdSlot]
Promise<DOMString?> directFromSellerSignalsHeaderAdSlot;

@ -2037,6 +2037,14 @@
name: "FledgeDirectFromSellerSignalsHeaderAdSlot",
status: "stable",
},
{
// Feature flag to control removal, in case we run into unexpected
// breakage.
//
// TODO(crbug.com/384481095): Remove in a few milestones, along with the
// implementation code.
name: "FledgeDirectFromSellerSignalsWebBundles",
},
{
name: "FledgeMultiBid",
public: true,

@ -17,8 +17,7 @@
// META: variant=?51-55
// META: variant=?56-60
// META: variant=?61-65
// META: variant=?66-70
// META: variant=?71-last
// META: variant=?66-last
"use strict;"
@ -350,27 +349,6 @@ makeTest({
auctionConfigOverrides: { sellerSignals: { sig: BigInt(13) } },
});
makeTest({
name: 'directFromSellerSignals is invalid',
expect: EXPECT_PROMISE_ERROR,
expectPromiseError: EXPECT_EXCEPTION(TypeError),
auctionConfigOverrides: { directFromSellerSignals: "https://foo:99999999999" },
});
makeTest({
name: 'directFromSellerSignals is cross-origin with seller',
expect: EXPECT_PROMISE_ERROR,
expectPromiseError: EXPECT_EXCEPTION(TypeError),
auctionConfigOverrides: { directFromSellerSignals: "https://example.com" },
});
makeTest({
name: 'directFromSellerSignals has nonempty query',
expect: EXPECT_PROMISE_ERROR,
expectPromiseError: EXPECT_EXCEPTION(TypeError),
auctionConfigOverrides: { directFromSellerSignals: window.location.origin + "?foo=bar" },
});
makeTest({
name: 'perBuyerSignals has invalid URL in a key',
expect: EXPECT_PROMISE_ERROR,

@ -503,6 +503,17 @@ subsetTest(promise_test, async test => {
assert_true(dfss);
}, 'Test directFromSellerSignals feature detection.');
// The version of directFromSellerSignals based on web bundles preceded the
// header-based version -- the web bundle version has been deprecated and
// removed.
subsetTest(promise_test, async test => {
let dfss = false;
navigator.runAdAuction({
get directFromSellerSignals() { dfss = true; }
}).catch((e) => {});
assert_false(dfss);
}, 'Negative test for deprecated and removed web-bundle directFromSellerSignals.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await fetchDirectFromSellerSignals({ 'Buyer-Origin': window.location.origin });