0

Fenced frames: Remove FencedFramesReportingAttestationsChanges flag

and feature.

This feature is obsolete and has never been enabled. It was added in
https://chromium-review.googlesource.com/c/chromium/src/+/4949771.
It is a temporary solution for an issue in post-impression beacon.

The problem is when an adtech needs to measure Protected Audience ads
via post-impression beacon, but is not using any of the ads personalization or targeting features of Protected Audiences. A
different approach was taken. This feature was implemented but never planned to ship.

Bug: 361119170
Change-Id: Ife04241f0e3a69fe36ad18236b29beb2617af8f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5867036
Commit-Queue: Xiaochen Zhou <xiaochenzh@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Liam Brady <lbrady@google.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1359962}
This commit is contained in:
Xiaochen Zhou
2024-09-25 15:38:01 +00:00
committed by Chromium LUCI CQ
parent b96f3bfb52
commit 825ad74abd
28 changed files with 63 additions and 188 deletions

@ -8206,14 +8206,6 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kEnableFencedFramesDeveloperModeDescription, kOsAll,
FEATURE_VALUE_TYPE(blink::features::kFencedFramesDefaultMode)},
{"enable-fenced-frames-reporting-attestations-changes",
flag_descriptions::kEnableFencedFramesReportingAttestationsChangeName,
flag_descriptions::
kEnableFencedFramesReportingAttestationsChangeDescription,
kOsAll,
FEATURE_VALUE_TYPE(
blink::features::kFencedFramesReportingAttestationsChanges)},
{"enable-unsafe-webgpu", flag_descriptions::kUnsafeWebGPUName,
flag_descriptions::kUnsafeWebGPUDescription, kOsAll,
SINGLE_VALUE_TYPE(switches::kEnableUnsafeWebGPU)},

