mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Ensure image cache keys on element CORS status.
This commit is contained in:
parent
a241232c2b
commit
6dd40962ea
4 changed files with 61 additions and 10 deletions
|
@ -6,7 +6,5 @@
|
|||
[redirect-to-url-with-credentials]
|
||||
expected: FAIL
|
||||
|
||||
[CORS Image loading after a redirect with a cross origin URL containing credentials]
|
||||
expected: FAIL
|
||||
[Frame loading after a redirect with an URL containing credentials]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[cross_origin.py]
|
||||
[test_nested_cross_origin_iframe]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[iframe.py]
|
||||
[test_source_origin[cross_origin\]]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
function draw_and_read_image(img, should_throw) {
|
||||
let c = document.createElement('canvas');
|
||||
document.body.appendChild(c);
|
||||
let ctx = c.getContext('2d');
|
||||
ctx.drawImage(img, 0, 0);
|
||||
|
||||
function get_image_data() {
|
||||
ctx.getImageData(0, 0, 4, 4);
|
||||
}
|
||||
|
||||
if (should_throw) {
|
||||
assert_throws_dom('SecurityError', get_image_data);
|
||||
} else {
|
||||
get_image_data();
|
||||
}
|
||||
|
||||
document.body.removeChild(c);
|
||||
}
|
||||
|
||||
async_test(t => {
|
||||
let img = new Image();
|
||||
img.src = "/images/green.png";
|
||||
img.crossOrigin = "anonymous";
|
||||
img.onload = t.step_func_done(() => {
|
||||
draw_and_read_image(img, false);
|
||||
});
|
||||
img.onerror = t.unreached_func();
|
||||
}, "Can get pixels of canvas with same origin image drawn");
|
||||
|
||||
async_test(t => {
|
||||
let img = new Image();
|
||||
img.src = "http://{{hosts[][www]}}:{{ports[http][0]}}/images/green.png?pipe=header(Access-Control-Allow-Origin,*)";
|
||||
img.crossOrigin = "anonymous";
|
||||
img.onload = t.step_func_done(() => {
|
||||
draw_and_read_image(img, false);
|
||||
});
|
||||
img.onerror = t.unreached_func();
|
||||
}, "Can get pixels of canvas with CORS enabled cross origin image drawn");
|
||||
|
||||
async_test(t => {
|
||||
let img = new Image();
|
||||
img.src = "http://{{hosts[][www]}}:{{ports[http][0]}}/images/green.png?pipe=header(Access-Control-Allow-Origin,*)";
|
||||
img.onload = t.step_func_done(() => {
|
||||
draw_and_read_image(img, true);
|
||||
});
|
||||
img.onerror = t.unreached_func();
|
||||
}, "Can't get pixels of canvas with CORS enabled cross origin image drawn from non-CORS element");
|
||||
|
||||
async_test(t => {
|
||||
let img = new Image();
|
||||
img.src = "http://{{hosts[][www]}}:{{ports[http][0]}}/images/green.png";
|
||||
|
||||
img.onload = t.step_func_done(() => {
|
||||
draw_and_read_image(img, true);
|
||||
});
|
||||
img.onerror = t.unreached_func();
|
||||
}, "Can't get pixels of canvas with non-CORS enabled cross origin image drawn");
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue