diff options
author | simon.fraser@apple.com <simon.fraser@apple.com@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2011-07-19 20:32:58 +0000 |
---|---|---|
committer | simon.fraser@apple.com <simon.fraser@apple.com@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2011-07-19 20:32:58 +0000 |
commit | 1dea9fcdc7170f94b562f76354b1ed2b37052e05 (patch) | |
tree | eed65a66e620b383e674ffbc4d24e28a4e9e4fdd /third_party/WebKit/LayoutTests/compositing/scaling/tiled-layer-recursion.html | |
parent | 5b2c444ae6fb4dc7554f864c6e68bea6e49c7e5e (diff) | |
download | chromium_src-1dea9fcdc7170f94b562f76354b1ed2b37052e05.zip chromium_src-1dea9fcdc7170f94b562f76354b1ed2b37052e05.tar.gz chromium_src-1dea9fcdc7170f94b562f76354b1ed2b37052e05.tar.bz2 |
2011-07-19 Simon Fraser <simon.fraser@apple.com>
Possible recursion in GraphicsLayerCA::updateGeometry()
https://bugs.webkit.org/show_bug.cgi?id=64815
Reviewed by Sam Weinig.
It was possible to recurse via updateGeometry/swapFromOrToTiledLayer/
updateContentsScale because updateGeometry() and updateContentsScale()
used different sizes; updateGeometry() used the scaled size, while
updateContentsScale() used the unscaled size.
Always use the unscaled size; the scaled size will be at most a couple
of pixels bigger, and our threshold is not close to the max texture
size limit, so using the slightly smaller size is OK.
Test: compositing/scaling/tiled-layer-recursion.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateLayerDrawsContent):
(WebCore::GraphicsLayerCA::updateContentsScale):
(WebCore::GraphicsLayerCA::requiresTiledLayer):
* platform/graphics/ca/GraphicsLayerCA.h:
git-svn-id: svn://svn.chromium.org/blink/trunk@91294 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/compositing/scaling/tiled-layer-recursion.html')
-rw-r--r-- | third_party/WebKit/LayoutTests/compositing/scaling/tiled-layer-recursion.html | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/compositing/scaling/tiled-layer-recursion.html b/third_party/WebKit/LayoutTests/compositing/scaling/tiled-layer-recursion.html new file mode 100644 index 0000000..f8b189f --- /dev/null +++ b/third_party/WebKit/LayoutTests/compositing/scaling/tiled-layer-recursion.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> + +<html> +<head> + <style> + .composited { + background-color: green; + width: 200px; + height: 1333px; + -webkit-transform: translateZ(0); + } + </style> + <script> + if (window.layoutTestController) + layoutTestController.dumpAsText(true); + + function scalePage() + { + eventSender.scalePageBy(1.50025, 0, 0); + } + + window.addEventListener('load', scalePage, false); + </script> +</head> +<body> + <!-- This test should not crash. --> + <div class="composited"></div> +</body> +</html> |