Enable InterestGroupStorage and BiddingAndScoringDebugReportingAPI
Enables two features by default. These features are currently enabled
via Finch. This change will allow us to avoid that in the future.
Bug: 1186444
Change-Id: If03aa2373bba298a0d85dd63d2250983862137b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5041672
Reviewed-by: Russ Hamilton <behamilton@google.com>
Reviewed-by: David Bokan <bokan@chromium.org>
Commit-Queue: Alex Turner <alexmt@chromium.org>
Reviewed-by: Theodore Olsauskas-Warren <sauski@google.com>
Cr-Commit-Position: refs/heads/main@{#1231334}
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_browsertest.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_browsertest.cc
index 6e0fa82..623d74a 100644
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_browsertest.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_browsertest.cc
@@ -793,13 +793,18 @@
EXPECT_EQ(response.http_request()->method,
net::test_server::HttpMethod::METHOD_GET);
} else {
- // Verify the console message states to require Protected Audience only.
+ // Verify the console messages states to require Protected Audience only.
+ // Note that two console messages are sent due to debug and normal reporting
ASSERT_TRUE(console_error_observer_->Wait());
- EXPECT_EQ(console_error_observer_->messages().size(), 1u);
+ EXPECT_EQ(console_error_observer_->messages().size(), 2u);
EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(0u),
"Protected Audience"));
EXPECT_FALSE(base::Contains(console_error_observer_->GetMessageAt(0u),
"Attribution Reporting"));
+ EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(1u),
+ "Protected Audience"));
+ EXPECT_FALSE(base::Contains(console_error_observer_->GetMessageAt(1u),
+ "Attribution Reporting"));
// Verify the `reportWin()` beacon was not sent.
fenced_frame_test_helper().SendBasicRequest(
@@ -885,12 +890,17 @@
net::test_server::HttpMethod::METHOD_GET);
} else {
// Verify the console message states to require Protected Audience only.
+ // Note that two console messages are sent due to debug and normal reporting
ASSERT_TRUE(console_error_observer_->Wait());
- EXPECT_EQ(console_error_observer_->messages().size(), 1u);
+ EXPECT_EQ(console_error_observer_->messages().size(), 2u);
EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(0u),
"Protected Audience"));
EXPECT_FALSE(base::Contains(console_error_observer_->GetMessageAt(0u),
"Attribution Reporting"));
+ EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(1u),
+ "Protected Audience"));
+ EXPECT_FALSE(base::Contains(console_error_observer_->GetMessageAt(1u),
+ "Attribution Reporting"));
// Verify the `reportResult()` beacon was not sent.
fenced_frame_test_helper().SendBasicRequest(
diff --git a/content/browser/interest_group/ad_auction_service_impl_unittest.cc b/content/browser/interest_group/ad_auction_service_impl_unittest.cc
index a498c148..c32e5eb3 100644
--- a/content/browser/interest_group/ad_auction_service_impl_unittest.cc
+++ b/content/browser/interest_group/ad_auction_service_impl_unittest.cc
@@ -9983,7 +9983,7 @@
"gCb7U68hruRHrkQd7VXoQQk0C9Kz5iHTtpJ2SjdTiwW4+wc5+OUq8Ay6ql6RmQ"
"pfocD9RbxQn3yRaqdke7/"
"Cv9"
- "4fgB8SY7doAAAAHRlbmFibGVEZWJ1Z1JlcG9ydGluZ/QAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "4fgB8SY7doAAAAHRlbmFibGVEZWJ1Z1JlcG9ydGluZ/UAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
@@ -10137,7 +10137,7 @@
"JMoIjFCkfofEEEflObJTUP+azsKgFeXrT"
"nf18C7Ydx7VMboLtwC30lxOt+RlzQJCsXrtHpPKbqR3XuCedixKnu"
"DfbZw4DPJCaWJW2h4M+3ASxj+2Pxv+8z"
- "JsAAAAdGVuYWJsZURlYnVnUmVwb3J0aW5n9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "JsAAAAdGVuYWJsZURlYnVnUmVwb3J0aW5n9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAA=";
EXPECT_EQ(1, absl::popcount(msg.size())); // Should be a power of 2.
@@ -10149,9 +10149,9 @@
testing::Pair(test_origin_b, testing::ElementsAre("trains"))));
}
-TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithDebugReporting) {
+TEST_F(AdAuctionServiceImplTest, SerializesAuctionBlobWithoutDebugReporting) {
base::test::ScopedFeatureList feature_list;
- feature_list.InitAndEnableFeature(
+ feature_list.InitAndDisableFeature(
blink::features::kBiddingAndScoringDebugReportingAPI);
url::Origin test_origin = url::Origin::Create(GURL(kOriginStringA));
manager_->JoinInterestGroup(
@@ -10182,7 +10182,7 @@
"YS50ZXN0WF8fiwgAAAAAAAAAa1ycnJhS3JhiaGRskpKXmJuakpxYVJyXVJRfXpxaFJyZnpeY"
"U7wkvSg1OTUvuZIxIykzxTm/"
"NK+EIaOgKLUsPDOvuCEzKz8zDyzICAC+EO2LTgAAAHRlbmFibGVEZWJ1Z1JlcG9ydGluZ/"
- "UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
+ "QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
EXPECT_EQ(1, absl::popcount(msg.size())); // Should be a power of 2.
EXPECT_EQ(expected, base::Base64Encode(msg));
EXPECT_THAT(group_names, testing::ElementsAre(testing::Pair(
@@ -10228,7 +10228,7 @@
"YS50ZXN0WGMfiwgAAAAAAAAAa1ycnJhS3JRiaGRskmxiapaSl5ibmpKcWFScl1SUX16cWhSc"
"mZ6XmFO8JL0oNTk1L7mSMSMpM8U5vzSvhCGjoCi1LDwzr7ghMys/"
"Mw8syAgABWZNKFIAAAB0Y29uc2VudGVkRGVidWdDb25maWeiZXRva2VuZ215VG9rZW5raXND"
- "b25zZW50ZWT1dGVuYWJsZURlYnVnUmVwb3J0aW5n9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "b25zZW50ZWT1dGVuYWJsZURlYnVnUmVwb3J0aW5n9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
@@ -10446,7 +10446,7 @@
R"(8681C80804ED5186519838E8338D251B2F37257F722DC345E7D61312E33DEB8C)"
R"(B3B55C392CBAD1D3D438D687EBC5712AB33763F3A2ACB0DA6C936111FC1781BB)"
R"(FDE11FB0FE01C4B83CC7553AFDA05EE2EDA5E5D3000000'}, )"
- R"("enableDebugReporting": false})"));
+ R"("enableDebugReporting": true})"));
AdAuctionPageData* page_data = PageUserData<AdAuctionPageData>::GetForPage(
static_cast<RenderFrameHostImpl*>(main_rfh())->GetPage());
@@ -10804,7 +10804,7 @@
R"(h'1F8B08000000000000006B5C9C9C9852DC986268646C929297989B9A929C58)"
R"(549C9754945F5E9C5A149C999E979853BC24BD283539352FB99231232933C539)"
R"(BF34AF8421A3A028B52C3C33AFB821332B3F330F2CC80800BE10ED8B4E000000)"
- R"('}, "enableDebugReporting": false})"));
+ R"('}, "enableDebugReporting": true})"));
std::string response;
// CBOR response computed using https://cbor.me/
diff --git a/content/browser/interest_group/auction_runner_unittest.cc b/content/browser/interest_group/auction_runner_unittest.cc
index 4564275c..92267a6 100644
--- a/content/browser/interest_group/auction_runner_unittest.cc
+++ b/content/browser/interest_group/auction_runner_unittest.cc
@@ -10524,7 +10524,11 @@
// Should not have any debugging win/loss report URLs after auction when feature
// kBiddingAndScoringDebugReportingAPI is not enabled.
-TEST_F(AuctionRunnerTest, ForDebuggingOnlyReporting) {
+TEST_F(AuctionRunnerTest, ForDebuggingOnlyReportingWithDebugFeatureDisabled) {
+ base::test::ScopedFeatureList scoped_feature_list;
+ scoped_feature_list.InitAndDisableFeature(
+ blink::features::kBiddingAndScoringDebugReportingAPI);
+
auction_worklet::AddJavascriptResponse(
&url_loader_factory_, kBidder1Url,
MakeBidScript(kSeller, "1", "https://ad1.com/", /*num_ad_components=*/2,
diff --git a/content/services/auction_worklet/bidder_worklet_unittest.cc b/content/services/auction_worklet/bidder_worklet_unittest.cc
index a856931..31e72c0 100644
--- a/content/services/auction_worklet/bidder_worklet_unittest.cc
+++ b/content/services/auction_worklet/bidder_worklet_unittest.cc
@@ -5157,7 +5157,11 @@
// Debug win/loss reporting APIs should do nothing when feature
// kBiddingAndScoringDebugReportingAPI is not enabled. It will not fail
// generateBid().
-TEST_F(BidderWorkletTest, ForDebuggingOnlyReports) {
+TEST_F(BidderWorkletTest, ForDebuggingOnlyReportsWithDebugFeatureDisabled) {
+ base::test::ScopedFeatureList scoped_feature_list;
+ scoped_feature_list.InitAndDisableFeature(
+ blink::features::kBiddingAndScoringDebugReportingAPI);
+
RunGenerateBidWithJavascriptExpectingResult(
CreateBasicGenerateBidScriptWithDebuggingReport(
R"(forDebuggingOnly.reportAdAuctionLoss("https://loss.url"))"),
diff --git a/content/services/auction_worklet/seller_worklet_unittest.cc b/content/services/auction_worklet/seller_worklet_unittest.cc
index 072b274..c30b91c 100644
--- a/content/services/auction_worklet/seller_worklet_unittest.cc
+++ b/content/services/auction_worklet/seller_worklet_unittest.cc
@@ -4149,7 +4149,11 @@
task_environment_.RunUntilIdle();
}
-TEST_F(SellerWorkletTest, ForDebuggingOnlyReportsDisabled) {
+TEST_F(SellerWorkletTest, ForDebuggingOnlyReportsWithDebugFeatureDisabled) {
+ base::test::ScopedFeatureList scoped_feature_list;
+ scoped_feature_list.InitAndDisableFeature(
+ blink::features::kBiddingAndScoringDebugReportingAPI);
+
RunScoreAdWithJavascriptExpectingResult(
CreateScoreAdScript(
"1", R"(forDebuggingOnly.reportAdAuctionLoss("https://loss.url"))"),
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index 63998d0..7415498c 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -255,11 +255,9 @@
// See https://github.com/WICG/turtledove/blob/main/FLEDGE.md
// Feature flag to enable debug reporting APIs.
-// Due to an issue in how prevWins were stored this flag should not be enabled
-// until July 2023.
BASE_FEATURE(kBiddingAndScoringDebugReportingAPI,
"BiddingAndScoringDebugReportingAPI",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
// Blink garbage collection.
// Enables compaction of backing stores on Blink's heap.
@@ -1000,7 +998,7 @@
// API exposure will be disabled regardless of the OT config.
BASE_FEATURE(kInterestGroupStorage,
"InterestGroupStorage",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
// TODO(crbug.com/1197209): Adjust these limits in response to usage.
const base::FeatureParam<int> kInterestGroupStorageMaxOwners{
&kInterestGroupStorage, "max_owners", 1000};