@ -3439,47 +3439,26 @@ bool ChromeContentBrowserClient::IsInterestGroupAPIAllowed(
bool ChromeContentBrowserClient::IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) {
content::PrivacySandboxInvokingAPI invoking_api) {
Profile* profile = Profile::FromBrowserContext(browser_context);
auto* privacy_sandbox_settings =
PrivacySandboxSettingsFactory::GetForProfile(profile);
DCHECK(privacy_sandbox_settings);
if (invoking_api == content::PrivacySandboxInvokingAPI::kProtectedAudience) {
if (base::FeatureList::IsEnabled(
blink::features::kFencedFramesReportingAttestationsChanges) &&
post_impression_reporting) {
// M120 and afterwards: For beacons sent by `reportEvent()` and automatic
// beacons, the destination is required to be attested for either
// Protected Audience or Attribution Reporting.
return privacy_sandbox_settings->IsEventReportingDestinationAttested(
destination_origin,
privacy_sandbox::PrivacySandboxAttestationsGatedAPI::
kProtectedAudience) ||
privacy_sandbox_settings->IsEventReportingDestinationAttested(
destination_origin,
privacy_sandbox::PrivacySandboxAttestationsGatedAPI::
kAttributionReporting);
} else {
// Before M120: The reporting destination is required to be attested for
// its invoking API only.
// M120 and afterwards: For beacons sent by `reportResult()` and
// `reportWin()`, the destination is required to be attested for Protected
// Audience only.
return privacy_sandbox_settings->IsEventReportingDestinationAttested(
destination_origin,
privacy_sandbox::PrivacySandboxAttestationsGatedAPI::
kProtectedAudience);
}
} else if (invoking_api ==
content::PrivacySandboxInvokingAPI::kSharedStorage) {
return privacy_sandbox_settings->IsEventReportingDestinationAttested(
destination_origin,
privacy_sandbox::PrivacySandboxAttestationsGatedAPI::kSharedStorage);
privacy_sandbox::PrivacySandboxAttestationsGatedAPI gated_api;
switch (invoking_api) {
case content::PrivacySandboxInvokingAPI::kProtectedAudience:
gated_api = privacy_sandbox::PrivacySandboxAttestationsGatedAPI::
kProtectedAudience;
break;
case content::PrivacySandboxInvokingAPI::kSharedStorage:
gated_api =
privacy_sandbox::PrivacySandboxAttestationsGatedAPI::kSharedStorage;
break;
}
return false;
return privacy_sandbox_settings->IsEventReportingDestinationAttested(
destination_origin, gated_api);
}
void ChromeContentBrowserClient::OnAuctionComplete(

@ -348,8 +348,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override;
content::PrivacySandboxInvokingAPI invoking_api) override;
void OnAuctionComplete(
content::RenderFrameHost* render_frame_host,
std::optional<content::InterestGroupManager::InterestGroupDataKey>

@ -3223,11 +3223,6 @@
"owners": [ "dom@chromium.org", "shivanisha@chromium.org", "chrome-fenced-frames@google.com" ],
"expiry_milestone": 140
},
{
"name": "enable-fenced-frames-reporting-attestations-changes",
"owners": [ "lbrady@google.com", "shivanisha@chromium.org", "xiaochenzh@chromium.org", "chrome-fenced-frames-core@google.com" ],
"expiry_milestone": 130
},
{
"name": "enable-fingerprinting-protection-blocklist",
"owners": [

@ -1429,13 +1429,6 @@ const char kEnableFencedFramesM120FeaturesDescription[] =
"group from ad components. 2. Allow automatic beacons to send at "
"navigation start.";
const char kEnableFencedFramesReportingAttestationsChangeName[] =
"Enable Fenced Frames reporting attestations changes";
const char kEnableFencedFramesReportingAttestationsChangeDescription[] =
"Relax the attestation requirement of post-impression beacons from "
"Protected Audience only to either Protected Audience or Attribution "
"Reporting.";
const char kEnableGamepadButtonAxisEventsName[] =
"Gamepad Button and Axis Events";
const char kEnableGamepadButtonAxisEventsDescription[] =

@ -902,9 +902,6 @@ extern const char kEnableFencedFramesDeveloperModeDescription[];
extern const char kEnableFencedFramesM120FeaturesName[];
extern const char kEnableFencedFramesM120FeaturesDescription[];
extern const char kEnableFencedFramesReportingAttestationsChangeName[];
extern const char kEnableFencedFramesReportingAttestationsChangeDescription[];
extern const char kEnableGamepadButtonAxisEventsName[];
extern const char kEnableGamepadButtonAxisEventsDescription[];

@ -130,11 +130,8 @@ constexpr char kRunAdAuctionAndNavigateFencedFrameScript[] = R"(
// Print more readable logs for PrivacySandboxSettingsEventReportingBrowserTest.
auto describe_params = [](const auto& info) {
auto [is_feature_on, attestation_status] = info.param;
return base::StrCat({is_feature_on ? "FencedFrameM120Feature_On"
: "FencedFrameM120Feature_Off",
"_AttestedFor_",
ConvertAttestedApiStatusToString(attestation_status)});
return base::StrCat(
{"AttestedFor_", ConvertAttestedApiStatusToString(info.param)});
};
auto console_error_filter =
@ -396,13 +393,9 @@ class PrivacySandboxSettingsAttestationsBrowserTestBase
class PrivacySandboxSettingsEventReportingBrowserTest
: public PrivacySandboxSettingsAttestationsBrowserTestBase,
public testing::WithParamInterface<std::tuple<bool, AttestedApiStatus>> {
public testing::WithParamInterface<AttestedApiStatus> {
public:
PrivacySandboxSettingsEventReportingBrowserTest() {
scoped_feature_list_.InitWithFeatureState(
blink::features::kFencedFramesReportingAttestationsChanges,
IsAttributionReportingAcceptedForPostImpressionBeacons());
}
PrivacySandboxSettingsEventReportingBrowserTest() = default;
void FinishSetUp() override {
// Do not start the https server at this point to allow the tests to set up
@ -423,32 +416,17 @@ class PrivacySandboxSettingsEventReportingBrowserTest
base::BindRepeating(console_error_filter));
}
bool IsAttributionReportingAcceptedForPostImpressionBeacons() {
// Feature on: For post-impression reporting beacons, their destinations
// are enrolled if attested for Protected Audience or Attribution Reporting.
// Feature off: For post-impression reporting beacons, their destinations
// are enrolled if and only if attested for Protected Audience.
return std::get<0>(GetParam());
}
AttestedApiStatus GetReportingDestinationAttestationStatus() {
return std::get<1>(GetParam());
return GetParam();
}
bool IsReportingDestinationEnrolled(bool is_post_impression_reporting) {
bool IsReportingDestinationEnrolled() {
return GetReportingDestinationAttestationStatus() ==
AttestedApiStatus::kProtectedAudience ||
(is_post_impression_reporting &&
IsAttributionReportingAcceptedForPostImpressionBeacons() &&
(GetReportingDestinationAttestationStatus() ==
AttestedApiStatus::kAttributionReporting));
AttestedApiStatus::kProtectedAudience;
}
protected:
std::unique_ptr<content::WebContentsConsoleObserver> console_error_observer_;
private:
base::test::ScopedFeatureList scoped_feature_list_;
};
IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
@ -505,12 +483,9 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
ExecJs(fenced_frame_rfh,
content::JsReplace("window.open($1, '_blank');", navigation_url)));
if (IsReportingDestinationEnrolled(/*is_post_impression_reporting=*/true)) {
if (IsReportingDestinationEnrolled()) {
// The automatic beacon destination is considered enrolled if attested for
// either:
// 1. Protected Audience
// 2. Attritbution Reporting from M120.
// Verify the automatic beacon was sent and has the correct data.
// Protected Audience.
response.WaitForRequest();
EXPECT_EQ(response.http_request()->content, kBeaconMessage);
} else {
@ -523,9 +498,6 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
EXPECT_EQ(console_error_observer_->messages().size(), 1u);
EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(0u),
"Protected Audience"));
EXPECT_EQ(base::Contains(console_error_observer_->GetMessageAt(0u),
"Attribution Reporting"),
IsAttributionReportingAcceptedForPostImpressionBeacons());
}
// Verify the automatic beacon was not sent.
@ -582,12 +554,9 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
)",
kEventType, kBeaconMessage)));
if (IsReportingDestinationEnrolled(/*is_post_impression_reporting=*/true)) {
if (IsReportingDestinationEnrolled()) {
// The reportEvent beacon destination is considered enrolled if attested for
// either:
// 1. Protected Audience
// 2. Attritbution Reporting from M120.
// Verify the automatic beacon was sent and has the correct data.
// Protected Audience.
response.WaitForRequest();
EXPECT_EQ(response.http_request()->content, kBeaconMessage);
} else {
@ -600,9 +569,6 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
EXPECT_EQ(console_error_observer_->messages().size(), 1u);
EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(0u),
"Protected Audience"));
EXPECT_EQ(base::Contains(console_error_observer_->GetMessageAt(0u),
"Attribution Reporting"),
IsAttributionReportingAcceptedForPostImpressionBeacons());
}
// Verify the reportEvent beacon was not sent.
@ -660,10 +626,9 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
fenced_frame_url,
"/interest_group/decision_logic.js", ""));
if (IsReportingDestinationEnrolled(/*is_post_impression_reporting=*/true)) {
// The custom url destination is considered enrolled if attested for either:
// 1. Protected Audience
// 2. Attritbution Reporting from M120.
if (IsReportingDestinationEnrolled()) {
// The custom url destination is considered enrolled if attested for
// Protected Audience.
ASSERT_EQ(auction_result.ExtractString(), "success");
observer.Wait();
@ -763,7 +728,7 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
fenced_frame_url,
"/interest_group/decision_logic.js", ""));
if (IsReportingDestinationEnrolled(/*is_post_impression_reporting=*/false)) {
if (IsReportingDestinationEnrolled()) {
// For beacons from `reportWin()`, the reporting destination is considered
// enrolled if and only if it is attested for Protected Audience.
ASSERT_EQ(auction_result.ExtractString(), "success");
@ -778,7 +743,8 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
net::test_server::HttpMethod::METHOD_GET);
} else {
// Verify the console messages states to require Protected Audience only.
// Note that two console messages are sent due to debug and normal reporting
// 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(), 2u);
EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(0u),
@ -857,10 +823,9 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
"/interest_group/decision_logic_report_to_seller_signals.js",
seller_report_to_url));
if (IsReportingDestinationEnrolled(/*is_post_impression_reporting=*/false)) {
if (IsReportingDestinationEnrolled()) {
// For beacons from `reportResult()`, the reporting destination is
// considered
// enrolled if and only if it is attested for Protected Audience.
// considered enrolled if and only if it is attested for Protected Audience.
ASSERT_EQ(auction_result.ExtractString(), "success");
observer.Wait();
@ -873,7 +838,8 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
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
// 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(), 2u);
EXPECT_TRUE(base::Contains(console_error_observer_->GetMessageAt(0u),
@ -896,10 +862,9 @@ IN_PROC_BROWSER_TEST_P(PrivacySandboxSettingsEventReportingBrowserTest,
INSTANTIATE_TEST_SUITE_P(
PrivacySandboxSettingsEventReportingBrowserTest,
PrivacySandboxSettingsEventReportingBrowserTest,
testing::Combine(testing::Bool(),
testing::Values(AttestedApiStatus::kProtectedAudience,
AttestedApiStatus::kAttributionReporting,
AttestedApiStatus::kNone)),
testing::Values(AttestedApiStatus::kProtectedAudience,
AttestedApiStatus::kAttributionReporting,
AttestedApiStatus::kNone),
describe_params);
class PrivacySandboxSettingsAttestProtectedAudienceBrowserTest

@ -243,8 +243,7 @@ class InterestGroupEnabledContentBrowserClient
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return true;
}
};

@ -43,8 +43,7 @@ class MockAttributionReportingContentBrowserClientBase : public SuperClass {
IsPrivacySandboxReportingDestinationAttested,
(content::BrowserContext * browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting),
content::PrivacySandboxInvokingAPI invoking_api),
(override));
MOCK_METHOD(bool,
AddPrivacySandboxAttestationsObserver,

@ -2417,8 +2417,7 @@ class FledgeFencedFrameOriginContentBrowserClient
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return true;
}
@ -2471,7 +2470,6 @@ class FencedFrameParameterizedBrowserTest : public FencedFrameBrowserTestBase {
// `FencedFrameConfig` object upon developer request.
{blink::features::kFencedFramesAPIChanges, {}},
{blink::features::kFencedFramesAutomaticBeaconCredentials, {}},
{blink::features::kFencedFramesReportingAttestationsChanges, {}},
{blink::features::kFencedFramesLocalUnpartitionedDataAccess, {}},
{blink::features::
kFencedFramesCrossOriginEventReportingUnlabeledTraffic,

@ -640,19 +640,11 @@ bool FencedFrameReporter::SendReportInternal(
->browser()
->IsPrivacySandboxReportingDestinationAttested(
browser_context_, url::Origin::Create(destination_url),
invoking_api_, /*post_impression_reporting=*/true)) {
error_message = base::StrCat({
"The reporting destination '",
ReportingDestinationAsString(reporting_destination),
"' is not attested for '",
InvokingAPIAsString(invoking_api_),
"'",
(base::FeatureList::IsEnabled(
blink::features::kFencedFramesReportingAttestationsChanges) &&
invoking_api_ == PrivacySandboxInvokingAPI::kProtectedAudience)
? " or 'Attribution Reporting'."
: ".",
});
invoking_api_)) {
error_message = base::StrCat(
{"The reporting destination '",
ReportingDestinationAsString(reporting_destination),
"' is not attested for '", InvokingAPIAsString(invoking_api_), "'"});
console_message_level = blink::mojom::ConsoleMessageLevel::kError;
NotifyFencedFrameReportingBeaconFailed(attribution_reporting_data);
return false;

@ -93,8 +93,7 @@ class InterestGroupEnabledContentBrowserClient
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return true;
}
};

@ -121,8 +121,7 @@ bool AreAllowedReportingOriginsAttested(
->browser()
->IsPrivacySandboxReportingDestinationAttested(
browser_context, origin,
PrivacySandboxInvokingAPI::kProtectedAudience,
/*post_impression_reporting=*/true)) {
PrivacySandboxInvokingAPI::kProtectedAudience)) {
return false;
}
}

