Dynamically triggered subframe loads are causing tile churn
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Apr 2013 13:00:50 +0000 (13:00 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Apr 2013 13:00:50 +0000 (13:00 +0000)
commitc59e9da46f61093aafc8cf5377a9d644458becce
tree2182976f1c7a018040848a3e0e4fba4f444fef6e
parentb975b599b630e83afb331bf52a3959411276c54e
Dynamically triggered subframe loads are causing tile churn
https://bugs.webkit.org/show_bug.cgi?id=114440

Reviewed by Andreas Kling.

In some cases we switch in and out of minimal tiles multiple times during page loading. This
creates tile churn where we create speculative tiles and then throw them out. This can be
caused by various reasons including dynamically created subframes.

* page/FrameView.cpp:
(WebCore::FrameView::setIsVisuallyNonEmpty):

    Stay in minimal tiles modes until there is some visual contents. This avoids switching out from minimal
    tiles while awaiting response for the initial requests.

* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::computeTileCoverage):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::didSwitchToFullTileCoverageDuringLoading):
(WebCore::RenderLayerBacking::setDidSwitchToFullTileCoverageDuringLoading):

    Only switch into minimal coverage mode once per page load.

(RenderLayerBacking):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@148432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp
Source/WebCore/page/FrameView.h
Source/WebCore/rendering/RenderLayerBacking.cpp
Source/WebCore/rendering/RenderLayerBacking.h