summaryrefslogtreecommitdiff
path: root/www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
diff options
context:
space:
mode:
Diffstat (limited to 'www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch')
-rw-r--r--www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch138
1 files changed, 69 insertions, 69 deletions
diff --git a/www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch b/www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
index a3dd0cd..2d6821f 100644
--- a/www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
+++ b/www/chromium-uc/patches/extra/bromite/fingerprinting-flags-client-rects-and-measuretext.patch
@@ -7,9 +7,9 @@
7# 7#
8# Unlike the latest Bromite patch, it was chosen to not regenerate the noise value each time the value is read to prevent potential efficiency issues with the load on the RNG. 8# Unlike the latest Bromite patch, it was chosen to not regenerate the noise value each time the value is read to prevent potential efficiency issues with the load on the RNG.
9 9
10--- a/chrome/browser/BUILD.gn 10--- chrome/browser/BUILD.gn.orig
11+++ b/chrome/browser/BUILD.gn 11+++ chrome/browser/BUILD.gn
12@@ -2390,6 +2390,7 @@ static_library("browser") { 12@@ -2370,6 +2370,7 @@ static_library("browser") {
13 "//third_party/libyuv", 13 "//third_party/libyuv",
14 "//third_party/metrics_proto", 14 "//third_party/metrics_proto",
15 "//third_party/re2", 15 "//third_party/re2",
@@ -17,9 +17,9 @@
17 "//third_party/webrtc_overrides:webrtc_component", 17 "//third_party/webrtc_overrides:webrtc_component",
18 "//third_party/widevine/cdm:buildflags", 18 "//third_party/widevine/cdm:buildflags",
19 "//third_party/widevine/cdm:headers", 19 "//third_party/widevine/cdm:headers",
20--- a/chrome/browser/about_flags.cc 20--- chrome/browser/about_flags.cc.orig
21+++ b/chrome/browser/about_flags.cc 21+++ chrome/browser/about_flags.cc
22@@ -146,6 +146,7 @@ 22@@ -151,6 +151,7 @@
23 #include "components/translate/core/browser/translate_ranker_impl.h" 23 #include "components/translate/core/browser/translate_ranker_impl.h"
24 #include "components/translate/core/common/translate_util.h" 24 #include "components/translate/core/common/translate_util.h"
25 #include "components/ui_devtools/switches.h" 25 #include "components/ui_devtools/switches.h"
@@ -27,8 +27,8 @@
27 #include "components/version_info/version_info.h" 27 #include "components/version_info/version_info.h"
28 #include "components/viz/common/features.h" 28 #include "components/viz/common/features.h"
29 #include "components/viz/common/switches.h" 29 #include "components/viz/common/switches.h"
30--- a/chrome/browser/bromite_flag_entries.h 30--- chrome/browser/bromite_flag_entries.h.orig
31+++ b/chrome/browser/bromite_flag_entries.h 31+++ chrome/browser/bromite_flag_entries.h
32@@ -4,4 +4,12 @@ 32@@ -4,4 +4,12 @@
33 33
34 #ifndef CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_ 34 #ifndef CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
@@ -42,9 +42,9 @@
42+ "Scale the output values of Canvas::measureText() with a randomly selected factor in the range -0.0003% to 0.0003%, which are recomputed on every document initialization. ungoogled-chromium flag, Bromite feature.", 42+ "Scale the output values of Canvas::measureText() with a randomly selected factor in the range -0.0003% to 0.0003%, which are recomputed on every document initialization. ungoogled-chromium flag, Bromite feature.",
43+ kOsAll, SINGLE_VALUE_TYPE(switches::kFingerprintingCanvasMeasureTextNoise)}, 43+ kOsAll, SINGLE_VALUE_TYPE(switches::kFingerprintingCanvasMeasureTextNoise)},
44 #endif // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_ 44 #endif // CHROME_BROWSER_BROMITE_FLAG_ENTRIES_H_
45--- a/content/browser/BUILD.gn 45--- content/browser/BUILD.gn.orig
46+++ b/content/browser/BUILD.gn 46+++ content/browser/BUILD.gn
47@@ -230,6 +230,7 @@ source_set("browser") { 47@@ -222,6 +222,7 @@ source_set("browser") {
48 "//third_party/libyuv", 48 "//third_party/libyuv",
49 "//third_party/re2", 49 "//third_party/re2",
50 "//third_party/sqlite", 50 "//third_party/sqlite",
@@ -52,9 +52,9 @@
52 "//third_party/webrtc_overrides:webrtc_component", 52 "//third_party/webrtc_overrides:webrtc_component",
53 "//third_party/wtl", 53 "//third_party/wtl",
54 "//third_party/zlib", 54 "//third_party/zlib",
55--- a/content/browser/renderer_host/render_process_host_impl.cc 55--- content/browser/renderer_host/render_process_host_impl.cc.orig
56+++ b/content/browser/renderer_host/render_process_host_impl.cc 56+++ content/browser/renderer_host/render_process_host_impl.cc
57@@ -76,6 +76,7 @@ 57@@ -68,6 +68,7 @@
58 #include "components/services/storage/public/mojom/cache_storage_control.mojom.h" 58 #include "components/services/storage/public/mojom/cache_storage_control.mojom.h"
59 #include "components/services/storage/public/mojom/indexed_db_control.mojom.h" 59 #include "components/services/storage/public/mojom/indexed_db_control.mojom.h"
60 #include "components/tracing/common/tracing_switches.h" 60 #include "components/tracing/common/tracing_switches.h"
@@ -62,7 +62,7 @@
62 #include "components/viz/common/switches.h" 62 #include "components/viz/common/switches.h"
63 #include "components/viz/host/gpu_client.h" 63 #include "components/viz/host/gpu_client.h"
64 #include "content/browser/bad_message.h" 64 #include "content/browser/bad_message.h"
65@@ -3287,6 +3288,8 @@ void RenderProcessHostImpl::PropagateBro 65@@ -3465,6 +3466,8 @@ void RenderProcessHostImpl::PropagateBro
66 switches::kEnableWebGLDraftExtensions, 66 switches::kEnableWebGLDraftExtensions,
67 switches::kEnableWebGLImageChromium, 67 switches::kEnableWebGLImageChromium,
68 switches::kFileUrlPathAlias, 68 switches::kFileUrlPathAlias,
@@ -71,8 +71,8 @@
71 switches::kForceDeviceScaleFactor, 71 switches::kForceDeviceScaleFactor,
72 switches::kForceDisplayColorProfile, 72 switches::kForceDisplayColorProfile,
73 switches::kForceGpuMemAvailableMb, 73 switches::kForceGpuMemAvailableMb,
74--- a/content/child/BUILD.gn 74--- content/child/BUILD.gn.orig
75+++ b/content/child/BUILD.gn 75+++ content/child/BUILD.gn
76@@ -103,6 +103,7 @@ target(link_target_type, "child") { 76@@ -103,6 +103,7 @@ target(link_target_type, "child") {
77 "//third_party/blink/public/common", 77 "//third_party/blink/public/common",
78 "//third_party/blink/public/strings", 78 "//third_party/blink/public/strings",
@@ -81,9 +81,9 @@
81 "//third_party/zlib/google:compression_utils", 81 "//third_party/zlib/google:compression_utils",
82 "//ui/base", 82 "//ui/base",
83 "//ui/events/blink", 83 "//ui/events/blink",
84--- a/content/child/runtime_features.cc 84--- content/child/runtime_features.cc.orig
85+++ b/content/child/runtime_features.cc 85+++ content/child/runtime_features.cc
86@@ -33,6 +33,7 @@ 86@@ -31,6 +31,7 @@
87 #include "third_party/blink/public/common/loader/referrer_utils.h" 87 #include "third_party/blink/public/common/loader/referrer_utils.h"
88 #include "third_party/blink/public/common/switches.h" 88 #include "third_party/blink/public/common/switches.h"
89 #include "third_party/blink/public/platform/web_runtime_features.h" 89 #include "third_party/blink/public/platform/web_runtime_features.h"
@@ -91,10 +91,10 @@
91 #include "ui/accessibility/accessibility_features.h" 91 #include "ui/accessibility/accessibility_features.h"
92 #include "ui/base/ui_base_features.h" 92 #include "ui/base/ui_base_features.h"
93 #include "ui/events/blink/blink_features.h" 93 #include "ui/events/blink/blink_features.h"
94@@ -481,6 +482,10 @@ void SetRuntimeFeaturesFromCommandLine(c 94@@ -466,6 +467,10 @@ void SetRuntimeFeaturesFromCommandLine(c
95 {wrf::EnableWebGPU, switches::kEnableUnsafeWebGPU, true},
95 {wrf::ForceOverlayFullscreenVideo, switches::kForceOverlayFullscreenVideo, 96 {wrf::ForceOverlayFullscreenVideo, switches::kForceOverlayFullscreenVideo,
96 true}, 97 true},
97 {wrf::EnableDirectSockets, switches::kRestrictedApiOrigins, false},
98+ {wrf::EnableFingerprintingClientRectsNoise, 98+ {wrf::EnableFingerprintingClientRectsNoise,
99+ switches::kFingerprintingClientRectsNoise, true}, 99+ switches::kFingerprintingClientRectsNoise, true},
100+ {wrf::EnableFingerprintingCanvasMeasureTextNoise, 100+ {wrf::EnableFingerprintingCanvasMeasureTextNoise,
@@ -102,9 +102,9 @@
102 }; 102 };
103 for (const auto& mapping : switchToFeatureMapping) { 103 for (const auto& mapping : switchToFeatureMapping) {
104 if (command_line.HasSwitch(mapping.switch_name)) 104 if (command_line.HasSwitch(mapping.switch_name))
105--- a/third_party/blink/public/platform/web_runtime_features.h 105--- third_party/blink/public/platform/web_runtime_features.h.orig
106+++ b/third_party/blink/public/platform/web_runtime_features.h 106+++ third_party/blink/public/platform/web_runtime_features.h
107@@ -216,6 +216,8 @@ class WebRuntimeFeatures { 107@@ -218,6 +218,8 @@ class WebRuntimeFeatures {
108 BLINK_PLATFORM_EXPORT static void EnableMediaControlsExpandGesture(bool); 108 BLINK_PLATFORM_EXPORT static void EnableMediaControlsExpandGesture(bool);
109 BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool); 109 BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
110 BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool); 110 BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
@@ -113,17 +113,17 @@
113 BLINK_PLATFORM_EXPORT static void EnableSignedExchangeSubresourcePrefetch( 113 BLINK_PLATFORM_EXPORT static void EnableSignedExchangeSubresourcePrefetch(
114 bool); 114 bool);
115 BLINK_PLATFORM_EXPORT static void EnableSubresourceWebBundles(bool); 115 BLINK_PLATFORM_EXPORT static void EnableSubresourceWebBundles(bool);
116--- a/third_party/blink/renderer/core/dom/document.cc 116--- third_party/blink/renderer/core/dom/document.cc.orig
117+++ b/third_party/blink/renderer/core/dom/document.cc 117+++ third_party/blink/renderer/core/dom/document.cc
118@@ -43,6 +43,7 @@ 118@@ -42,6 +42,7 @@
119 #include "base/containers/contains.h"
119 #include "base/debug/dump_without_crashing.h" 120 #include "base/debug/dump_without_crashing.h"
120 #include "base/metrics/histogram_functions.h" 121 #include "base/metrics/histogram_functions.h"
121 #include "base/notreached.h"
122+#include "base/rand_util.h" 122+#include "base/rand_util.h"
123 #include "base/time/time.h" 123 #include "base/time/time.h"
124 #include "cc/input/overscroll_behavior.h" 124 #include "cc/input/overscroll_behavior.h"
125 #include "cc/input/scroll_snap_data.h" 125 #include "cc/input/scroll_snap_data.h"
126@@ -885,6 +886,14 @@ Range* Document::CreateRangeAdjustedToTr 126@@ -855,6 +856,14 @@ Range* Document::CreateRangeAdjustedToTr
127 Position::BeforeNode(*shadow_host)); 127 Position::BeforeNode(*shadow_host));
128 } 128 }
129 129
@@ -138,7 +138,7 @@
138 SelectorQueryCache& Document::GetSelectorQueryCache() { 138 SelectorQueryCache& Document::GetSelectorQueryCache() {
139 if (!selector_query_cache_) 139 if (!selector_query_cache_)
140 selector_query_cache_ = std::make_unique<SelectorQueryCache>(); 140 selector_query_cache_ = std::make_unique<SelectorQueryCache>();
141@@ -2167,6 +2176,15 @@ void Document::UpdateStyleAndLayoutTreeF 141@@ -2145,6 +2154,15 @@ void Document::UpdateStyleAndLayoutTreeF
142 #if DCHECK_IS_ON() 142 #if DCHECK_IS_ON()
143 AssertLayoutTreeUpdated(*this, true /* allow_dirty_container_subtrees */); 143 AssertLayoutTreeUpdated(*this, true /* allow_dirty_container_subtrees */);
144 #endif 144 #endif
@@ -154,9 +154,9 @@
154 } 154 }
155 155
156 void Document::InvalidateStyleAndLayoutForFontUpdates() { 156 void Document::InvalidateStyleAndLayoutForFontUpdates() {
157--- a/third_party/blink/renderer/core/dom/document.h 157--- third_party/blink/renderer/core/dom/document.h.orig
158+++ b/third_party/blink/renderer/core/dom/document.h 158+++ third_party/blink/renderer/core/dom/document.h
159@@ -496,6 +496,10 @@ class CORE_EXPORT Document : public Cont 159@@ -456,6 +456,10 @@ class CORE_EXPORT Document : public Cont
160 has_xml_declaration_ = has_xml_declaration ? 1 : 0; 160 has_xml_declaration_ = has_xml_declaration ? 1 : 0;
161 } 161 }
162 162
@@ -167,7 +167,7 @@
167 AtomicString visibilityState() const; 167 AtomicString visibilityState() const;
168 bool IsPageVisible() const; 168 bool IsPageVisible() const;
169 bool hidden() const; 169 bool hidden() const;
170@@ -2229,6 +2233,9 @@ class CORE_EXPORT Document : public Cont 170@@ -2078,6 +2082,9 @@ class CORE_EXPORT Document : public Cont
171 171
172 base::ElapsedTimer start_time_; 172 base::ElapsedTimer start_time_;
173 173
@@ -177,38 +177,38 @@
177 Member<ScriptRunner> script_runner_; 177 Member<ScriptRunner> script_runner_;
178 178
179 HeapVector<Member<ScriptElementBase>> current_script_stack_; 179 HeapVector<Member<ScriptElementBase>> current_script_stack_;
180--- a/third_party/blink/renderer/core/dom/element.cc 180--- third_party/blink/renderer/core/dom/element.cc.orig
181+++ b/third_party/blink/renderer/core/dom/element.cc 181+++ third_party/blink/renderer/core/dom/element.cc
182@@ -2073,6 +2073,11 @@ DOMRectList* Element::getClientRects() { 182@@ -2114,6 +2114,11 @@ DOMRectList* Element::getClientRects() {
183 DCHECK(element_layout_object); 183 DCHECK(element_layout_object);
184 GetDocument().AdjustQuadsForScrollAndAbsoluteZoom(quads, 184 GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
185 *element_layout_object); 185 quads, *element_layout_object);
186+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) { 186+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) {
187+ for (gfx::QuadF& quad : quads) { 187+ for (FloatQuad& quad : quads) {
188+ quad.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY()); 188+ quad.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY());
189+ } 189+ }
190+ } 190+ }
191 return MakeGarbageCollected<DOMRectList>(quads); 191 return MakeGarbageCollected<DOMRectList>(quads);
192 } 192 }
193 193
194@@ -2090,6 +2095,9 @@ gfx::RectF Element::GetBoundingClientRec 194@@ -2131,6 +2136,9 @@ FloatRect Element::GetBoundingClientRect
195 DCHECK(element_layout_object); 195 DCHECK(element_layout_object);
196 GetDocument().AdjustRectForScrollAndAbsoluteZoom(result, 196 GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
197 *element_layout_object); 197 *element_layout_object);
198+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) { 198+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) {
199+ result.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY()); 199+ result.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY());
200+ } 200+ }
201 return result; 201 return result;
202 } 202 }
203 203
204--- a/third_party/blink/renderer/core/dom/range.cc 204--- third_party/blink/renderer/core/dom/range.cc.orig
205+++ b/third_party/blink/renderer/core/dom/range.cc 205+++ third_party/blink/renderer/core/dom/range.cc
206@@ -1598,11 +1598,21 @@ DOMRectList* Range::getClientRects() con 206@@ -1598,11 +1598,21 @@ DOMRectList* Range::getClientRects() con
207 Vector<gfx::QuadF> quads; 207 Vector<FloatQuad> quads;
208 GetBorderAndTextQuads(quads); 208 GetBorderAndTextQuads(quads);
209 209
210+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) { 210+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) {
211+ for (gfx::QuadF& quad : quads) { 211+ for (FloatQuad& quad : quads) {
212+ quad.Scale(owner_document_->GetNoiseFactorX(), owner_document_->GetNoiseFactorY()); 212+ quad.Scale(owner_document_->GetNoiseFactorX(), owner_document_->GetNoiseFactorY());
213+ } 213+ }
214+ } 214+ }
@@ -217,17 +217,17 @@
217 } 217 }
218 218
219 DOMRect* Range::getBoundingClientRect() const { 219 DOMRect* Range::getBoundingClientRect() const {
220- return DOMRect::FromRectF(BoundingRect()); 220- return DOMRect::FromFloatRect(BoundingRect());
221+ auto rect = BoundingRect(); 221+ auto rect = BoundingRect();
222+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) { 222+ if (RuntimeEnabledFeatures::FingerprintingClientRectsNoiseEnabled()) {
223+ rect.Scale(owner_document_->GetNoiseFactorX(), owner_document_->GetNoiseFactorY()); 223+ rect.Scale(owner_document_->GetNoiseFactorX(), owner_document_->GetNoiseFactorY());
224+ } 224+ }
225+ return DOMRect::FromRectF(rect); 225+ return DOMRect::FromFloatRect(rect);
226 } 226 }
227 227
228 // TODO(editing-dev): We should make 228 // TODO(editing-dev): We should make
229--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc 229--- third_party/blink/renderer/core/html/canvas/text_metrics.cc.orig
230+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc 230+++ third_party/blink/renderer/core/html/canvas/text_metrics.cc
231@@ -55,6 +55,24 @@ TextMetrics::TextMetrics(const Font& fon 231@@ -55,6 +55,24 @@ TextMetrics::TextMetrics(const Font& fon
232 Update(font, direction, baseline, align, text); 232 Update(font, direction, baseline, align, text);
233 } 233 }
@@ -253,8 +253,8 @@
253 void TextMetrics::Update(const Font& font, 253 void TextMetrics::Update(const Font& font,
254 const TextDirection& direction, 254 const TextDirection& direction,
255 const TextBaseline& baseline, 255 const TextBaseline& baseline,
256--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h 256--- third_party/blink/renderer/core/html/canvas/text_metrics.h.orig
257+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h 257+++ third_party/blink/renderer/core/html/canvas/text_metrics.h
258@@ -64,6 +64,8 @@ class CORE_EXPORT TextMetrics final : pu 258@@ -64,6 +64,8 @@ class CORE_EXPORT TextMetrics final : pu
259 259
260 void Trace(Visitor*) const override; 260 void Trace(Visitor*) const override;
@@ -264,9 +264,9 @@
264 private: 264 private:
265 void Update(const Font&, 265 void Update(const Font&,
266 const TextDirection&, 266 const TextDirection&,
267--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc 267--- third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc.orig
268+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc 268+++ third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
269@@ -917,9 +917,15 @@ TextMetrics* CanvasRenderingContext2D::m 269@@ -912,9 +912,15 @@ TextMetrics* CanvasRenderingContext2D::m
270 TextDirection direction = 270 TextDirection direction =
271 ToTextDirection(GetState().GetDirection(), canvas()); 271 ToTextDirection(GetState().GetDirection(), canvas());
272 272
@@ -283,20 +283,20 @@
283 } 283 }
284 284
285 void CanvasRenderingContext2D::fillFormattedText( 285 void CanvasRenderingContext2D::fillFormattedText(
286--- a/third_party/blink/renderer/platform/BUILD.gn 286--- third_party/blink/renderer/platform/BUILD.gn.orig
287+++ b/third_party/blink/renderer/platform/BUILD.gn 287+++ third_party/blink/renderer/platform/BUILD.gn
288@@ -1638,6 +1638,7 @@ component("platform") { 288@@ -1686,6 +1686,7 @@ component("platform") {
289 "//components/paint_preview/common", 289 "//components/paint_preview/common",
290 "//components/power_scheduler", 290 "//components/power_scheduler",
291 "//components/search_engines:search_engine_utils", 291 "//components/search_engines:search_engine_utils",
292+ "//components/ungoogled:ungoogled_switches", 292+ "//components/ungoogled:ungoogled_switches",
293 "//components/viz/client", 293 "//components/viz/client",
294 "//components/viz/common", 294 "//components/viz/common",
295 "//components/webrtc:net_address_utils", 295 "//crypto",
296--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc 296--- third_party/blink/renderer/platform/exported/web_runtime_features.cc.orig
297+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc 297+++ third_party/blink/renderer/platform/exported/web_runtime_features.cc
298@@ -677,4 +677,12 @@ void WebRuntimeFeatures::EnableWebAuthen 298@@ -689,4 +689,12 @@ void WebRuntimeFeatures::EnableCLSScroll
299 enable); 299 RuntimeEnabledFeatures::SetCLSScrollAnchoringEnabled(enable);
300 } 300 }
301 301
302+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) { 302+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
@@ -308,10 +308,10 @@
308+} 308+}
309+ 309+
310 } // namespace blink 310 } // namespace blink
311--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 311--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig
312+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 312+++ third_party/blink/renderer/platform/runtime_enabled_features.json5
313@@ -1137,6 +1137,12 @@ 313@@ -1076,6 +1076,12 @@
314 name: "Focusgroup", 314 origin_trial_feature_name: "Fledge",
315 }, 315 },
316 { 316 {
317+ name: "FingerprintingClientRectsNoise", 317+ name: "FingerprintingClientRectsNoise",