|
@@ -9,7 +9,7 @@
|
|
|
|
|
|
--- a/chrome/browser/about_flags.cc
|
|
|
+++ b/chrome/browser/about_flags.cc
|
|
|
-@@ -132,6 +132,7 @@
|
|
|
+@@ -137,6 +137,7 @@
|
|
|
#include "third_party/blink/public/common/experiments/memory_ablation_experiment.h"
|
|
|
#include "third_party/blink/public/common/features.h"
|
|
|
#include "third_party/leveldatabase/leveldb_features.h"
|
|
@@ -17,7 +17,7 @@
|
|
|
#include "ui/accessibility/accessibility_switches.h"
|
|
|
#include "ui/base/ui_base_features.h"
|
|
|
#include "ui/base/ui_base_switches.h"
|
|
|
-@@ -1148,6 +1149,14 @@ const FeatureEntry kFeatureEntries[] = {
|
|
|
+@@ -1242,6 +1243,14 @@ const FeatureEntry kFeatureEntries[] = {
|
|
|
"Force punycode hostnames",
|
|
|
"Force punycode in hostnames instead of Unicode when displaying Internationalized Domain Names (IDNs).",
|
|
|
kOsAll, SINGLE_VALUE_TYPE("force-punycode-hostnames")},
|
|
@@ -34,7 +34,7 @@
|
|
|
SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlacklist)},
|
|
|
--- a/content/child/runtime_features.cc
|
|
|
+++ b/content/child/runtime_features.cc
|
|
|
-@@ -23,6 +23,7 @@
|
|
|
+@@ -22,6 +22,7 @@
|
|
|
#include "services/network/public/cpp/features.h"
|
|
|
#include "third_party/blink/public/common/features.h"
|
|
|
#include "third_party/blink/public/platform/web_runtime_features.h"
|
|
@@ -42,7 +42,7 @@
|
|
|
#include "ui/base/ui_base_features.h"
|
|
|
#include "ui/events/blink/blink_features.h"
|
|
|
#include "ui/gfx/switches.h"
|
|
|
-@@ -454,6 +455,11 @@ void SetIndividualRuntimeFeatures(
|
|
|
+@@ -462,6 +463,11 @@ void SetIndividualRuntimeFeatures(
|
|
|
WebRuntimeFeatures::EnableForbidSyncXHRInPageDismissal(true);
|
|
|
}
|
|
|
|
|
@@ -64,7 +64,7 @@
|
|
|
#include "cc/input/overscroll_behavior.h"
|
|
|
#include "cc/input/scroll_snap_data.h"
|
|
|
#include "services/metrics/public/cpp/mojo_ukm_recorder.h"
|
|
|
-@@ -767,6 +768,15 @@ Document::Document(const DocumentInit& i
|
|
|
+@@ -1131,6 +1132,15 @@ Document::Document(const DocumentInit& i
|
|
|
#ifndef NDEBUG
|
|
|
liveDocumentSet().insert(this);
|
|
|
#endif
|
|
@@ -80,7 +80,7 @@
|
|
|
}
|
|
|
|
|
|
Document::~Document() {
|
|
|
-@@ -795,6 +805,14 @@ Range* Document::CreateRangeAdjustedToTr
|
|
|
+@@ -1159,6 +1169,14 @@ Range* Document::CreateRangeAdjustedToTr
|
|
|
Position::BeforeNode(*shadow_host));
|
|
|
}
|
|
|
|
|
@@ -97,7 +97,7 @@
|
|
|
selector_query_cache_ = std::make_unique<SelectorQueryCache>();
|
|
|
--- a/third_party/blink/renderer/core/dom/document.h
|
|
|
+++ b/third_party/blink/renderer/core/dom/document.h
|
|
|
-@@ -395,6 +395,10 @@ class CORE_EXPORT Document : public Cont
|
|
|
+@@ -398,6 +398,10 @@ class CORE_EXPORT Document : public Cont
|
|
|
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
|
|
|
}
|
|
|
|
|
@@ -108,9 +108,9 @@
|
|
|
String visibilityState() const;
|
|
|
bool IsPageVisible() const;
|
|
|
bool hidden() const;
|
|
|
-@@ -1879,6 +1883,9 @@ class CORE_EXPORT Document : public Cont
|
|
|
+@@ -1884,6 +1888,9 @@ class CORE_EXPORT Document : public Cont
|
|
|
|
|
|
- double start_time_;
|
|
|
+ base::ElapsedTimer start_time_;
|
|
|
|
|
|
+ double noise_factor_x_;
|
|
|
+ double noise_factor_y_;
|
|
@@ -120,7 +120,7 @@
|
|
|
HeapVector<Member<ScriptElementBase>> current_script_stack_;
|
|
|
--- a/third_party/blink/renderer/core/dom/element.cc
|
|
|
+++ b/third_party/blink/renderer/core/dom/element.cc
|
|
|
-@@ -1346,6 +1346,11 @@ DOMRectList* Element::getClientRects() {
|
|
|
+@@ -1370,6 +1370,11 @@ DOMRectList* Element::getClientRects() {
|
|
|
DCHECK(element_layout_object);
|
|
|
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
|
|
quads, *element_layout_object);
|
|
@@ -132,7 +132,7 @@
|
|
|
return DOMRectList::Create(quads);
|
|
|
}
|
|
|
|
|
|
-@@ -1363,6 +1368,9 @@ DOMRect* Element::getBoundingClientRect(
|
|
|
+@@ -1387,6 +1392,9 @@ DOMRect* Element::getBoundingClientRect(
|
|
|
DCHECK(element_layout_object);
|
|
|
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
|
|
*element_layout_object);
|
|
@@ -144,7 +144,7 @@
|
|
|
|
|
|
--- a/third_party/blink/renderer/core/dom/range.cc
|
|
|
+++ b/third_party/blink/renderer/core/dom/range.cc
|
|
|
-@@ -1632,11 +1632,21 @@ DOMRectList* Range::getClientRects() con
|
|
|
+@@ -1631,11 +1631,21 @@ DOMRectList* Range::getClientRects() con
|
|
|
Vector<FloatQuad> quads;
|
|
|
GetBorderAndTextQuads(quads);
|
|
|
|
|
@@ -169,7 +169,7 @@
|
|
|
// TODO(editing-dev): We should make
|
|
|
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|
|
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
|
|
-@@ -595,6 +595,12 @@
|
|
|
+@@ -637,6 +637,12 @@
|
|
|
name: "FileSystem",
|
|
|
status: "stable",
|
|
|
},
|
|
@@ -184,8 +184,8 @@
|
|
|
// metric. See also: http://bit.ly/fcp_plus_plus
|
|
|
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
|
|
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
|
|
-@@ -703,4 +703,12 @@ void WebRuntimeFeatures::EnablePauseExec
|
|
|
- enable);
|
|
|
+@@ -699,4 +699,12 @@ void WebRuntimeFeatures::EnableMouseSubf
|
|
|
+ RuntimeEnabledFeatures::SetMouseSubframeNoImplicitCaptureEnabled(enable);
|
|
|
}
|
|
|
|
|
|
+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
|
|
@@ -199,7 +199,7 @@
|
|
|
} // namespace blink
|
|
|
--- a/third_party/blink/public/platform/web_runtime_features.h
|
|
|
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
|
|
-@@ -236,6 +236,8 @@ class WebRuntimeFeatures {
|
|
|
+@@ -228,6 +228,8 @@ class WebRuntimeFeatures {
|
|
|
BLINK_PLATFORM_EXPORT static void EnableMergeBlockingNonBlockingPools(bool);
|
|
|
BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
|
|
|
BLINK_PLATFORM_EXPORT static void EnableForbidSyncXHRInPageDismissal(bool);
|
|
@@ -210,7 +210,7 @@
|
|
|
BLINK_PLATFORM_EXPORT static void EnableHTMLImports(bool);
|
|
|
--- a/chrome/browser/BUILD.gn
|
|
|
+++ b/chrome/browser/BUILD.gn
|
|
|
-@@ -2118,6 +2118,7 @@ jumbo_split_static_library("browser") {
|
|
|
+@@ -2156,6 +2156,7 @@ jumbo_split_static_library("browser") {
|
|
|
"//third_party/metrics_proto",
|
|
|
"//third_party/re2",
|
|
|
"//third_party/smhasher:cityhash",
|
|
@@ -220,7 +220,7 @@
|
|
|
"//third_party/widevine/cdm:buildflags",
|
|
|
--- a/content/browser/BUILD.gn
|
|
|
+++ b/content/browser/BUILD.gn
|
|
|
-@@ -206,6 +206,7 @@ jumbo_source_set("browser") {
|
|
|
+@@ -207,6 +207,7 @@ jumbo_source_set("browser") {
|
|
|
"//third_party/libyuv",
|
|
|
"//third_party/re2",
|
|
|
"//third_party/sqlite",
|
|
@@ -230,7 +230,7 @@
|
|
|
"//third_party/zlib",
|
|
|
--- a/content/browser/renderer_host/render_process_host_impl.cc
|
|
|
+++ b/content/browser/renderer_host/render_process_host_impl.cc
|
|
|
-@@ -213,6 +213,7 @@
|
|
|
+@@ -214,6 +214,7 @@
|
|
|
#include "third_party/blink/public/common/page/launching_process_state.h"
|
|
|
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
|
|
|
#include "third_party/blink/public/public_buildflags.h"
|
|
@@ -238,7 +238,7 @@
|
|
|
#include "third_party/skia/include/core/SkBitmap.h"
|
|
|
#include "ui/accessibility/accessibility_switches.h"
|
|
|
#include "ui/base/ui_base_switches.h"
|
|
|
-@@ -3005,6 +3006,8 @@ void RenderProcessHostImpl::PropagateBro
|
|
|
+@@ -3001,6 +3002,8 @@ void RenderProcessHostImpl::PropagateBro
|
|
|
switches::kEnableWebGLSwapChain,
|
|
|
switches::kEnableWebVR,
|
|
|
switches::kFileUrlPathAlias,
|
|
@@ -249,7 +249,7 @@
|
|
|
switches::kForceGpuMemAvailableMb,
|
|
|
--- a/content/child/BUILD.gn
|
|
|
+++ b/content/child/BUILD.gn
|
|
|
-@@ -116,6 +116,7 @@ target(link_target_type, "child") {
|
|
|
+@@ -117,6 +117,7 @@ target(link_target_type, "child") {
|
|
|
"//third_party/blink/public:scaled_resources",
|
|
|
"//third_party/blink/public/common",
|
|
|
"//third_party/ced",
|
|
@@ -259,7 +259,7 @@
|
|
|
"//ui/events/blink",
|
|
|
--- a/third_party/blink/renderer/platform/BUILD.gn
|
|
|
+++ b/third_party/blink/renderer/platform/BUILD.gn
|
|
|
-@@ -1434,6 +1434,7 @@ jumbo_component("platform") {
|
|
|
+@@ -1426,6 +1426,7 @@ jumbo_component("platform") {
|
|
|
"//third_party/ced",
|
|
|
"//third_party/emoji-segmenter",
|
|
|
"//third_party/icu",
|
|
@@ -269,24 +269,19 @@
|
|
|
"//third_party/zlib/google:compression_utils",
|
|
|
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
|
|
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
|
|
-@@ -804,9 +804,16 @@ TextMetrics* CanvasRenderingContext2D::m
|
|
|
- else
|
|
|
- direction = ToTextDirection(GetState().GetDirection(), canvas());
|
|
|
-
|
|
|
-- return MakeGarbageCollected<TextMetrics>(font, direction,
|
|
|
-+ TextMetrics* textMetrics = MakeGarbageCollected<TextMetrics>(font, direction,
|
|
|
- GetState().GetTextBaseline(),
|
|
|
- GetState().GetTextAlign(), text);
|
|
|
+@@ -811,6 +811,12 @@ TextMetrics* CanvasRenderingContext2D::m
|
|
|
+ TextMetrics* text_metrics = MakeGarbageCollected<TextMetrics>(
|
|
|
+ font, direction, GetState().GetTextBaseline(), GetState().GetTextAlign(),
|
|
|
+ text);
|
|
|
+
|
|
|
+ // Scale text metrics if enabled
|
|
|
+ if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) {
|
|
|
-+ textMetrics->Shuffle(canvas()->GetDocument().GetNoiseFactorX());
|
|
|
++ text_metrics->Shuffle(canvas()->GetDocument().GetNoiseFactorX());
|
|
|
+ }
|
|
|
+
|
|
|
-+ return textMetrics;
|
|
|
- }
|
|
|
-
|
|
|
- void CanvasRenderingContext2D::DrawTextInternal(
|
|
|
+ base::TimeDelta elapsed = base::TimeTicks::Now() - start_time;
|
|
|
+ base::UmaHistogramMicrosecondsTimesUnderTenMilliseconds(
|
|
|
+ "Canvas.TextMetrics.MeasureText", elapsed);
|
|
|
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
|
|
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
|
|
@@ -64,6 +64,8 @@ class CORE_EXPORT TextMetrics final : pu
|