Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f774c2b1c4f1e68a9b0a273b331f0551f64fdd0d
      
https://github.com/WebKit/WebKit/commit/f774c2b1c4f1e68a9b0a273b331f0551f64fdd0d
  Author: Simon Fraser <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A LayoutTests/fast/scrolling/ios/fixed-position-in-vertical-rl-expected.html
    A LayoutTests/fast/scrolling/ios/fixed-position-in-vertical-rl.html
    M Source/WebCore/page/LocalFrameView.cpp

  Log Message:
  -----------
  [iOS] RTL/position fixed element can lose its contents when the document is 
scrolled
https://bugs.webkit.org/show_bug.cgi?id=315117
rdar://177454608

Reviewed by Abrar Rahman Protyasha.

In a side-scrolling RTL page on iOS, scrolling the main frame would cause 
content inside
an overflow:scroll inside a fixedpos to disappear. The issue is that we'd 
compute an incorrect
layoutViewportRect in `_createVisibleContentRectUpdate`, and this was sent to 
the web
process and used to compute layer coverage rects.

`_createVisibleContentRectUpdate` passes the `ConstrainedToDocumentRect` flag to
`LocalFrameView::computeUpdatedLayoutViewportRect()`, whose constraining logic 
was wrong
with RTL where documentBounds.x() goes negative. So use that to clamp, instead 
of 0.

I confirmed that the test case for b98e498a0, which added this code, still 
works.

Test: fast/scrolling/ios/fixed-position-in-vertical-rl.html

* LayoutTests/fast/scrolling/ios/fixed-position-in-vertical-rl-expected.html: 
Added.
* LayoutTests/fast/scrolling/ios/fixed-position-in-vertical-rl.html: Added.
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::computeUpdatedLayoutViewportRect):

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



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

Reply via email to