From e465aeb3e3d7cf4d92df86c1c827cbdf1d023fe7 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 19 Sep 2025 16:23:40 +0200 Subject: [PATCH] Android Pixel Perfect Mode: fix multiple issues Linux: crash on launch after update to v140.0.7339.128 (#2326) Desktops: automatically scrolls down when typing (#2321) --- build/patches/Android-Pixel-Perfect-Mode.patch | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index efd8f9b1..7bba0c3e 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -83,7 +83,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../renderer/core/exported/web_view_impl.cc | 41 ++++++++++++---- .../renderer/core/exported/web_view_impl.h | 5 ++ .../renderer/core/frame/local_frame_view.cc | 5 +- - .../renderer/core/frame/visual_viewport.cc | 34 ++++++++++++- + .../renderer/core/frame/visual_viewport.cc | 39 ++++++++++++++- .../renderer/core/frame/visual_viewport.h | 7 ++- .../core/frame/web_frame_widget_impl.cc | 36 ++++++++++++-- .../core/frame/web_frame_widget_impl.h | 1 + @@ -109,7 +109,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/display/mojom/screen_info_mojom_traits.h | 4 ++ ui/display/screen_info.h | 1 + ui/events/blink/blink_event_util.cc | 2 +- - 99 files changed, 528 insertions(+), 140 deletions(-) + 99 files changed, 533 insertions(+), 140 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Pixel-perfect-mode.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Pixel-perfect-mode.inc @@ -1684,11 +1684,14 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa needs_paint_property_update_(true), overscroll_type_(ComputeOverscrollType()) { UniqueObjectId unique_id = NewUniqueObjectId(); -@@ -391,6 +393,30 @@ void VisualViewport::EnqueueResizeEvent() { +@@ -391,6 +393,33 @@ void VisualViewport::EnqueueResizeEvent() { document->EnqueueVisualViewportResizeEvent(); } +void VisualViewport::SetSizeReal(const gfx::Size& size) { ++ if (!RuntimeEnabledFeatures::PixelPerfectEnabled()) ++ return; ++ + auto scale = ScaleFromDIP(); + auto size_dpi = gfx::Size(size.width() * scale, size.height() * scale); + if (size_real_ == size_dpi) @@ -1715,17 +1718,19 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_pa void VisualViewport::SetSize(const gfx::Size& size) { if (size_ == size) return; -@@ -446,7 +472,8 @@ gfx::RectF VisualViewport::VisibleRect( +@@ -446,7 +475,10 @@ gfx::RectF VisualViewport::VisibleRect( if (scrollbar_inclusion == kExcludeScrollbars) visible_size = gfx::SizeF(ExcludeScrollbars(size_)); - visible_size.Enlarge(0, browser_controls_adjustment_); -+ int value = browser_controls_adjustment_ / browser_controls_scale_ * ScaleFromDIP(); ++ int value = browser_controls_adjustment_; ++ if (RuntimeEnabledFeatures::PixelPerfectEnabled()) ++ value = browser_controls_adjustment_ / browser_controls_scale_ * ScaleFromDIP(); + visible_size.Enlarge(0, value); visible_size.Scale(1 / scale_); return gfx::RectF(ScrollPosition(), visible_size); -@@ -879,10 +906,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, +@@ -879,10 +911,13 @@ gfx::Point VisualViewport::ClampDocumentOffsetAtScale(const gfx::Point& offset, return clamped; }