@ -258,8 +258,7 @@ class AllowInterestGroupContentBrowserClient : public TestContentBrowserClient {
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
if (!allow_list_) {
return true;
}

@ -82,8 +82,7 @@ class AllowInterestGroupContentBrowserClient
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return true;
}

@ -1575,8 +1575,7 @@ class EventReportingAttestationBrowserClient : public TestContentBrowserClient {
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return true;
}
};

@ -1241,8 +1241,7 @@ bool InterestGroupAuctionReporter::CheckReportUrl(const GURL& url) {
->browser()
->IsPrivacySandboxReportingDestinationAttested(
browser_context_, url::Origin::Create(url),
PrivacySandboxInvokingAPI::kProtectedAudience,
/*post_impression_reporting=*/false)) {
PrivacySandboxInvokingAPI::kProtectedAudience)) {
errors_.push_back(base::StringPrintf(
"The reporting destination %s is not attested for Protected Audience.",
url.spec().c_str()));

@ -117,8 +117,7 @@ class EventReportingAttestationBrowserClient : public TestContentBrowserClient {
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return true;
}
};

@ -399,8 +399,7 @@ class AllowlistedOriginContentBrowserClient
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override {
content::PrivacySandboxInvokingAPI invoking_api) override {
return allow_list_.contains(destination_origin);
}

