Don't unconditionally repaint compositing layers when their size changes
https://bugs.webkit.org/show_bug.cgi?id=104461

Reviewed by Sam Weinig.

Source/WebCore:

RenderLayerBacking always repainted the entire compositing layer when its size
changed. This was done to fix repaint issues when outline widths changes, but
that issue is now solved by repainting in GraphicsLayer::setOffsetFromRenderer(),
add in r134628. I believe this is no longer necessary.

Always repainting when the size changes is terrible for the tile cache when
loading large documents, as all tiles repaint every time the document gets
longer.

Test: compositing/repaint/resize-repaint.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

LayoutTests:

Test that dumps repaint rects after adding content to a compositing layer.

* compositing/repaint/resize-repaint-expected.txt: Added.
* compositing/repaint/resize-repaint.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137215 268f45cc-cd09-0410-ab3c-d52691b4dbfc
When converting a layer into a tiled layer, ensure that we update the visible rect
https://bugs.webkit.org/show_bug.cgi?id=104467

Reviewed by Darin Adler.

Source/WebCore:

When a GraphicsLayerCA toggles to use a TileCache, we have to ensure that the
layer's visible rect (which is used to ensure tile coverage) is updated in
the same commit. Otherwise we can get blank layers until something else causes
the visible rect to be updated.

Test: compositing/tiling/tiled-layer-resize.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::dumpAdditionalProperties): With the debug flag, dump the TiledBacking
address for ease of debugging.
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Set the VisibleRectChanged bit in
m_uncommittedChanges if we've just switched to a tiled layer.

LayoutTests:

Test that resizes a layer over the tiled layer threshold, then dumps layer data.

Mac-specific results added because only Mac dumps tile cache info.

* compositing/tiling/tiled-layer-resize-expected.txt: Added.
* compositing/tiling/tiled-layer-resize.html: Added.
* platform/mac/compositing/tiling/tiled-layer-resize-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137216 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix frame border painting in tiled drawing mode
https://bugs.webkit.org/show_bug.cgi?id=104453
<rdar://problem/11678611>

Reviewed by Dan Bernstein.

Frame borders were not correctly invalidated when in tiled drawing mode, because
RenderFrameSet::layout() invalidated directly on the view, which skips the tile
cache.

Fix by invalidating like all other renderers, via the repaint container.

Also, the layer transform should be updated before the invalidation, and
we make use of RenderObject::updateLayerTransform() which has the same behavior
as the old code.

Attempts to make a layout test failed. Resizing composited framesets repainted
via layer resizing, and an attempt to make a ref test in tiled drawing mode
failed (the test passed without the patch).

* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layout):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137217 268f45cc-cd09-0410-ab3c-d52691b4dbfc