RESOLVED FIXED 183081
Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
https://bugs.webkit.org/show_bug.cgi?id=183081
Summary Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
Frédéric Wang (:fredw)
Reported 2018-02-23 06:09:52 PST
Created attachment 334524 [details] Patch (WIP) Changing AsyncFrameScrolling may change frame flattening after bug 173704 and hence may require a relayout. Maybe we also need to update scrolling tree and related stuff when enabling/disabling async frame scrolling. Note that disabling AsyncFrameScrolling via the iOS UI does not take effect immediately, because of bug 182485.
Attachments
Patch (WIP) (1.96 KB, patch)
2018-02-23 06:09 PST, Frédéric Wang (:fredw)
no flags
Archive of layout-test-results from ews107 for mac-sierra-wk2 (2.68 MB, application/zip)
2018-02-23 07:21 PST, EWS Watchlist
no flags
Patch (8.13 KB, patch)
2018-02-26 03:52 PST, Frédéric Wang (:fredw)
no flags
Archive of layout-test-results from ews104 for mac-sierra-wk2 (2.63 MB, application/zip)
2018-02-26 05:03 PST, EWS Watchlist
no flags
Archive of layout-test-results from ews113 for mac-sierra (2.98 MB, application/zip)
2018-02-26 05:21 PST, EWS Watchlist
no flags
Patch for EWS (14.82 KB, patch)
2018-02-26 07:51 PST, Frédéric Wang (:fredw)
no flags
Archive of layout-test-results from ews102 for mac-sierra (2.29 MB, application/zip)
2018-02-26 08:56 PST, EWS Watchlist
no flags
Archive of layout-test-results from ews202 for win-future (11.63 MB, application/zip)
2018-02-26 09:33 PST, EWS Watchlist
no flags
Archive of layout-test-results from ews115 for mac-sierra (3.03 MB, application/zip)
2018-02-26 09:37 PST, EWS Watchlist
no flags
Archive of layout-test-results from ews205 for win-future (11.54 MB, application/zip)
2018-02-26 09:51 PST, EWS Watchlist
no flags
Patch (8.14 KB, patch)
2018-02-27 01:28 PST, Frédéric Wang (:fredw)
no flags
Patch (7.31 KB, patch)
2018-02-27 01:36 PST, Frédéric Wang (:fredw)
no flags
Patch (8.67 KB, patch)
2018-02-28 02:50 PST, Frédéric Wang (:fredw)
tonikitoo: review+
EWS Watchlist
Comment 1 2018-02-23 07:21:43 PST
Comment on attachment 334524 [details] Patch (WIP) Attachment 334524 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/6639860 New failing tests: compositing/tiling/tiled-drawing-async-frame-scrolling.html
EWS Watchlist
Comment 2 2018-02-23 07:21:44 PST
Created attachment 334529 [details] Archive of layout-test-results from ews107 for mac-sierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews107 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
Frédéric Wang (:fredw)
Comment 3 2018-02-23 09:47:55 PST
(In reply to Frédéric Wang (:fredw) from comment #0) > Maybe we also need to update scrolling tree and related stuff when > enabling/disabling async frame scrolling. Testing with the iOS frame scrolling patches, forcing a relayout seems enough for that.
Frédéric Wang (:fredw)
Comment 4 2018-02-26 03:52:23 PST
EWS Watchlist
Comment 5 2018-02-26 05:03:50 PST
Comment on attachment 334607 [details] Patch Attachment 334607 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/6674211 New failing tests: compositing/tiling/tiled-drawing-async-frame-scrolling.html fast/frames/flattening/frameset-flattening-simple.html
EWS Watchlist
Comment 6 2018-02-26 05:03:51 PST
Created attachment 334613 [details] Archive of layout-test-results from ews104 for mac-sierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 7 2018-02-26 05:21:37 PST
Comment on attachment 334607 [details] Patch Attachment 334607 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/6674227 New failing tests: fast/frames/flattening/non-flattening-frame-inside-flattening-iframe-crash.html
EWS Watchlist
Comment 8 2018-02-26 05:21:38 PST
Created attachment 334614 [details] Archive of layout-test-results from ews113 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews113 Port: mac-sierra Platform: Mac OS X 10.12.6
Frédéric Wang (:fredw)
Comment 9 2018-02-26 07:51:10 PST
Created attachment 334616 [details] Patch for EWS
EWS Watchlist
Comment 10 2018-02-26 07:54:03 PST
Attachment 334616 [details] did not pass style-queue: ERROR: Source/WebCore/page/SettingsBase.cpp:278: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/page/SettingsBase.cpp:279: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/page/SettingsBase.cpp:280: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/page/SettingsBase.cpp:281: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/page/SettingsBase.cpp:283: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/WebCore/page/SettingsBase.cpp:284: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] Total errors found: 6 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 11 2018-02-26 08:56:47 PST
Comment on attachment 334616 [details] Patch for EWS Attachment 334616 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/6675969 New failing tests: fast/frames/flattening/frameset-flattening-simple.html
EWS Watchlist
Comment 12 2018-02-26 08:56:48 PST
Created attachment 334619 [details] Archive of layout-test-results from ews102 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews102 Port: mac-sierra Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 13 2018-02-26 09:33:00 PST
Comment on attachment 334616 [details] Patch for EWS Attachment 334616 [details] did not pass win-ews (win): Output: http://webkit-queues.webkit.org/results/6676215 New failing tests: fast/frames/flattening/frameset-flattening-simple.html
EWS Watchlist
Comment 14 2018-02-26 09:33:11 PST
Created attachment 334622 [details] Archive of layout-test-results from ews202 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews202 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
EWS Watchlist
Comment 15 2018-02-26 09:37:49 PST
Comment on attachment 334616 [details] Patch for EWS Attachment 334616 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/6676120 New failing tests: fast/frames/flattening/non-flattening-frame-inside-flattening-iframe-crash.html fast/frames/flattening/frameset-flattening-simple.html
EWS Watchlist
Comment 16 2018-02-26 09:37:50 PST
Created attachment 334624 [details] Archive of layout-test-results from ews115 for mac-sierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews115 Port: mac-sierra Platform: Mac OS X 10.12.6
EWS Watchlist
Comment 17 2018-02-26 09:50:51 PST
Comment on attachment 334607 [details] Patch Attachment 334607 [details] did not pass win-ews (win): Output: http://webkit-queues.webkit.org/results/6676388 New failing tests: fast/frames/flattening/frameset-flattening-simple.html
EWS Watchlist
Comment 18 2018-02-26 09:51:01 PST
Created attachment 334625 [details] Archive of layout-test-results from ews205 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews205 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Frédéric Wang (:fredw)
Comment 19 2018-02-27 01:28:36 PST
Frédéric Wang (:fredw)
Comment 20 2018-02-27 01:36:21 PST
Frédéric Wang (:fredw)
Comment 21 2018-02-27 06:00:11 PST
Radar WebKit Bug Importer
Comment 22 2018-02-27 06:03:07 PST
Frédéric Wang (:fredw)
Comment 23 2018-02-27 06:30:41 PST
@Don: The WinCairo bot is complaining about Settings::setFrameFlattening https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/11231/steps/compile-webkit/logs/stdio but the EWS was building correctly. I wonder whether it's because you need to force a clean rebuild on the bot as that happened in a previous bug? Can you please check? Thanks!
Frédéric Wang (:fredw)
Comment 24 2018-02-27 08:45:32 PST
(In reply to Frédéric Wang (:fredw) from comment #23) > @Don: The WinCairo bot is complaining about Settings::setFrameFlattening > https://build.webkit.org/builders/WinCairo%2064-Bit%20Release/builds/11231/ > steps/compile-webkit/logs/stdio but the EWS was building correctly. I wonder > whether it's because you need to force a clean rebuild on the bot as that > happened in a previous bug? Can you please check? Thanks! Please ignore this. The bot is green again.
Frédéric Wang (:fredw)
Comment 26 2018-02-27 23:43:58 PST
Thanks Alexey, I'll check this.
WebKit Commit Bot
Comment 27 2018-02-27 23:46:25 PST
Re-opened since this is blocked by bug 183198
Frédéric Wang (:fredw)
Comment 28 2018-02-28 02:50:24 PST
Frédéric Wang (:fredw)
Comment 29 2018-02-28 02:55:51 PST
Comment on attachment 334680 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=334680&action=review > Source/WebCore/page/SettingsBase.cpp:285 > + frameView->layoutContext().scheduleLayout(); This was not needed since setNeedsLayout actually takes care of scheduling the layout. It was also causing the assert for the two SVG tests.
Antonio Gomes
Comment 30 2018-03-07 05:01:46 PST
Comment on attachment 334734 [details] Patch r=me lets please follow on to make sure the svn failures were related to the trailing ScheduleLayout or something we were leaving over set between test runner instances, affecting the next tests.
Antonio Gomes
Comment 31 2018-03-07 05:09:41 PST
(In reply to Antonio Gomes from comment #30) > Comment on attachment 334734 [details] > Patch > > r=me > > lets please follow on to make sure the svn failures were related to the > trailing ScheduleLayout or something we were leaving over set between test > runner instances, affecting the next tests. s/svn/svg/g
Frédéric Wang (:fredw)
Comment 32 2018-03-07 09:06:33 PST
(In reply to Antonio Gomes from comment #30) > lets please follow on to make sure the svn failures were related to the > trailing ScheduleLayout or something we were leaving over set between test > runner instances, affecting the next tests. I had verified the ASSERT happened on these SVG tests, even when running only a single one so it's not something left between test runner instances. The foreignObject in these tests are subframes, so frame->ownerRenderer()->setNeedsLayoutAndPrefWidthsRecalc were called on them. Then it was wrong to force a relayout on the main frame myself: In LayoutContext::layout(), RenderTreeNeedsLayoutChecker was complaining that the subframes layout remained dirty. Instead, the calls to setNeedsLayoutAndPrefWidthsRecalc already takes care of scheduling the correct relayout. There is a separate issue, though: setNeedsRelayoutAllFrames is always called via the following stack: WebCore::SettingsBase::setNeedsRelayoutAllFrames() WebCore::Settings::setAsyncFrameScrollingEnabled(bool) WebKit::InjectedBundle::setAsyncFrameScrollingEnabled(WebKit::WebPageGroupProxy*, bool) WKBundleSetAsyncFrameScrollingEnabled WTR::InjectedBundle::beginTesting It's not clear to me why because async frame scrolling is disabled by default and WKBundleSetAsyncFrameScrollingEnabled forces it to be disable, so Settings::setAsyncFrameScrollingEnabled should just ignore the change. I'll try to check why later, maybe it's not specific to async frame scrolling.
Frédéric Wang (:fredw)
Comment 33 2018-03-07 09:11:25 PST
Note You need to log in before you can comment on or make changes to this bug.