[webkit-changes] [WebKit/WebKit] 602713: REGRESSION: Bad flashing scrolling msn.com article...

Nikos Mouchtaris noreply at github.com
Wed May 29 11:03:34 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6027137b2de4527ee793e0ad300aa458b5d5ae3a
      https://github.com/WebKit/WebKit/commit/6027137b2de4527ee793e0ad300aa458b5d5ae3a
  Author: Nikolaos Mouchtaris <nmouchtaris at apple.com>
  Date:   2024-05-29 (Wed, 29 May 2024)

  Changed paths:
    A LayoutTests/fast/visual-viewport/ios/visual-viewport-dimensions-during-scroll-with-keyboard-expected.txt
    A LayoutTests/fast/visual-viewport/ios/visual-viewport-dimensions-during-scroll-with-keyboard.html
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  REGRESSION: Bad flashing scrolling msn.com article when search field has focus (content-visibility)
https://bugs.webkit.org/show_bug.cgi?id=274624
rdar://127743319

Reviewed by Simon Fraser.

The cause of the flashing is that the IntersectionObserver computed that the content-visibility: auto
elements were going in and out of the visual viewport rapidly. This was due to the visual viewport’s value
changing between two locations, due to the difference in how it is computed between
LocalFrameView::updateLayoutViewport and AsyncScrollingCoordinator::reconcileScrollingState. In
LocalFrameView::updateLayoutViewport, the visual viewport is used in computeLayoutViewportOrigin to
compute the new location of the layout viewport. When the keyboard is visible, m_visualViewportOverrideRect
is sent via WebPage::updateVisibleContentRects, but is not udpated during unstable state, causing
computeLayoutViewportOrigin to use a stale version of the visual viewport. The solution is to always update
the visualViewportOverrideRect value if received from the ui process.

* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):

Canonical link: https://commits.webkit.org/279448@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