[go: up one dir, main page]

Add a "kill switch" Finch flag for backdrop-filter

This enables a user-visible flag for backdrop-filter, so that
Finch can be used to disable it in the field if needed.

(cherry picked from commit c166cf1cb6c33471500b3ee7cda2c5f375c980d7)

Change-Id: Ieb6388b1f2f4f3daebc81d2775c816a423f5642b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1658992
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Mason Freed <masonfreed@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#669313}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1662632
Reviewed-by: Mason Freed <masonfreed@chromium.org>
Cr-Commit-Position: refs/branch-heads/3809@{#361}
Cr-Branched-From: d82dec1a818f378c464ba307ddd9c92133eac355-refs/heads/master@{#665002}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 92232ea..c4949aae 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3003,6 +3003,10 @@
      flag_descriptions::kEnableBlinkGenPropertyTreesDescription, kOsAll,
      FEATURE_VALUE_TYPE(blink::features::kBlinkGenPropertyTrees)},
 
+    {"enable-backdrop-filter", flag_descriptions::kEnableCSSBackdropFilterName,
+     flag_descriptions::kEnableCSSBackdropFilterDescription, kOsAll,
+     FEATURE_VALUE_TYPE(blink::features::kCSSBackdropFilter)},
+
     {"enable-display-locking", flag_descriptions::kEnableDisplayLockingName,
      flag_descriptions::kEnableDisplayLockingDescription, kOsAll,
      FEATURE_VALUE_TYPE(blink::features::kDisplayLocking)},
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 4e630969..ea9536a 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1225,6 +1225,11 @@
     "expiry_milestone": 74
   },
   {
+    "name": "enable-backdrop-filter",
+    "owners": [ "masonfreed", "paint-dev@chromium.org" ],
+    "expiry_milestone": 78
+  },
+  {
     "name": "enable-layout-ng",
     "owners": [ "layout-dev@chromium.org" ],
     "expiry_milestone": 80
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 67f54f2..6b11b86 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -642,6 +642,10 @@
     "Enable a new compositing mode where Blink generates the compositor "
     "property trees.";
 
+const char kEnableCSSBackdropFilterName[] = "Enable backdrop-filter";
+const char kEnableCSSBackdropFilterDescription[] =
+    "Enable a new CSS property called backdrop-filter.";
+
 const char kEnableDisplayLockingName[] = "Enable Display Locking";
 const char kEnableDisplayLockingDescription[] =
     "Enable Display Locking JavaScript API. The syntax and the APIs exposed "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 44bd307..e404338 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -390,6 +390,9 @@
 extern const char kEnableBlinkGenPropertyTreesName[];
 extern const char kEnableBlinkGenPropertyTreesDescription[];
 
+extern const char kEnableCSSBackdropFilterName[];
+extern const char kEnableCSSBackdropFilterDescription[];
+
 extern const char kEnableDisplayLockingName[];
 extern const char kEnableDisplayLockingDescription[];
 
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
index e673e06..f3e6f3c 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -246,6 +246,11 @@
           enable_experimental_web_platform_features);
 
   WebRuntimeFeatures::EnableFeatureFromString(
+      "CSSBackdropFilter",
+      base::FeatureList::IsEnabled(blink::features::kCSSBackdropFilter) ||
+          enable_experimental_web_platform_features);
+
+  WebRuntimeFeatures::EnableFeatureFromString(
       "FastBorderRadius",
       base::FeatureList::IsEnabled(blink::features::kFastBorderRadius) ||
           enable_experimental_web_platform_features);
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
index 075b46b1..64b4a23 100644
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -66,6 +66,10 @@
 const base::Feature kBlinkGenPropertyTrees{"BlinkGenPropertyTrees",
                                            base::FEATURE_ENABLED_BY_DEFAULT};
 
+// Enable a new CSS property called backdrop-filter.
+const base::Feature kCSSBackdropFilter{"CSSBackdropFilter",
+                                       base::FEATURE_ENABLED_BY_DEFAULT};
+
 // Enable Display Locking JavaScript APIs.
 const base::Feature kDisplayLocking{"DisplayLocking",
                                     base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
index 13c0f68..75e000e 100644
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -27,6 +27,7 @@
 BLINK_COMMON_EXPORT extern const base::Feature kImplicitRootScroller;
 BLINK_COMMON_EXPORT extern const base::Feature kJankTrackingSweepLine;
 BLINK_COMMON_EXPORT extern const base::Feature kBlinkGenPropertyTrees;
+BLINK_COMMON_EXPORT extern const base::Feature kCSSBackdropFilter;
 BLINK_COMMON_EXPORT extern const base::Feature kDisplayLocking;
 BLINK_COMMON_EXPORT extern const base::Feature kFastBorderRadius;
 BLINK_COMMON_EXPORT extern const base::Feature kLayoutNG;
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index caf20141..8a6f8e48 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -33181,6 +33181,7 @@
   <int value="-1937077699" label="http-form-warning"/>
   <int value="-1934661084" label="ForceUnifiedConsentBump:disabled"/>
   <int value="-1933425042" label="OfflinePreviews:enabled"/>
+  <int value="-1932609987" label="CSSBackdropFilter:disabled"/>
   <int value="-1932379839"
       label="OmniboxUIExperimentHideSteadyStateUrlTrivialSubdomains:enabled"/>
   <int value="-1930720286" label="nacl-debug-mask"/>
@@ -34134,6 +34135,7 @@
   <int value="-557742250" label="ContentSuggestionsCategories:disabled"/>
   <int value="-548082154" label="protect-sync-credential:disabled"/>
   <int value="-547301855" label="SyncPseudoUSSSupervisedUsers:enabled"/>
+  <int value="-544629557" label="CSSBackdropFilter:enabled"/>
   <int value="-541611402" label="OfflinePagesPrefetching:enabled"/>
   <int value="-540150399" label="TapVisualizerApp:enabled"/>
   <int value="-539105193" label="SendTabToSelfBroadcast:disabled"/>