RESOLVED FIXED313161
"scrollbar-gutter" on root element is misplaced in RTL layouts
https://bugs.webkit.org/show_bug.cgi?id=313161
Summary "scrollbar-gutter" on root element is misplaced in RTL layouts
oss
Reported 2026-04-23 12:44:04 PDT
Created attachment 479273 [details] Example of RTL gutter placement on root element, root element inside iframe and normal elements In scroll containers, Webkit renders scrollbars left-sided in RTL layouts, both for normal elements as well as root elements. Unfortunately it places the corresponding scrollbar-gutter, right-sided for root elements, for both top window and nested documents. This causes layout to shift when going the gutter is replaced by the actual scrollbars, whereas the gutter should always be in-place.
Attachments
Example of RTL gutter placement on root element, root element inside iframe and normal elements (2.78 KB, text/html)
2026-04-23 12:44 PDT, oss
no flags
Patch (4.03 KB, patch)
2026-04-29 16:03 PDT, alan
no flags
[fast- cq]Patch (3.92 KB, patch)
2026-04-29 17:07 PDT, alan
no flags
[fast-cq]Patch (3.92 KB, patch)
2026-04-30 04:34 PDT, alan
no flags
alan
Comment 1 2026-04-29 16:03:57 PDT
Simon Fraser (smfr)
Comment 2 2026-04-29 16:45:41 PDT
Comment on attachment 479383 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=479383&action=review > Source/WebCore/page/LocalFrameView.cpp:7285 > + if (scrollbarGutterStyle().isStableBothEdges() || shouldPlaceVerticalScrollbarOnLeft()) I'm not sure this is right; doesn't it leave a gap on the left even when scrollbars are overlay (no gutter)? > LayoutTests/fast/scrolling/scrollbar-gutter-stable-rtl-viewport-expected.html:1 > +<!DOCTYPE html> <!-- webkit-test-runner [ MockScrollbarsEnabled=false ] --> Mock scrollbars should be OK here.
Simon Fraser (smfr)
Comment 3 2026-04-29 16:45:58 PDT
View in context: https://bugs.webkit.org/attachment.cgi?id=479383&action=review > Source/WebCore/page/LocalFrameView.cpp:7285 > + if (scrollbarGutterStyle().isStableBothEdges() || shouldPlaceVerticalScrollbarOnLeft()) I'm not sure this is right; doesn't it leave a gap on the left even when scrollbars are overlay (no gutter)? > LayoutTests/fast/scrolling/scrollbar-gutter-stable-rtl-viewport-expected.html:1 > +<!DOCTYPE html> <!-- webkit-test-runner [ MockScrollbarsEnabled=false ] --> Mock scrollbars should be OK here.
alan
Comment 4 2026-04-29 17:07:26 PDT
Created attachment 479384 [details] [fast- cq]Patch
EWS
Comment 5 2026-04-30 04:29:26 PDT
Patch 479384 does not build
alan
Comment 6 2026-04-30 04:34:32 PDT
Created attachment 479390 [details] [fast-cq]Patch
EWS
Comment 7 2026-04-30 06:31:22 PDT
Committed 312360@main (92693c2591b2): <https://commits.webkit.org/312360@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 479390 [details].
Radar WebKit Bug Importer
Comment 8 2026-04-30 06:32:13 PDT
Note You need to log in before you can comment on or make changes to this bug.