From 8998e3de4cb788b76ef02db25e4d9bd097610096 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 1 Mar 2024 17:34:44 +0100 Subject: [PATCH] #240 Fix text blurring with opacity close to 1.0 --- build/patches/Viewport-Protection-flag.patch | 41 +++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 351be491..86c30220 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -18,6 +18,7 @@ Require: Content-settings-infrastructure.patch .../features_cc/Viewport-Protection-flag.inc | 3 + .../features_h/Viewport-Protection-flag.inc | 2 + .../common/widget/device_emulation_params.h | 6 +- + .../renderer/core/css/css_properties.json5 | 2 +- .../blink/renderer/core/css/media_values.cc | 2 +- .../core/css/resolver/style_resolver.cc | 7 +- .../blink/renderer/core/events/mouse_event.h | 19 +++- @@ -33,7 +34,8 @@ Require: Content-settings-infrastructure.patch .../blink/renderer/core/input/touch.cc | 17 +++- third_party/blink/renderer/core/page/page.cc | 93 ++++++++++++++++++ third_party/blink/renderer/core/page/page.h | 9 ++ - 24 files changed, 423 insertions(+), 19 deletions(-) + .../renderer/core/style/computed_style.h | 6 ++ + 26 files changed, 430 insertions(+), 20 deletions(-) create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteViewportContentSetting.java create mode 100644 components/browser_ui/strings/bromite_content_settings/viewport.grdp create mode 100644 components/content_settings/core/browser/bromite_content_settings/viewport.inc @@ -277,6 +279,25 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ } inline bool operator!=(const DeviceEmulationParams& a, +diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 +--- a/third_party/blink/renderer/core/css/css_properties.json5 ++++ b/third_party/blink/renderer/core/css/css_properties.json5 +@@ -3709,6 +3709,7 @@ + }, + { + name: "opacity", ++ computed_style_custom_functions: ["setter","getter"], + property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], + interpolable: true, + compositable: true, +@@ -3716,7 +3717,6 @@ + field_template: "primitive", + default_value: "1.0", + type_name: "float", +- computed_style_custom_functions: ["setter"], + typedom_types: ["Number"], + valid_for_first_letter: true, + valid_for_first_line: true, diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc --- a/third_party/blink/renderer/core/css/media_values.cc +++ b/third_party/blink/renderer/core/css/media_values.cc @@ -639,7 +660,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1765,6 +1765,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1771,6 +1771,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -845,4 +866,20 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren // This tracks the mode that the fenced frame is set to. blink::FencedFrame::DeprecatedFencedFrameMode fenced_frame_mode_ = blink::FencedFrame::DeprecatedFencedFrameMode::kDefault; +diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h +--- a/third_party/blink/renderer/core/style/computed_style.h ++++ b/third_party/blink/renderer/core/style/computed_style.h +@@ -1940,6 +1940,12 @@ class ComputedStyle final : public ComputedStyleBase { + IsRunningBackdropFilterAnimationOnCompositor(); + } + ++ float Opacity() const { ++ float v = OpacityInternal(); ++ if (v >= 0.991f) v = 1.0f; ++ return v; ++ } ++ + // Opacity utility functions. + bool HasOpacity() const { return Opacity() < 1.0f; } + --