WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
198292
[async scrolling] Fixed positioning inside stacking context overflow scroll is jumpy
https://bugs.webkit.org/show_bug.cgi?id=198292
Summary
[async scrolling] Fixed positioning inside stacking context overflow scroll i...
Antti Koivisto
Reported
2019-05-28 05:14:25 PDT
It is.
Attachments
patch
(30.83 KB, patch)
2019-05-28 05:34 PDT
,
Antti Koivisto
ews-watchlist
: commit-queue-
Details
Formatted Diff
Diff
GTK/WPE build fixes
(2.38 KB, patch)
2019-05-28 06:12 PDT
,
Zan Dobersek
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews105 for mac-highsierra-wk2
(2.70 MB, application/zip)
2019-05-28 06:52 PDT
,
EWS Watchlist
no flags
Details
patch
(32.97 KB, patch)
2019-05-28 07:41 PDT
,
Antti Koivisto
no flags
Details
Formatted Diff
Diff
test
(990 bytes, text/html)
2019-05-28 11:17 PDT
,
Antti Koivisto
no flags
Details
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Antti Koivisto
Comment 1
2019-05-28 05:34:48 PDT
Created
attachment 370727
[details]
patch
Antti Koivisto
Comment 2
2019-05-28 05:57:06 PDT
GTK/WPE build failures are in unused "nicosia" code. It is unreasonable to push maintenance burden of it to people who are working on async scrolling.
Zan Dobersek
Comment 3
2019-05-28 06:12:13 PDT
Created
attachment 370729
[details]
GTK/WPE build fixes Here's the GTK/WPE build fixes in the Nicosia code. Feel free to apply it before landing, otherwise I can land it once your patch lands.
EWS Watchlist
Comment 4
2019-05-28 06:51:58 PDT
Comment on
attachment 370727
[details]
patch
Attachment 370727
[details]
did not pass mac-wk2-ews (mac-wk2): Output:
https://webkit-queues.webkit.org/results/12307670
New failing tests: scrollingcoordinator/mac/nested-sticky.html
EWS Watchlist
Comment 5
2019-05-28 06:52:00 PDT
Created
attachment 370734
[details]
Archive of layout-test-results from ews105 for mac-highsierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews105 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
Antti Koivisto
Comment 6
2019-05-28 07:41:51 PDT
Created
attachment 370738
[details]
patch
Darin Adler
Comment 7
2019-05-28 08:51:00 PDT
Comment on
attachment 370738
[details]
patch Old code seems to have "cleverly" avoided a source of n^2 algorithm cost, by computing as we descend the tree. New code walks the parent list so is potentially slower for very deep trees. Makes me wonder if we should have some kind of stress test for a deeply nested tree. I’m sure many of our algorithms have such issues, not sure what our performance/scaling goals are for them.
Simon Fraser (smfr)
Comment 8
2019-05-28 10:39:08 PDT
Comment on
attachment 370738
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=370738&action=review
> Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNode.mm:90 > + FloatSize overflowScrollDelta; > + // FIXME: This code is wrong in complex cases where the fixed element is inside a positioned node as > + // the scroll container order does not match the scrolling tree ancestor order. > + for (auto* node = parent(); node; node = node->parent()) { > + if (is<ScrollingTreeFrameScrollingNode>(*node)) { > + // Fixed nodes are positioned relative to the containing frame scrolling node. > + // We bail out after finding one. > + auto layoutViewport = downcast<ScrollingTreeFrameScrollingNode>(*node).layoutViewport(); > + return m_constraints.layerPositionForViewportRect(layoutViewport) - overflowScrollDelta; > + } > + > + if (is<ScrollingTreeOverflowScrollingNode>(*node)) { > + // To keep the layer still during async scrolling we adjust by how much the position has changed since layout. > + auto& overflowNode = downcast<ScrollingTreeOverflowScrollingNode>(*node); > + auto localDelta = overflowNode.lastCommittedScrollPosition() - overflowNode.currentScrollPosition(); > + overflowScrollDelta += localDelta; > + } > + } > + ASSERT_NOT_REACHED(); > + return FloatPoint();
Won't Sticky nodes need similar logic?
Antti Koivisto
Comment 9
2019-05-28 10:42:36 PDT
> Won't Sticky nodes need similar logic?
Maybe. I'll add some tests and fixes as needed separately.
WebKit Commit Bot
Comment 10
2019-05-28 11:11:59 PDT
Comment on
attachment 370738
[details]
patch Clearing flags on attachment: 370738 Committed
r245818
: <
https://trac.webkit.org/changeset/245818
>
WebKit Commit Bot
Comment 11
2019-05-28 11:12:01 PDT
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 12
2019-05-28 11:12:24 PDT
<
rdar://problem/51186119
>
Antti Koivisto
Comment 13
2019-05-28 11:17:31 PDT
Created
attachment 370769
[details]
test
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug