57 lines
2.2 KiB
HTML
57 lines
2.2 KiB
HTML
<style>
|
|
div {
|
|
width: 100px;
|
|
height: 100px;
|
|
}
|
|
img {
|
|
max-width: 100%;
|
|
max-height: 100%;
|
|
}
|
|
</style>
|
|
<body>
|
|
<p>This tests calling decode() for a static image which is also an element in the DOM tree.</p>
|
|
<div></div>
|
|
<script>
|
|
if (window.internals && window.testRunner) {
|
|
internals.clearMemoryCache();
|
|
internals.settings.setWebkitImageReadyEventEnabled(true);
|
|
internals.settings.setLargeImageAsyncDecodingEnabled(true);
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
var image = new Image;
|
|
var parent = document.querySelector("div");
|
|
parent.appendChild(image);
|
|
|
|
image.onload = (() => {
|
|
if (window.internals && window.testRunner) {
|
|
// Force async image decoding for this image.
|
|
internals.setLargeImageAsyncDecodingEnabledForTesting(image, true);
|
|
|
|
// Force layout and display so the image gets drawn.
|
|
document.body.offsetHeight;
|
|
testRunner.display();
|
|
|
|
// testRunner.display() requests an async image decoding. Wait till it finishes.
|
|
image.addEventListener("webkitImageFrameReady", function() {
|
|
// Execute this code in the next loop run.
|
|
setTimeout(function() {
|
|
testRunner.display();
|
|
// The image frame was decoded for the renderer which is (100x100). This
|
|
// decode() will request a new decoding with the native size which is (400x400).
|
|
image.decode().then(() => {
|
|
parent.style.width = "200px";
|
|
parent.style.height = "200px";
|
|
// No extra decoding is required to display the image after changing its size.
|
|
// The image frame was decoded with the native size which is the maximum size
|
|
// that an image can be decoded with.
|
|
testRunner.notifyDone();
|
|
});
|
|
}, 0);
|
|
});
|
|
}
|
|
});
|
|
image.src = "resources/green-400x400.png";
|
|
</script>
|
|
</body>
|