[M125] Maintain deprecation trial token metrics precedence
This CL maintains the DT Token metrics precedence over the global
allowlist grace period rollback behavior
The test changes allows for the
ThirdPartyCookieAllowMechanism::kAllowByTopLevel3PCD and
ThirdPartyCookieAllowMechanism::kAllowBy3PCD related grants to be
checked and recorded in the histogram, which was previously skipped
for specific cases such as when the grace period is forced on. And
checking the histogram here serves as a positive signal to the expected
behavior.
(cherry picked from commit 46a8486884a10833fd1e6ff329cf8a1883c7af05)
Bug: b:339830242
Change-Id: I4909fd717b1303af5e401056472dbcd326abf234
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5531826
Reviewed-by: Anton Maliev <amaliev@chromium.org>
Reviewed-by: Dylan Cutler <dylancutler@google.com>
Commit-Queue: Jonathan Njeunje <njeunje@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1299321}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5537180
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Anton Maliev <amaliev@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Christian Dullweber <dullweber@chromium.org>
Auto-Submit: Jonathan Njeunje <njeunje@chromium.org>
Cr-Commit-Position: refs/branch-heads/6422@{#1017}
Cr-Branched-From: 9012208d0ce02e0cf0adb9b62558627c356f3278-refs/heads/main@{#1287751}
diff --git a/chrome/browser/tpcd/metadata/manager_browsertest.cc b/chrome/browser/tpcd/metadata/manager_browsertest.cc
index 5dd9053..6cc60f05 100644
--- a/chrome/browser/tpcd/metadata/manager_browsertest.cc
+++ b/chrome/browser/tpcd/metadata/manager_browsertest.cc
@@ -369,7 +369,7 @@
histogram_tester.ExpectUniqueSample(
kThirdPartyCookieAllowMechanismHistogram,
- ThirdPartyCookieAllowMechanism::kAllowBy3PCDMetadataSource1pDt, 2);
+ ThirdPartyCookieAllowMechanism::kAllowByTopLevel3PCD, 2);
}
EXPECT_TRUE(GetCookieSettings()->IsFullCookieAccessAllowed(
diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc
index fd76726..704b0da 100644
--- a/components/content_settings/core/common/cookie_settings_base.cc
+++ b/components/content_settings/core/common/cookie_settings_base.cc
@@ -498,30 +498,6 @@
/*info=*/nullptr) == CONTENT_SETTING_ALLOW;
}
-// Whether to consider the Deprecation Trial (DT) equivalent grants in Third
-// Party Cookie Deprecation (TPCD) Metadata entry over the deprecation trial
-// Tokens.
-//
-// Learn more about the Third-party cookie deprecation Grace Period here
-// https://developers.google.com/privacy-sandbox/3pcd/temporary-exceptions/third-party-deprecation-trial.
-bool IsTpcdDtGracePeriodEnforced(const SettingInfo& info) {
- if (!base::FeatureList::IsEnabled(
- net::features::kTpcdMetadataStagedRollback)) {
- return false;
- }
-
- switch (info.metadata.tpcd_metadata_cohort()) {
- case mojom::TpcdMetadataCohort::DEFAULT:
- case mojom::TpcdMetadataCohort::GRACE_PERIOD_FORCED_OFF:
- return false;
- case mojom::TpcdMetadataCohort::GRACE_PERIOD_FORCED_ON:
- return true;
- }
-
- NOTREACHED_NORETURN() << "Invalid enum value: "
- << info.metadata.tpcd_metadata_cohort();
-}
-
// Whether to bypass any available grants from the Third Party Cookie
// Deprecation TPCD Metadata.
bool IgnoreTpcdDtGracePeriodMetadataEntry(const SettingInfo& info) {
@@ -591,20 +567,12 @@
ThirdPartyCookieAllowMechanism::kAllowBy3PCDHeuristics};
}
- SettingInfo tpcd_metadata_info;
- bool is_allowed_by_tpcd_metadata_grants =
- IsAllowedBy3pcdMetadataGrantsSettings(url, first_party_url, overrides,
- &tpcd_metadata_info);
-
- if (!is_allowed_by_tpcd_metadata_grants ||
- !IsTpcdDtGracePeriodEnforced(tpcd_metadata_info)) {
- if (IsAllowedByTopLevel3pcdTrialSettings(first_party_url, overrides)) {
- return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowByTopLevel3PCD};
- }
- if (IsAllowedBy3pcdTrialSettings(url, first_party_url, overrides)) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowBy3PCD};
- }
+ if (IsAllowedByTopLevel3pcdTrialSettings(first_party_url, overrides)) {
+ return AllowAllCookies{
+ ThirdPartyCookieAllowMechanism::kAllowByTopLevel3PCD};
+ }
+ if (IsAllowedBy3pcdTrialSettings(url, first_party_url, overrides)) {
+ return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowBy3PCD};
}
// Enterprise Policies:
@@ -615,7 +583,9 @@
}
// Chrome controlled mechanisms (ex. 3PCD Metadata Grants):
- if (is_allowed_by_tpcd_metadata_grants &&
+ SettingInfo tpcd_metadata_info;
+ if (IsAllowedBy3pcdMetadataGrantsSettings(url, first_party_url, overrides,
+ &tpcd_metadata_info) &&
!IgnoreTpcdDtGracePeriodMetadataEntry(tpcd_metadata_info)) {
return AllowAllCookies{TpcdMetadataSourceToAllowMechanism(
tpcd_metadata_info.metadata.tpcd_metadata_rule_source())};