| <!DOCTYPE html> |
| <html> |
| <!-- |
| | Verify that the transition is not started when an element is removed then |
| | reattached to the DOM. |
| --> |
| <head> |
| <style> |
| body { |
| background-color: #000000; |
| } |
| |
| div { |
| width: 100px; |
| height: 100px; |
| background-color: #FF0000; |
| transition: background-color 5s; |
| } |
| </style> |
| <script> |
| if (window.testRunner) { |
| window.testRunner.waitUntilDone(); |
| } |
| |
| window.onload = function() { |
| var frame = 0; |
| var e = document.getElementById("animated"); |
| |
| function requestAnimationFrame(callback) { |
| window.requestAnimationFrame(callback); |
| if (window.testRunner) { |
| window.testRunner.DoNonMeasuredLayout(); |
| } |
| } |
| |
| function frameCallback() { |
| switch(++frame) { |
| case 1: |
| case 2: |
| requestAnimationFrame(frameCallback); |
| break; |
| case 3: |
| document.body.removeChild(e); |
| requestAnimationFrame(frameCallback); |
| break; |
| case 4: |
| requestAnimationFrame(frameCallback); |
| break; |
| case 5: |
| // Should not trigger a transition; color should change immediately. |
| e.style.backgroundColor = "#0000FF"; |
| document.body.appendChild(e); |
| requestAnimationFrame(frameCallback); |
| break; |
| case 6: |
| requestAnimationFrame(frameCallback); |
| break; |
| case 7: |
| if (window.testRunner) { |
| window.testRunner.notifyDone(); |
| } |
| break; |
| } |
| } |
| |
| // Trigger initial transition. |
| e.style.backgroundColor = "#00FF00"; |
| frameCallback(); |
| } |
| </script> |
| </head> |
| <body> |
| <div id="animated"></div> |
| </body> |
| </html> |