Index: LayoutTests/compositing/will-change/gpu-rasterization-hint-suppresses-compositing.html |
diff --git a/LayoutTests/compositing/will-change/gpu-rasterization-hint-suppresses-compositing.html b/LayoutTests/compositing/will-change/gpu-rasterization-hint-suppresses-compositing.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a18b6d885439944e46d05bc9db7757e7dd0c7740 |
--- /dev/null |
+++ b/LayoutTests/compositing/will-change/gpu-rasterization-hint-suppresses-compositing.html |
@@ -0,0 +1,92 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+ <style> |
+ #container { |
+ will-change: contents; |
+ z-index: 0; |
+ position: absolute; |
+ top: 0px; |
+ left: 0px; |
+ } |
+ |
+ .shouldNotComposite { |
+ position: absolute; |
+ width: 50px; |
+ height: 50px; |
+ background-color: blue; |
+ } |
+ |
+ #willChangeOpacity { |
+ will-change: opacity; |
+ top: 0px; |
+ left: 0px; |
+ } |
+ |
+ #willChangeContents { |
+ will-change: contents; |
+ top: 0px; |
+ left: 60px; |
+ } |
+ |
+ #willChangeTop { |
+ will-change: top; |
+ top: 0px; |
+ left: 120px; |
+ } |
+ |
+ #willChangeTransform { |
+ will-change: -webkit-transform; |
+ top: 60px; |
+ left: 0px; |
+ } |
+ |
+ #animateOpacity { |
+ |
+ top: 60px; |
+ left: 60px; |
+ -webkit-animation: fade-in-out 0.1s linear infinite alternate; |
+ } |
+ |
+ @-webkit-keyframes fade-in-out { from { opacity: 0.3; } to { opacity: 0.9; } } |
+ |
+ </style> |
+ |
+ <script> |
+ if (window.internals) { |
+ window.internals.settings.setAcceleratedCompositingForGpuRasterizationHintEnabled(true); |
+ window.internals.settings.setAcceleratedCompositingForAnimationEnabled(true); |
+ // Force an update of the compositing triggers. |
+ window.internals.forceCompositingUpdate(document); |
+ } |
+ |
+ if (window.testRunner) { |
+ testRunner.dumpAsText(); |
+ testRunner.waitUntilDone(); |
+ } |
+ |
+ function animationEventListener() { |
+ if (window.testRunner) { |
+ document.getElementById("layertree").innerText = window.internals.layerTreeAsText(document); |
+ testRunner.notifyDone(); |
+ } |
+ } |
+ |
+ window.addEventListener('load', function() { |
+ document.getElementById("animateOpacity").addEventListener('webkitAnimationIteration', animationEventListener); |
+ }, false); |
+ </script> |
+</head> |
+<body> |
+ <div id="container"> |
+ <div id="willChangeOpacity" class="shouldNotComposite"> |
+ <div id="willChangeTransform" class="shouldNotComposite"></div> |
+ </div> |
+ <div id="willChangeContents" class="shouldNotComposite"></div> |
+ <div id="willChangeTop" class="shouldNotComposite"></div> |
+ <div id="animateOpacity" class="shouldNotComposite"></div> |
+ </div> |
+ |
+ <pre id="layertree"></pre> |
+</body> |
+</html> |