Bug 195584

Summary: [iOS WK2] REGRESSION (r242687): Programmatic scroll of overflow scroll results in bad rendering
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: ScrollingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: dvpdiner2, ews-watchlist, fred.wang, koivisto, rniwa, ryanhaddad, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=195507
Bug Depends on: 196424    
Bug Blocks:    
Attachments:
Description Flags
Work in progress
none
Patch
zalan: review+, ews-watchlist: commit-queue-
Archive of layout-test-results from ews104 for mac-highsierra-wk2
none
Archive of layout-test-results from ews126 for ios-simulator-wk2 none

Simon Fraser (smfr)
Reported 2019-03-11 17:06:54 PDT
Programmatic scroll of overflow:scroll does the wrong thing (it clobbers the UIScrollView contentOffset with 0,0).
Attachments
Work in progress (22.20 KB, patch)
2019-03-11 20:22 PDT, Simon Fraser (smfr)
no flags
Patch (32.54 KB, patch)
2019-04-04 17:20 PDT, Simon Fraser (smfr)
zalan: review+
ews-watchlist: commit-queue-
Archive of layout-test-results from ews104 for mac-highsierra-wk2 (2.70 MB, application/zip)
2019-04-04 18:40 PDT, EWS Watchlist
no flags
Archive of layout-test-results from ews126 for ios-simulator-wk2 (2.56 MB, application/zip)
2019-04-04 19:17 PDT, EWS Watchlist
no flags
Simon Fraser (smfr)
Comment 1 2019-03-11 17:12:50 PDT
Marked compositing/ios/overflow-scroll-update-overlap.html as failing for now in https://trac.webkit.org/changeset/242758/webkit
Simon Fraser (smfr)
Comment 2 2019-03-11 19:38:34 PDT
We need the same logic we have for "requestedScrollPositionUpdate" for overflow that we have for Frames.
Simon Fraser (smfr)
Comment 3 2019-03-11 20:22:57 PDT
Created attachment 364342 [details] Work in progress
Simon Fraser (smfr)
Comment 4 2019-03-11 20:24:22 PDT
Need to do some cleanup work before this to move isHandlingProgrammaticScroll from ScrollingTree to the scrolling node, and make frames/overflow more similar for programmatic scroll.
Radar WebKit Bug Importer
Comment 5 2019-03-11 20:25:16 PDT
Darryl Pogue
Comment 6 2019-04-01 12:21:02 PDT
Might the fix for this also improve the situation for bug 192564 where the UIScrollView contentOffset changing on keyboard closing doesn't result in re-rendering of layers?
Simon Fraser (smfr)
Comment 7 2019-04-01 12:29:55 PDT
I don't think so; this is a regression from recent work.
Simon Fraser (smfr)
Comment 8 2019-04-04 17:20:39 PDT
zalan
Comment 9 2019-04-04 17:24:23 PDT
Comment on attachment 366779 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=366779&action=review > Source/WebCore/rendering/RenderLayer.cpp:2817 > + return 0; 0 is a special value?
Simon Fraser (smfr)
Comment 10 2019-04-04 17:30:58 PDT
(In reply to zalan from comment #9) > Comment on attachment 366779 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=366779&action=review > > > Source/WebCore/rendering/RenderLayer.cpp:2817 > > + return 0; > > 0 is a special value? Yes, a valid ScrollingNodeID is never 0.
zalan
Comment 11 2019-04-04 17:34:29 PDT
(In reply to Simon Fraser (smfr) from comment #10) > (In reply to zalan from comment #9) > > Comment on attachment 366779 [details] > > Patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=366779&action=review > > > > > Source/WebCore/rendering/RenderLayer.cpp:2817 > > > + return 0; > > > > 0 is a special value? > > Yes, a valid ScrollingNodeID is never 0. optionals don't work?
EWS Watchlist
Comment 12 2019-04-04 18:40:07 PDT
Comment on attachment 366779 [details] Patch Attachment 366779 [details] did not pass mac-wk2-ews (mac-wk2): Output: https://webkit-queues.webkit.org/results/11772321 New failing tests: fast/html/marquee-scrollamount.html
EWS Watchlist
Comment 13 2019-04-04 18:40:09 PDT
Created attachment 366786 [details] Archive of layout-test-results from ews104 for mac-highsierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
EWS Watchlist
Comment 14 2019-04-04 19:17:18 PDT
Comment on attachment 366779 [details] Patch Attachment 366779 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: https://webkit-queues.webkit.org/results/11772408 New failing tests: fast/html/marquee-scrollamount.html
EWS Watchlist
Comment 15 2019-04-04 19:17:20 PDT
Created attachment 366790 [details] Archive of layout-test-results from ews126 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Simon Fraser (smfr)
Comment 16 2019-04-04 22:19:08 PDT
Antti Koivisto
Comment 17 2019-04-04 22:20:17 PDT
Comment on attachment 366779 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=366779&action=review > Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:163 > + scrollingTree().setIsHandlingProgrammaticScroll(scrollType == ScrollType::Programmatic); Using a tree-global bit as a side channel is bug-prone and confusing. We should probably have some sort of context object that we pass around.
Simon Fraser (smfr)
Comment 18 2019-04-04 23:16:51 PDT
(In reply to Antti Koivisto from comment #17) > Comment on attachment 366779 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=366779&action=review > > > Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:163 > > + scrollingTree().setIsHandlingProgrammaticScroll(scrollType == ScrollType::Programmatic); > > Using a tree-global bit as a side channel is bug-prone and confusing. We > should probably have some sort of context object that we pass around. Agreed that might be nicer, and probably not too bad in the scrolling tree.
Note You need to log in before you can comment on or make changes to this bug.