Index: third_party/WebKit/LayoutTests/paint/invalidation/compositing/should-invoke-deferred-compositing.html |
diff --git a/third_party/WebKit/LayoutTests/paint/invalidation/compositing/should-invoke-deferred-compositing.html b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/should-invoke-deferred-compositing.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..667b61f74500ad3fe661ca3767f2814f1cd62406 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/paint/invalidation/compositing/should-invoke-deferred-compositing.html |
@@ -0,0 +1,56 @@ |
+<!DOCTYPE html> |
+ |
+<!-- crbug.com/336676 - layer creation should not accidentally skip requesting |
+ the compositor for a frame to be produced. When there were no other |
+ repaints or layout/style changes, the simple act of adding a layer was not |
+ triggering compositing updates by itself. To recreate this scenario, an |
+ out-of-flow canvas element is added to an empty composited layer. The |
+ actual container layer does not get added to the tree until it realizes |
+ that it receives the canvas content. --> |
+ |
+ |
+<html> |
+<head> |
+<script src="../resources/text-based-repaint.js"></script> |
+<style> |
+ |
+.composited { |
+ transform: translatez(0); |
+} |
+ |
+.box { |
+ position: absolute; |
+ z-index: 1; |
+ width: 300px; |
+ height: 300px; |
+ top: 0px; |
+ left: 0px; |
+} |
+ |
+canvas { |
+ position: absolute; |
+ z-index: 1; |
+ top: 0px; |
+ left: 0px; |
+} |
+ |
+</style> |
+ |
+<script> |
+ function repaintTest() { |
+ var canvasElement = document.createElement("canvas"); |
+ canvasElement.width = 200; |
+ canvasElement.height = 200; |
+ var context = canvasElement.getContext("2d"); |
+ context.fillStyle = "green"; |
+ context.fillRect(80, 80, 50, 50); |
+ document.getElementById("container").appendChild(canvasElement); |
+ } |
+</script> |
+</head> |
+ |
+<body onload="runRepaintAndPixelTest()"> |
+ <div id="container" class="composited box"></div> |
+</body> |
+ |
+</html> |