| <html> |
| <head> |
| <style> |
| .box { |
| height: 200px; |
| width: 200px; |
| border: 1px solid black; |
| background-repeat: no-repeat; |
| background-size: 100px 100px; |
| background-position: 0 0, 100px 100px; |
| } |
| |
| .apply-images { |
| background-image: url('../images/resources/green-256x256.jpg'), url('../images/resources/dice.png'); |
| } |
| |
| .composited { |
| -webkit-transform: translate3d(0, 0, 0); |
| } |
| |
| .composited.changed { |
| -webkit-transform: translate3d(50px, 50px, 0); |
| } |
| </style> |
| <script>jsTestIsAsync = true;</script> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script> |
| description("Tests that a transform change on an element with multiple background images doesn't cause a repaint."); |
| function startTrackingRepaints() |
| { |
| if (window.internals) |
| window.internals.startTrackingRepaints(); |
| document.getElementById('test').classList.add('changed'); |
| setTimeout(logRepaints, 0) |
| } |
| |
| function logRepaints() |
| { |
| layerTreeAsText = window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
| window.internals.stopTrackingRepaints(); |
| shouldBeTrue("layerTreeAsText.indexOf('(repaint rects') == -1"); |
| |
| finishJSTest(); |
| } |
| |
| var loadedRemaining = 2; |
| function imageLoaded() |
| { |
| if (!--loadedRemaining) { |
| document.getElementById('test').classList.add('apply-images'); |
| setTimeout(startTrackingRepaints, 0); |
| } |
| } |
| |
| function doTest() |
| { |
| // We have to know that the images to be used by CSS are loaded to avoid spurious repaints later. |
| var firstImage = new Image(); |
| firstImage.onload = imageLoaded; |
| firstImage.src = '../images/resources/green-256x256.jpg'; |
| |
| var secondImage = new Image(); |
| secondImage.onload = imageLoaded; |
| secondImage.src = '../images/resources/dice.png'; |
| } |
| |
| window.addEventListener('load', doTest, false); |
| </script> |
| </head> |
| <body> |
| <div id="test" class="composited box"> |
| </div> |
| <script src="../../resources/js-test-post.js"></script> |
| </html> |