| <style> |
| .box { |
| width: 300px; |
| height: 300px; |
| background-color: red; |
| background-position: 50px 50px; |
| background-size: 50px 50px; |
| background-repeat: repeat; |
| } |
| </style> |
| <body> |
| <h1>This test ensures drawPattern() decodes a new image frame when new encoded data is received.</h1> |
| <div class="box"></div> |
| <script> |
| // The maximum buffering interval for ImageResource is 500ms. Choose stallFor |
| // such that the image buffering is disabled in the network process. |
| function slowLargeImageSourceURL() { |
| return "http://127.0.0.1:8000/resources/load-and-stall.php" |
| + "?name=../../../fast/images/resources/green-400x400.png" |
| + "&mimeType=image%2Fpng" |
| + "&stallAt=512" |
| + "&stallFor=0.6" |
| + "&stallRepeat=True"; |
| } |
| |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| var image = new Image; |
| var box = document.querySelector(".box"); |
| |
| image.src = slowLargeImageSourceURL(); |
| |
| // Disable the CachedImage buffering as well. This has to happen after setting |
| // the src to make sure the Image element has created its CachedImage |
| if (window.internals) |
| internals.setForceUpdateImageDataEnabledForTesting(image, true); |
| |
| box.style.backgroundImage = "url(" + image.src + ")"; |
| |
| var interval = setInterval(function() { |
| if (image.complete) { |
| clearInterval(interval); |
| testRunner.notifyDone(); |
| } |
| else if (window.testRunner) { |
| // Force layout and drawing eveny 100ms. |
| document.body.offsetHeight; |
| testRunner.display(); |
| } |
| }, 100); |
| </script> |
| </body> |