@ -161,8 +161,7 @@ class MockPrivateAggregationContentBrowserClientBase : public SuperClass {
IsPrivacySandboxReportingDestinationAttested,
(content::BrowserContext * browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting),
content::PrivacySandboxInvokingAPI invoking_api),
(override));
};

@ -549,8 +549,7 @@ bool ContentBrowserClient::IsInterestGroupAPIAllowed(
bool ContentBrowserClient::IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) {
content::PrivacySandboxInvokingAPI invoking_api) {
return false;
}

@ -958,22 +958,12 @@ class CONTENT_EXPORT ContentBrowserClient {
const url::Origin& api_origin);
// Returns whether |destination_origin| can receive beacons sent through
// window.fence.reportEvent() or automatic beacons.
// Before M120: The reporting destination is required to be attested for its
// invoking API only.
// M120 and afterwards: If this is a post-impression reporting beacon invoked
// by Protected Audience API, the destination is required to be attested for
// either Protected Audience or Attribution Reporting, instead of Protected
// Audience only. This is because there are use cases that an adtech may need
// to measure Protected Audience ads, but not using any of the ads
// personalization or targeting features of Protected Audience. The adtech
// should be allowed to receive post-impression beacons if it is attested for
// Attribution Reporting.
// window.fence.reportEvent() or automatic beacons. The reporting destination
// is required to be attested for its invoking API.
virtual bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting);
content::PrivacySandboxInvokingAPI invoking_api);
// Called when a Fledge auction is complete (without being aborted). If there
// is a winner, `winner_data_key` should be non-null. `is_server_auction`

