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"/>