Files
cromite/build/patches/Disable-prefers-reduced-transparency-media-query.patch
2024-03-15 16:24:42 +01:00

68 lines
3.7 KiB
Diff

From: uazo <uazo@users.noreply.github.com>
Date: Fri, 20 Oct 2023 14:53:41 +0000
Subject: Disable prefers-reduced-transparency media query
This feature can be used for fingerprinting as it exposes a user preference
---
third_party/blink/renderer/core/css/media_query_exp.cc | 3 ++-
.../blink/renderer/core/css/parser/media_query_parser.cc | 4 ++--
.../blink/renderer/core/preferences/preference_manager.idl | 2 +-
.../blink/renderer/platform/runtime_enabled_features.json5 | 6 +++++-
4 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/third_party/blink/renderer/core/css/media_query_exp.cc b/third_party/blink/renderer/core/css/media_query_exp.cc
--- a/third_party/blink/renderer/core/css/media_query_exp.cc
+++ b/third_party/blink/renderer/core/css/media_query_exp.cc
@@ -114,7 +114,8 @@ static inline bool FeatureWithValidIdent(const String& media_feature,
ident == CSSValueID::kLess || ident == CSSValueID::kCustom;
}
- if (media_feature == media_feature_names::kPrefersReducedMotionMediaFeature) {
+ if (RuntimeEnabledFeatures::PrefersReducedTransparencyEnabled() &&
+ media_feature == media_feature_names::kPrefersReducedMotionMediaFeature) {
return ident == CSSValueID::kNoPreference || ident == CSSValueID::kReduce;
}
diff --git a/third_party/blink/renderer/core/css/parser/media_query_parser.cc b/third_party/blink/renderer/core/css/parser/media_query_parser.cc
--- a/third_party/blink/renderer/core/css/parser/media_query_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/media_query_parser.cc
@@ -79,8 +79,8 @@ class MediaQueryFeatureSet : public MediaQueryParser::FeatureSet {
RuntimeEnabledFeatures::CSSUpdateMediaFeatureEnabled()) ||
(feature == media_feature_names::kPrefersReducedDataMediaFeature &&
RuntimeEnabledFeatures::PrefersReducedDataEnabled()) ||
- feature ==
- media_feature_names::kPrefersReducedTransparencyMediaFeature ||
+ (feature == media_feature_names::kPrefersReducedTransparencyMediaFeature &&
+ RuntimeEnabledFeatures::PrefersReducedTransparencyEnabled()) ||
(feature == media_feature_names::kForcedColorsMediaFeature &&
RuntimeEnabledFeatures::ForcedColorsEnabled()) ||
(feature == media_feature_names::kNavigationControlsMediaFeature &&
diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl b/third_party/blink/renderer/core/preferences/preference_manager.idl
--- a/third_party/blink/renderer/core/preferences/preference_manager.idl
+++ b/third_party/blink/renderer/core/preferences/preference_manager.idl
@@ -12,6 +12,6 @@ interface PreferenceManager {
readonly attribute PreferenceObject colorScheme;
readonly attribute PreferenceObject contrast;
readonly attribute PreferenceObject reducedMotion;
- readonly attribute PreferenceObject reducedTransparency;
+ [RuntimeEnabled=PrefersReducedTransparency] readonly attribute PreferenceObject reducedTransparency;
[RuntimeEnabled=PrefersReducedData] readonly attribute PreferenceObject reducedData;
};
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2945,7 +2945,11 @@
settable_from_internals: true,
},
{
- name: "PrefersReducedData",
+ name: "PrefersReducedData", // must be
+ status: "experimental", // disabled
+ },
+ {
+ name: "PrefersReducedTransparency",
status: "experimental",
},
// This feature is deprecated and we are evangelizing affected sites.
--