| <!DOCTYPE html> |
| |
| <html> |
| <head> |
| <style> |
| * { |
| margin: 0; |
| } |
| #container { |
| position: relative; |
| height: 300px; |
| width: 300px; |
| margin: 10px; |
| background-color: green; |
| opacity: 0.5; |
| transition-property: opacity; |
| transition-timing-function: linear; |
| transition-duration: 5s; |
| } |
| |
| #box { |
| position: absolute; |
| left: 10px; |
| top: 10px; |
| height: 200px; |
| width: 200px; |
| background-color: blue; |
| } |
| |
| #indicator { |
| position: absolute; |
| top: 150px; |
| left: 150px; |
| height: 100px; |
| width: 100px; |
| background-color: orange; |
| z-index: -1; |
| } |
| </style> |
| <script> |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| function waitForCompositor() { |
| var box = document.getElementById('box'); |
| return box.animate({transform: ['scale(1)', 'scale(1)']}, 1).ready; |
| } |
| |
| function runTest() |
| { |
| var container = document.getElementById('container'); |
| container.style.opacity = 1; |
| |
| // dump the tree in the middle of the transition |
| if (window.internals) { |
| window.internals.forceCompositingUpdate(document); |
| window.internals.pauseAnimations(2.5); |
| } |
| if (window.testRunner) { |
| waitForCompositor().then(() => { |
| testRunner.notifyDone(); |
| }); |
| } |
| } |
| // FIXME: this should use runTransitionTest(). |
| window.addEventListener('load', runTest, false); |
| </script> |
| </head> |
| <body> |
| |
| <div id="container"> |
| <div id="box"></div> |
| <div id="indicator"></div> |
| </div> |
| |
| </body> |
| </html> |