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:

committed by
Chromium LUCI CQ

parent
b96f3bfb52
commit
825ad74abd
chrome/browser
about_flags.ccchrome_content_browser_client.ccchrome_content_browser_client.hflag-metadata.jsonflag_descriptions.ccflag_descriptions.h
privacy_sandbox
content
browser
attribution_reporting
fenced_frame
interest_group
ad_auction_service_impl.ccad_auction_service_impl_unittest.ccad_auction_service_mojolpm_fuzzer.ccauction_runner_unittest.ccinterest_group_auction_reporter.ccinterest_group_auction_reporter_unittest.ccinterest_group_browsertest.cc
private_aggregation
public
web_test
headless/lib/browser
third_party/blink
@ -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,
|
||||
|
6
third_party/blink/common/features.cc
vendored
6
third_party/blink/common/features.cc
vendored
@ -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
|
||||
|
3
third_party/blink/public/common/features.h
vendored
3
third_party/blink/public/common/features.h
vendored
@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user