aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2019-10-04 16:51:46 -0400
committerJosh Matthews <josh@joshmatthews.net>2019-10-07 16:44:35 -0400
commit6dd40962ea707dc0e02676fccd9156efa314141d (patch)
tree1648293d670b4c8b15634ddcf860b2ae4c738621
parenta241232c2b72480bc6c6133dae1c66774140a410 (diff)
downloadservo-6dd40962ea707dc0e02676fccd9156efa314141d.tar.gz
servo-6dd40962ea707dc0e02676fccd9156efa314141d.zip
Ensure image cache keys on element CORS status.
-rw-r--r--tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini2
-rw-r--r--tests/wpt/metadata/webdriver/tests/switch_to_frame/cross_origin.py.ini4
-rw-r--r--tests/wpt/metadata/webdriver/tests/take_screenshot/iframe.py.ini4
-rw-r--r--tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html61
4 files changed, 61 insertions, 10 deletions
diff --git a/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini b/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini
index 58b002f42e6..73658e1beeb 100644
--- a/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini
+++ b/tests/wpt/metadata/fetch/security/redirect-to-url-with-credentials.https.html.ini
@@ -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
diff --git a/tests/wpt/metadata/webdriver/tests/switch_to_frame/cross_origin.py.ini b/tests/wpt/metadata/webdriver/tests/switch_to_frame/cross_origin.py.ini
deleted file mode 100644
index 0e1d96dc9e1..00000000000
--- a/tests/wpt/metadata/webdriver/tests/switch_to_frame/cross_origin.py.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[cross_origin.py]
- [test_nested_cross_origin_iframe]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/webdriver/tests/take_screenshot/iframe.py.ini b/tests/wpt/metadata/webdriver/tests/take_screenshot/iframe.py.ini
deleted file mode 100644
index 47a61797028..00000000000
--- a/tests/wpt/metadata/webdriver/tests/take_screenshot/iframe.py.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[iframe.py]
- [test_source_origin[cross_origin\]]
- expected: FAIL
-
diff --git a/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html b/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html
new file mode 100644
index 00000000000..3d57d9f064b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/2dcontext/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html
@@ -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>