|
Line 0
a/LayoutTests/imported/w3c/web-platform-tests/html/dom/elements/images/bypass-cache-revalidation.html_sec1
|
|
|
1 |
<!DOCTYPE html> |
| 2 |
<title>Cached images can bypass revalidation</title> |
| 3 |
<script src="/resources/testharness.js"></script> |
| 4 |
<script src="/resources/testharnessreport.js"></script> |
| 5 |
<script src="/common/utils.js"></script> |
| 6 |
<div id="imageDiv1"></div> |
| 7 |
<div id="imageDiv2"></div> |
| 8 |
<canvas id="canvas"></canvas> |
| 9 |
<script> |
| 10 |
|
| 11 |
function getImagePixel(image) |
| 12 |
{ |
| 13 |
canvas.getContext("2d").drawImage(image, 0, 0, 10, 10); |
| 14 |
return canvas.getContext("2d").getImageData(0, 0, 1, 1).data; |
| 15 |
} |
| 16 |
|
| 17 |
let resolve; |
| 18 |
promise_test(async (t) => { |
| 19 |
const url = "image.py?id=" + token(); |
| 20 |
|
| 21 |
let promise = new Promise(r => resolve = r); |
| 22 |
imageDiv1.innerHTML = `<img src="${url}" onload="resolve()"></img>`; |
| 23 |
await promise; |
| 24 |
|
| 25 |
const url2 = "image.py?id=" + token(); |
| 26 |
promise = new Promise(r => resolve = r); |
| 27 |
imageDiv1.innerHTML = `<img src="${url2}" onload="resolve()"></img>`; |
| 28 |
await promise; |
| 29 |
|
| 30 |
promise = new Promise(r => resolve = r); |
| 31 |
imageDiv2.innerHTML = `<img id="image2" src="${url}" onload="resolve()"></img>`; |
| 32 |
await promise; |
| 33 |
|
| 34 |
assert_array_equals(getImagePixel(image2), [0, 255, 0, 255]); |
| 35 |
}, "Images can bypass no-cache"); |
| 36 |
</script> |
| 37 |
|