Skip to content
Commit 8b3c3b4f authored by commit-queue@webkit.org's avatar commit-queue@webkit.org
Browse files

Coordinated Graphics: Remove tiles of a layer when they are off the viewport.

https://bugs.webkit.org/show_bug.cgi?id=102313

Patch by Huang Dongsung <luxtella@company100.net> on 2012-11-19
Reviewed by Noam Rosenthal.

Source/WebKit2:

Currently, we don't remove tiles of the layer with the special properties: a
transform animation and non affine transform. If a page has a lot of layers with
a transform animation, we will encounter OOM. So this patch removes the
privilege of the layer.

There are two changes.
1. computeTransformedVisibleRect() calculates a layer transform using the
current local transform which a transform animation applied.
2. tiledBackingStoreVisibleRect() calculates a visible
rect of all layers, even if the layer includes the property: a transform
animation or non affine transform.

Test: animations/animation-offscreen-to-onscreen.html

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::effectiveContentsScale):
(WebCore::CoordinatedGraphicsLayer::tiledBackingStoreVisibleRect):
(WebCore::CoordinatedGraphicsLayer::hasPendingVisibleChanges):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
(WebCore::CoordinatedGraphicsLayer::selfOrAncestorHasActiveTransformAnimation):
(WebCore):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):

LayoutTests:

This test checks that a compositing layer is rendered if the layer is
originally transformed off the viewport.

* animations/animation-offscreen-to-onscreen-expected.png: Added.
* animations/animation-offscreen-to-onscreen-expected.txt: Added.
* animations/animation-offscreen-to-onscreen.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 276d0b45
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment