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