Should get rid of TileController's CoverageForSlowScrolling mode
https://bugs.webkit.org/show_bug.cgi?id=128339
Reviewed by Simon Fraser.
Source/WebCore:
This patch gets rid of CoverageForSlowScrolling in the TileController. It also
makes sure that margin tiles are properly invalidated on pages with slow repaint
objects that cause slow scrolling.
When we invalidate because of slow scrolling, don’t clip the update rect to the
layer bounds.
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsSlowPath):
Call new RenderObject paint function repaintSlowRepaintObject() instead of the
more-generic repaint().
(WebCore::FrameView::repaintSlowRepaintObjects):
Remove CoverageForSlowScrolling.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
Handle repainting a slow repaint object. Don’t clip when we shouldn’t, use the
RenderView’s backgroundRect as a repaintRect when this is the root background
since that will take the extended background rect into consideration.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintSlowRepaintObject):
* rendering/RenderObject.h:
LayoutTests:
Slow scrolling no longer creates tiles of a different size.
* platform/mac-wk2/tiled-drawing/fixed-background/fixed-non-propagated-body-background-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-coverage-slow-scrolling-expected.txt:
* platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed