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