WebKit Bugzilla
Attachment 370421 Details for
Bug 198131
: Inner scroller of nested overflow:scrolls jitters when scrolling
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198131-20190522105643.patch (text/plain), 8.40 KB, created by
Simon Fraser (smfr)
on 2019-05-22 10:56:44 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-05-22 10:56:44 PDT
Size:
8.40 KB
patch
obsolete
>Subversion Revision: 245606 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 4c1401e329f7788ce80318a5496d23680df8ecfb..034a139bb09b5e65dff4c57a5e132b1798986973 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,20 @@ >+2019-05-22 Simon Fraser <simon.fraser@apple.com> >+ >+ Inner scroller of nested overflow:scrolls jitters when scrolling >+ https://bugs.webkit.org/show_bug.cgi?id=198131 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ enclosingCompositedScrollingLayer(layer) would return the layer itself, rather than >+ its scrolling ancestor, which meant that a composited scroller nested inside another >+ scroller would fail to get a "Moves" scrolling tree node, and therefore jitter >+ when scrolling. >+ >+ Test: scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html >+ >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::enclosingCompositedScrollingLayer): >+ > 2019-05-21 Myles C. Maxfield <mmaxfield@apple.com> > > font-optical-sizing applies the wrong variation value >diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp >index 07d95aa1c60b8e2339f324fc86354c7bd8c4d275..51c0d3a0141f2fe28fe666a9ebd1ed01b5c9e048 100644 >--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp >+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp >@@ -3026,7 +3026,7 @@ bool RenderLayerCompositor::useCoordinatedScrollingForLayer(const RenderLayer& l > > static RenderLayer* enclosingCompositedScrollingLayer(const RenderLayer& layer, const RenderLayer& intermediateLayer, bool& sawIntermediateLayer) > { >- const auto* currLayer = &layer; >+ const auto* currLayer = layer.parent(); > while (currLayer) { > if (currLayer == &intermediateLayer) > sawIntermediateLayer = true; >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 839b0fd34cf435824a22ced30eabc25488aecc8a..52a47a0ec81a84febd9dc1c2843f790bab9a6821 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,14 @@ >+2019-05-22 Simon Fraser <simon.fraser@apple.com> >+ >+ Inner scroller of nested overflow:scrolls jitters when scrolling >+ https://bugs.webkit.org/show_bug.cgi?id=198131 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt: Added. >+ * scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt: Added. >+ * scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html: Added. >+ > 2019-05-21 Myles C. Maxfield <mmaxfield@apple.com> > > font-optical-sizing applies the wrong variation value >diff --git a/LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt b/LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0ed8613faca861484918559d10500dd12b1ad0ad >--- /dev/null >+++ b/LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt >@@ -0,0 +1,48 @@ >+ >+(Frame scrolling node >+ (scrollable area size 800 600) >+ (contents size 800 600) >+ (parent relative scrollable rect at (0,0) size 800x600) >+ (scrollable area parameters >+ (horizontal scroll elasticity 1) >+ (vertical scroll elasticity 1) >+ (horizontal scrollbar mode 0) >+ (vertical scrollbar mode 0)) >+ (layout viewport at (0,0) size 800x600) >+ (min layout viewport origin (0,0)) >+ (max layout viewport origin (0,0)) >+ (behavior for fixed 0) >+ (children 2 >+ (Overflow scrolling node >+ (scrollable area size 300 300) >+ (contents size 300 464) >+ (parent relative scrollable rect at (30,22) size 300x300) >+ (scrollable area parameters >+ (horizontal scroll elasticity 1) >+ (vertical scroll elasticity 1) >+ (horizontal scrollbar mode 0) >+ (vertical scrollbar mode 0) >+ (has enabled vertical scrollbar 1)) >+ ) >+ (Positioned node >+ (layout constraints >+ (layer-position-at-last-layout (20,130)) >+ (positioning-behavior moves)) >+ (related overflow nodes 1) >+ (children 1 >+ (Overflow scrolling node >+ (scrollable area size 200 200) >+ (contents size 200 520) >+ (parent relative scrollable rect at (2,2) size 200x200) >+ (scrollable area parameters >+ (horizontal scroll elasticity 1) >+ (vertical scroll elasticity 1) >+ (horizontal scrollbar mode 0) >+ (vertical scrollbar mode 0) >+ (has enabled vertical scrollbar 1)) >+ ) >+ ) >+ ) >+ ) >+) >+ >diff --git a/LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt b/LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c8df37f2cce15fb75feab869c237c92b8831b1b5 >--- /dev/null >+++ b/LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt >@@ -0,0 +1,48 @@ >+ >+(Frame scrolling node >+ (scrollable area size 800 600) >+ (contents size 800 600) >+ (parent relative scrollable rect at (0,0) size 800x600) >+ (scrollable area parameters >+ (horizontal scroll elasticity 2) >+ (vertical scroll elasticity 2) >+ (horizontal scrollbar mode 0) >+ (vertical scrollbar mode 0)) >+ (layout viewport at (0,0) size 800x600) >+ (min layout viewport origin (0,0)) >+ (max layout viewport origin (0,0)) >+ (behavior for fixed 0) >+ (children 2 >+ (Overflow scrolling node >+ (scrollable area size 285 285) >+ (contents size 285 464) >+ (parent relative scrollable rect at (30,22) size 285x285) >+ (scrollable area parameters >+ (horizontal scroll elasticity 0) >+ (vertical scroll elasticity 0) >+ (horizontal scrollbar mode 0) >+ (vertical scrollbar mode 0) >+ (has enabled vertical scrollbar 1)) >+ ) >+ (Positioned node >+ (layout constraints >+ (layer-position-at-last-layout (20,130)) >+ (positioning-behavior moves)) >+ (related overflow nodes 1) >+ (children 1 >+ (Overflow scrolling node >+ (scrollable area size 185 185) >+ (contents size 185 520) >+ (parent relative scrollable rect at (2,2) size 185x185) >+ (scrollable area parameters >+ (horizontal scroll elasticity 0) >+ (vertical scroll elasticity 0) >+ (horizontal scrollbar mode 0) >+ (vertical scrollbar mode 0) >+ (has enabled vertical scrollbar 1)) >+ ) >+ ) >+ ) >+ ) >+) >+ >diff --git a/LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html b/LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a63b7fcddfdd6124d84bb9449a0311667f3e7e9e >--- /dev/null >+++ b/LayoutTests/scrollingcoordinator/scrolling-tree/nested-overflow-scroll.html >@@ -0,0 +1,57 @@ >+<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> >+<html> >+<head> >+ <title>Tests that we create a scrolling tree node for a nested overflow-scroll</title> >+ <style> >+ .scroller { >+ overflow: scroll; >+ margin: 20px; >+ height: 300px; >+ width: 300px; >+ border: 2px solid black; >+ } >+ >+ .scroller > .scroller { >+ height: 200px; >+ width: 200px; >+ } >+ >+ .composited { >+ transform: translateZ(0); >+ } >+ >+ .box { >+ margin: 10px; >+ width: 100px; >+ height: 100px; >+ background-color: green; >+ } >+ >+ .spacer { >+ margin: 10px; >+ height: 500px; >+ width: 10px; >+ background-color: silver; >+ } >+ </style> >+ <script> >+ if (window.testRunner) >+ testRunner.dumpAsText(); >+ >+ window.addEventListener('load', () => { >+ if (window.internals) >+ document.getElementById('tree').innerText = internals.scrollingStateTreeAsText(); >+ }, false); >+ </script> >+</head> >+<body> >+ <div class="scroller"> >+ <div class="box"></div> >+ <div class="composited scroller"> >+ <div class="spacer"></div> >+ </div> >+ <div class="box"></div> >+ </div> >+<pre id="tree"></pre> >+</body> >+</html>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
koivisto
:
review+
ews-watchlist
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198131
: 370421 |
370434