@ -752,8 +752,7 @@ bool WebTestContentBrowserClient::IsInterestGroupAPIAllowed(
bool WebTestContentBrowserClient::IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) {
content::PrivacySandboxInvokingAPI invoking_api) {
return true;
}

@ -124,8 +124,7 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override;
content::PrivacySandboxInvokingAPI invoking_api) override;
void GetHyphenationDictionary(
base::OnceCallback<void(const base::FilePath&)>) override;
void RegisterMojoBinderPoliciesForSameOriginPrerendering(

@ -333,8 +333,7 @@ bool HeadlessContentBrowserClient::IsInterestGroupAPIAllowed(
bool HeadlessContentBrowserClient::IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) {
content::PrivacySandboxInvokingAPI invoking_api) {
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
return command_line->HasSwitch(switches::kForceReportingDestinationAttested);
}

@ -85,8 +85,7 @@ class HeadlessContentBrowserClient : public content::ContentBrowserClient {
bool IsPrivacySandboxReportingDestinationAttested(
content::BrowserContext* browser_context,
const url::Origin& destination_origin,
content::PrivacySandboxInvokingAPI invoking_api,
bool post_impression_reporting) override;
content::PrivacySandboxInvokingAPI invoking_api) override;
bool IsSharedStorageAllowed(
content::BrowserContext* browser_context,

@ -840,12 +840,6 @@ const base::FeatureParam<double> kMinimumEntropyForLCP{
// trials.
BASE_FEATURE(kFencedFrames, "FencedFrames", base::FEATURE_ENABLED_BY_DEFAULT);
// Relax the attestation requirement of post-impression beacons from Protected
// Audience only to either Protected Audience or Attribution Reporting.
BASE_FEATURE(kFencedFramesReportingAttestationsChanges,
"FencedFramesReportingAttestationsChanges",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enable sending event-level reports through reportEvent() in cross-origin
// subframes. This requires opt-in both from the cross-origin subframe that is
// sending the beacon as well as the document that contains information about

@ -478,9 +478,6 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kFencedFramesCrossOriginEventReportingAllTraffic);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kFencedFramesReportingAttestationsChanges);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kFencedFramesAutomaticBeaconCredentials);