[webkit-changes] [WebKit/WebKit] 5fc310: REGRESSION (286043 at main): [iOS] Adjusting page zoo...

Wenson Hsieh noreply at github.com
Tue Jan 7 00:16:19 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5fc310e87e86d023ade0d28e09a954085f0ec176
      https://github.com/WebKit/WebKit/commit/5fc310e87e86d023ade0d28e09a954085f0ec176
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2025-01-07 (Tue, 07 Jan 2025)

  Changed paths:
    A LayoutTests/fast/viewport/ios/no-unnecessary-horizontal-scrolling-after-changing-view-scale-expected.txt
    A LayoutTests/fast/viewport/ios/no-unnecessary-horizontal-scrolling-after-changing-view-scale.html
    M Source/WebCore/page/ViewportConfiguration.cpp

  Log Message:
  -----------
  REGRESSION (286043 at main): [iOS] Adjusting page zoom with -/+ causes page to become too wide or too narrow
https://bugs.webkit.org/show_bug.cgi?id=285488
rdar://140818892

Reviewed by Aditya Keerthi.

After the changes in 286043 at main, adjusting view scale using -/+ buttons in the Safari Page menu now
correctly increase or decrease the layout width of a webpage that has a fixed viewport width, by
forcing the fixed width to be scaled by the (explicitly-set) layout size scale factor.

However, in the case where the viewport is responsive, `m_configuration.width` has already been set
relative to the minimum layout size, which accounts for the view scale (effective layout size scale
factor). As such, we end up doubly scaling `m_configuration.width` by the layout size scale factor,
which leads to excessive horizontal scrolling when zooming out (e.g., zooming out to 0.5 view scale
when the viewport and content are both 1000 px causes the body to become twice as wide as the
viewport).

To address this, we limit the aforementioned change to the case where the viewport argument had
explicitly specified a fixed width — as opposed to `ValueAuto` or `ValueDeviceWidth`.

* LayoutTests/fast/viewport/ios/no-unnecessary-horizontal-scrolling-after-changing-view-scale-expected.txt: Added.
* LayoutTests/fast/viewport/ios/no-unnecessary-horizontal-scrolling-after-changing-view-scale.html: Added.

Add a layout test to exercise this change, by sanity checking the width of `document.body` against
the visual viewport width.

* Source/WebCore/page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::updateConfiguration):

Canonical link: https://commits.webkit.org/288510@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list