Summary: | Dynamically triggered subframe loads are causing tile churn | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Antti Koivisto <koivisto> | ||||
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | andersca, commit-queue, esprehn+autocc, kling, simon.fraser, thorton | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Antti Koivisto
2013-04-11 07:12:03 PDT
This shows up in the tile map with speculative tiles disappearing and reappearing after end of the load. Created attachment 198114 [details]
patch
Comment on attachment 198114 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=198114&action=review r=me, good catch. I wonder if there are cases where the window resize optimization is too clever and just causing churn. > Source/WebCore/ChangeLog:8 > + In some cases we switch in and out of minimal times multiple times during page loading. This minimal times -> minimal tiles > Source/WebCore/ChangeLog:9 > + creates tile churn where we create speculatively tiles and then throw them out. This can be speculatively -> speculative > Source/WebCore/ChangeLog:16 > + tiles while waiting response for the initial requests. waiting -> awaiting > Source/WebCore/ChangeLog:18 > + (WebCore): <darin>Please remove this useless line. Better yet, please fix the script to stop generating them!</darin> > Source/WebCore/ChangeLog:28 > + Only switch into minimal coverage mode once per page load. Indentation is different here. > Source/WebCore/rendering/RenderLayerBacking.cpp:226 > + useMinimalTilesDuringLoading = !frameView->isVisuallyNonEmpty() || (frame->page()->progress()->isLoadProgressing() && !frameView->wasScrolledByUser()); "!frameView->isVisuallyNonEmpty()" :| Comment on attachment 198114 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=198114&action=review > Source/WebCore/rendering/RenderLayerBacking.h:312 > + bool m_didSwitchToFullTileCoverageDuringLoading; Shame to use a bool on every RLB when only the root needs one. |