From d1433969343c2fe31f6449a997fd3e196b04f4a4 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 2 May 2017 14:09:44 -0400 Subject: [PATCH] Add same-origin redirect variants to 2d canvas security tests. --- tests/wpt/metadata/MANIFEST.json | 186 ++++++++++++++---- ...ecurity.drawImage.canvas.redirect.html.ini | 5 + ...security.drawImage.image.redirect.html.ini | 5 + ...pattern.canvas.fillStyle.redirect.html.ini | 5 + ...ttern.canvas.strokeStyle.redirect.html.ini | 5 + ...ty.pattern.canvas.timing.redirect.html.ini | 5 + .../security.pattern.create.redirect.html.ini | 5 + .../security.pattern.cross.redirect.html.ini | 5 + ....pattern.image.fillStyle.redirect.html.ini | 5 + ...attern.image.strokeStyle.redirect.html.ini | 5 + .../security.reset.redirect.html.ini | 5 + .../quirks-mode/unitless-length.html.ini | 1 + .../2dcontext/tools/gentestutils.py | 67 ++++--- .../2dcontext/tools/tests.yaml | 40 +++- .../web-platform-tests/common/canvas-tests.js | 11 +- ...l => security.drawImage.canvas.cross.html} | 4 +- .../security.drawImage.canvas.redirect.html | 36 ++++ ...ml => security.drawImage.image.cross.html} | 4 +- .../security.drawImage.image.redirect.html | 31 +++ ...urity.pattern.canvas.fillStyle.cross.html} | 4 +- ...ity.pattern.canvas.fillStyle.redirect.html | 38 ++++ ...ity.pattern.canvas.strokeStyle.cross.html} | 4 +- ...y.pattern.canvas.strokeStyle.redirect.html | 38 ++++ ...security.pattern.canvas.timing.cross.html} | 4 +- ...curity.pattern.canvas.timing.redirect.html | 41 ++++ ...tml => security.pattern.create.cross.html} | 4 +- .../security.pattern.create.redirect.html | 32 +++ ...html => security.pattern.cross.cross.html} | 4 +- .../security.pattern.cross.redirect.html | 39 ++++ ...curity.pattern.image.fillStyle.cross.html} | 4 +- ...rity.pattern.image.fillStyle.redirect.html | 33 ++++ ...rity.pattern.image.strokeStyle.cross.html} | 4 +- ...ty.pattern.image.strokeStyle.redirect.html | 33 ++++ ...y.reset.html => security.reset.cross.html} | 4 +- .../security.reset.redirect.html | 33 ++++ 35 files changed, 647 insertions(+), 102 deletions(-) create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html.ini create mode 100644 tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html.ini rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.drawImage.canvas.html => security.drawImage.canvas.cross.html} (92%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.drawImage.image.html => security.drawImage.image.cross.html} (91%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.canvas.fillStyle.html => security.pattern.canvas.fillStyle.cross.html} (91%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.canvas.strokeStyle.html => security.pattern.canvas.strokeStyle.cross.html} (91%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.canvas.timing.html => security.pattern.canvas.timing.cross.html} (92%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.create.html => security.pattern.create.cross.html} (91%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.cross.html => security.pattern.cross.cross.html} (93%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.image.fillStyle.html => security.pattern.image.fillStyle.cross.html} (91%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.pattern.image.strokeStyle.html => security.pattern.image.strokeStyle.cross.html} (90%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html rename tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/{security.reset.html => security.reset.cross.html} (93%) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 90d74745236..4a20b886052 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -330908,63 +330908,123 @@ {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.html": [ + "html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.html", + "/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.drawImage.image.html": [ + "html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.html", + "/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.html": [ + "html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.html", + "/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.html": [ + "html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.html", + "/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.html": [ + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.html", + "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.create.html": [ + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.create.html", + "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.cross.html": [ + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.html", + "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.html": [ + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.html", + "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.html": [ + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.html", + "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html", {} ] ], - "html/semantics/embedded-content/the-canvas-element/security.reset.html": [ + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html": [ [ - "/html/semantics/embedded-content/the-canvas-element/security.reset.html", + "/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.reset.cross.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html", + {} + ] + ], + "html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html": [ + [ + "/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html", {} ] ], @@ -393336,7 +393396,7 @@ "support" ], "2dcontext/tools/gentestutils.py": [ - "61b25e0406addab477dc133edf87f25052be8a63", + "f613a789c0e231a3600070583661ba3b1842fed3", "support" ], "2dcontext/tools/name2dir.yaml": [ @@ -393356,7 +393416,7 @@ "support" ], "2dcontext/tools/tests.yaml": [ - "8d5dfd4ca705fa4051b2fd0e6d12bd963a2a2330", + "ce69d48960f561a0bf43b7346d7e387e2ac9e110", "support" ], "2dcontext/tools/tests2d.yaml": [ @@ -399484,7 +399544,7 @@ "support" ], "common/canvas-tests.js": [ - "0a9ce65afa17e2bad946a70addcb67c6cce1fab7", + "2db347399bee84e76c01a15ca5c0c3006fcd4d4e", "support" ], "common/css-red.txt": [ @@ -570147,44 +570207,84 @@ "4a8ff94a4be33132d36c1e23bcf3123dc332c396", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.html": [ - "704c0a0a53fd73f462793a0de45c7baa8e43c2ad", + "html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html": [ + "c74e8ac5a19e8eba7a225dde2fdee84f88e3c00e", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.drawImage.image.html": [ - "66ea384fc03388a35f9fd619cf4d6223527dab2a", + "html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html": [ + "51494c44452d5d0830dda02b8e60baea0e51d49f", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.html": [ - "b110461dd4d72abe0faea76aaacc1604a1ae3612", + "html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html": [ + "2941763c01f9cdf660ec746f51cde40b268300fe", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.html": [ - "3c1daa53672ceee8964b6bcf9a741450e6514e3f", + "html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html": [ + "5cc004d27ac599e0f542aec575233aacd19f6526", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.html": [ - "64e1d6fee88b357e8a621d68f1fbeb6dc404b62c", + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html": [ + "6f4230968c1d5f12b3157e969f6ecdcd1d5a923c", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.create.html": [ - "a9b37d599524fa6f5f4ff22e126af70b8e3dde9a", + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html": [ + "538c30f0de6c2c1952853576d00fd1fc19bd0dde", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.cross.html": [ - "ecbf5c329ac07304c438948b855e2e11818181c4", + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html": [ + "526e41303f134c9cb0e862a4876dec2e363a1320", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.html": [ - "03b07eba1e0df53e337eb3cbdf4eccc6425c1694", + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html": [ + "a8fb8cdd1387bc67eeec3687334b303f92f91a4d", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.html": [ - "886f2b3fd151a266e8a39f09056964e117933f46", + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html": [ + "536556689e037e136d0bd3d08dacdf087ffdf609", "testharness" ], - "html/semantics/embedded-content/the-canvas-element/security.reset.html": [ - "2f7d1915e4c1fd69992a76ad126645fc9d8726d5", + "html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html": [ + "d90f3b399affa6d795b4f7f38643dae6ba1ea3a7", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html": [ + "f5d020386b0d6707b20b585912cf4a98fd86986a", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html": [ + "1d4e6e8090169ed602ba7bb71f811562cdf0a528", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html": [ + "1bb8f33901b78142c66e3e1b989b395101488457", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html": [ + "4bf890d4778b37977b7280e42f5c004a877a18a6", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html": [ + "8630fe5572973ec38bea623acc35ecb79e9f5e76", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html": [ + "05ea5c77fefdae06cb964cc2f6cfef9582418737", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html": [ + "65390fb4f54f6359c2c6ca1e58a1423485beb689", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html": [ + "d7c4bac59fb35405582c7a008f0e71c20805da86", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.reset.cross.html": [ + "1b844c83c588d722d3b0ef3247d76aaacddfbe9a", + "testharness" + ], + "html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html": [ + "93e50cbaf157c2639f62662801dc1df4b983bde9", "testharness" ], "html/semantics/embedded-content/the-canvas-element/size.attributes.default.html": [ diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html.ini new file mode 100644 index 00000000000..b2b00f6801d --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html.ini @@ -0,0 +1,5 @@ +[security.drawImage.canvas.redirect.html] + type: testharness + [drawImage of unclean canvas makes the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html.ini new file mode 100644 index 00000000000..65a70479323 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html.ini @@ -0,0 +1,5 @@ +[security.drawImage.image.redirect.html] + type: testharness + [drawImage of different-origin image makes the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html.ini new file mode 100644 index 00000000000..12ca9a579a9 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.canvas.fillStyle.redirect.html] + type: testharness + [Setting fillStyle to a pattern of an unclean canvas makes the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html.ini new file mode 100644 index 00000000000..5e139d2b9c8 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.canvas.strokeStyle.redirect.html] + type: testharness + [Setting strokeStyle to a pattern of an unclean canvas makes the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html.ini new file mode 100644 index 00000000000..0a85486c6a3 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.canvas.timing.redirect.html] + type: testharness + [Pattern safety depends on whether the source was origin-clean, not on whether it still is clean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html.ini new file mode 100644 index 00000000000..5ad342fe0a0 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.create.redirect.html] + type: testharness + [Creating an unclean pattern does not make the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html.ini new file mode 100644 index 00000000000..0fc3910276c --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.cross.redirect.html] + type: testharness + [Using an unclean pattern makes the target canvas origin-unclean, not the pattern canvas] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html.ini new file mode 100644 index 00000000000..51192c8c09c --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.image.fillStyle.redirect.html] + type: testharness + [Setting fillStyle to a pattern of a different-origin image makes the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html.ini new file mode 100644 index 00000000000..d64cf011f63 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html.ini @@ -0,0 +1,5 @@ +[security.pattern.image.strokeStyle.redirect.html] + type: testharness + [Setting strokeStyle to a pattern of a different-origin image makes the canvas origin-unclean] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html.ini new file mode 100644 index 00000000000..749f89f2b41 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html.ini @@ -0,0 +1,5 @@ +[security.reset.redirect.html] + type: testharness + [Resetting the canvas state does not reset the origin-clean flag] + expected: FAIL + diff --git a/tests/wpt/metadata/quirks-mode/unitless-length.html.ini b/tests/wpt/metadata/quirks-mode/unitless-length.html.ini index 307046ccfdf..397e9e6f410 100644 --- a/tests/wpt/metadata/quirks-mode/unitless-length.html.ini +++ b/tests/wpt/metadata/quirks-mode/unitless-length.html.ini @@ -1127,3 +1127,4 @@ [top: calc(2 * 2px) (standards)] expected: if os == "mac": FAIL + diff --git a/tests/wpt/web-platform-tests/2dcontext/tools/gentestutils.py b/tests/wpt/web-platform-tests/2dcontext/tools/gentestutils.py index fb7bf18d234..030cd8e766d 100644 --- a/tests/wpt/web-platform-tests/2dcontext/tools/gentestutils.py +++ b/tests/wpt/web-platform-tests/2dcontext/tools/gentestutils.py @@ -450,6 +450,11 @@ def genTestUtils(TESTOUTPUTDIR, IMAGEOUTPUTDIR, TEMPLATEFILE, NAME2DIRFILE, ISOF for s in test.get('scripts', []): scripts += '\n' % (s) + variants = test.get('script-variants', {}) + script_variants = [(v, '\n' % (s)) for (v, s) in variants.iteritems()] + if not script_variants: + script_variants = [('', '')] + images = '' for i in test.get('images', []): id = i.split('/')[-1] @@ -474,38 +479,44 @@ def genTestUtils(TESTOUTPUTDIR, IMAGEOUTPUTDIR, TEMPLATEFILE, NAME2DIRFILE, ISOF desc = test.get('desc', '') escaped_desc = simpleEscapeJS(desc) - template_params = { - 'name':name, 'name_wrapped':name_wrapped, 'backrefs':backref_html(name), - 'mapped_name':mapped_name, - 'desc':desc, 'escaped_desc':escaped_desc, - 'prev':prev, 'next':next, 'refs':refs, 'notes':notes, 'images':images, - 'fonts':fonts, 'fonthack':fonthack, - 'canvas':canvas, 'expected':expectation_html, 'code':code, 'scripts':scripts, - 'mochi_name':mochi_name, 'mochi_desc':mochi_desc, 'mochi_code':mochi_code, - 'mochi_setup':mochi_setup, 'mochi_footer':mochi_footer, 'mochi_images':mochi_images, - 'fallback':fallback - } - if W3CMODE: - f = codecs.open('%s/%s.html' % (TESTOUTPUTDIR, mapped_name), 'w', 'utf-8') - f.write(templates['w3c'] % template_params) - if ISOFFSCREENCANVAS: - f = codecs.open('%s/%s.worker.js' % (TESTOUTPUTDIR, mapped_name), 'w', 'utf-8') - f.write(templates['w3cworker'] % template_params) - else: - f = codecs.open('%s/%s.html' % (TESTOUTPUTDIR, name), 'w', 'utf-8') - f.write(templates['standalone'] % template_params) + for (variant, extra_script) in script_variants: + name_variant = '' if not variant else '.' + variant - f = codecs.open('%s/framed.%s.html' % (TESTOUTPUTDIR, name), 'w', 'utf-8') - f.write(templates['framed'] % template_params) + template_params = { + 'name':name + name_variant, + 'name_wrapped':name_wrapped, 'backrefs':backref_html(name), + 'mapped_name':mapped_name, + 'desc':desc, 'escaped_desc':escaped_desc, + 'prev':prev, 'next':next, 'refs':refs, 'notes':notes, 'images':images, + 'fonts':fonts, 'fonthack':fonthack, + 'canvas':canvas, 'expected':expectation_html, 'code':code, + 'scripts':scripts + extra_script, + 'mochi_name':mochi_name, 'mochi_desc':mochi_desc, 'mochi_code':mochi_code, + 'mochi_setup':mochi_setup, 'mochi_footer':mochi_footer, 'mochi_images':mochi_images, + 'fallback':fallback + } - f = codecs.open('%s/minimal.%s.html' % (TESTOUTPUTDIR, name), 'w', 'utf-8') - f.write(templates['minimal'] % template_params) + if W3CMODE: + f = codecs.open('%s/%s%s.html' % (TESTOUTPUTDIR, mapped_name, name_variant), 'w', 'utf-8') + f.write(templates['w3c'] % template_params) + if ISOFFSCREENCANVAS: + f = codecs.open('%s/%s%s.worker.js' % (TESTOUTPUTDIR, mapped_name, name_variant), 'w', 'utf-8') + f.write(templates['w3cworker'] % template_params) + else: + f = codecs.open('%s/%s%s.html' % (TESTOUTPUTDIR, name, name_variant), 'w', 'utf-8') + f.write(templates['standalone'] % template_params) - if mochitest: - mochitests.append(name) - f = codecs.open('%s/mochitests/test_%s.html' % (MISCOUTPUTDIR, name), 'w', 'utf-8') - f.write(templates['mochitest'] % template_params) + f = codecs.open('%s/framed.%s%s.html' % (TESTOUTPUTDIR, name, name_variant), 'w', 'utf-8') + f.write(templates['framed'] % template_params) + + f = codecs.open('%s/minimal.%s%s.html' % (TESTOUTPUTDIR, name, name_variant), 'w', 'utf-8') + f.write(templates['minimal'] % template_params) + + if mochitest: + mochitests.append(name) + f = codecs.open('%s/mochitests/test_%s%s.html' % (MISCOUTPUTDIR, name, name_variant), 'w', 'utf-8') + f.write(templates['mochitest'] % template_params) def write_mochitest_makefile(): f = open('%s/mochitests/Makefile.in' % MISCOUTPUTDIR, 'w') diff --git a/tests/wpt/web-platform-tests/2dcontext/tools/tests.yaml b/tests/wpt/web-platform-tests/2dcontext/tools/tests.yaml index 30ce655161d..955640392ec 100644 --- a/tests/wpt/web-platform-tests/2dcontext/tools/tests.yaml +++ b/tests/wpt/web-platform-tests/2dcontext/tools/tests.yaml @@ -864,7 +864,9 @@ - security.getImageData scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | ctx.drawImage(document.getElementById('yellow.png'), 0, 0); @assert throws SECURITY_ERR canvas.toDataURL(); @@ -877,7 +879,9 @@ - security.drawImage.canvas scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var canvas2 = document.createElement('canvas'); canvas2.width = 100; @@ -895,7 +899,9 @@ - security.start scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var p = ctx.createPattern(document.getElementById('yellow.png'), 'repeat'); canvas.toDataURL(); @@ -909,7 +915,9 @@ - security.start scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var canvas2 = document.createElement('canvas'); canvas2.width = 100; @@ -932,7 +940,9 @@ - security.fillStyle.canvas scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var canvas2 = document.createElement('canvas'); canvas2.width = 100; @@ -955,7 +965,9 @@ - security.fillStyle.image scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var p = ctx.createPattern(document.getElementById('yellow.png'), 'repeat'); ctx.fillStyle = p; @@ -970,7 +982,9 @@ - security.fillStyle.canvas scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var canvas2 = document.createElement('canvas'); canvas2.width = 100; @@ -990,7 +1004,9 @@ - security.strokeStyle.image scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var p = ctx.createPattern(document.getElementById('yellow.png'), 'repeat'); ctx.strokeStyle = p; @@ -1005,7 +1021,9 @@ - security.strokeStyle.canvas scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | var canvas2 = document.createElement('canvas'); canvas2.width = 100; @@ -1045,7 +1063,9 @@ - initial.reset scripts: - /common/get-host-info.sub.js - - data:text/javascript,addCrossOriginYellowImage() + script-variants: + cross: data:text/javascript,addCrossOriginYellowImage() + redirect: data:text/javascript,addCrossOriginRedirectYellowImage() code: | canvas.width = 50; ctx.drawImage(document.getElementById('yellow.png'), 0, 0); diff --git a/tests/wpt/web-platform-tests/common/canvas-tests.js b/tests/wpt/web-platform-tests/common/canvas-tests.js index 4d9ac7bf3cc..b41ba339e79 100644 --- a/tests/wpt/web-platform-tests/common/canvas-tests.js +++ b/tests/wpt/web-platform-tests/common/canvas-tests.js @@ -92,4 +92,13 @@ function addCrossOriginYellowImage() img.className = "resource"; img.src = get_host_info().HTTP_REMOTE_ORIGIN + "/images/yellow.png"; document.body.appendChild(img); -} \ No newline at end of file +} + +function addCrossOriginRedirectYellowImage() +{ + var img = new Image(); + img.id = "yellow.png"; + img.className = "resource"; + img.src = get_host_info().HTTP_ORIGIN + "/common/redirect.py?location=" + + get_host_info().HTTP_REMOTE_ORIGIN + "/images/yellow.png"; +} diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html similarity index 92% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html index 918bf8f8ff3..ab9bc9f3b51 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.drawImage.canvas +Canvas test: security.drawImage.canvas.cross -

security.drawImage.canvas

+

security.drawImage.canvas.cross

drawImage of unclean canvas makes the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html new file mode 100644 index 00000000000..114b78c56b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html @@ -0,0 +1,36 @@ + + +Canvas test: security.drawImage.canvas.redirect + + + + + + +

security.drawImage.canvas.redirect

+

drawImage of unclean canvas makes the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html similarity index 91% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html index 48f808aa652..99789f8649a 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.drawImage.image +Canvas test: security.drawImage.image.cross -

security.drawImage.image

+

security.drawImage.image.cross

drawImage of different-origin image makes the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html new file mode 100644 index 00000000000..29f33d8abce --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html @@ -0,0 +1,31 @@ + + +Canvas test: security.drawImage.image.redirect + + + + + + +

security.drawImage.image.redirect

+

drawImage of different-origin image makes the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html similarity index 91% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html index 2997ef9bbb3..aaa541a4f10 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.canvas.fillStyle +Canvas test: security.pattern.canvas.fillStyle.cross -

security.pattern.canvas.fillStyle

+

security.pattern.canvas.fillStyle.cross

Setting fillStyle to a pattern of an unclean canvas makes the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html new file mode 100644 index 00000000000..2d1b73eaa4f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html @@ -0,0 +1,38 @@ + + +Canvas test: security.pattern.canvas.fillStyle.redirect + + + + + + +

security.pattern.canvas.fillStyle.redirect

+

Setting fillStyle to a pattern of an unclean canvas makes the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html similarity index 91% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html index 8980d2d5393..114799023fa 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.canvas.strokeStyle +Canvas test: security.pattern.canvas.strokeStyle.cross -

security.pattern.canvas.strokeStyle

+

security.pattern.canvas.strokeStyle.cross

Setting strokeStyle to a pattern of an unclean canvas makes the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html new file mode 100644 index 00000000000..eb919329bc1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html @@ -0,0 +1,38 @@ + + +Canvas test: security.pattern.canvas.strokeStyle.redirect + + + + + + +

security.pattern.canvas.strokeStyle.redirect

+

Setting strokeStyle to a pattern of an unclean canvas makes the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html similarity index 92% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html index bb5fd58e6a0..338fdceae24 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.canvas.timing +Canvas test: security.pattern.canvas.timing.cross -

security.pattern.canvas.timing

+

security.pattern.canvas.timing.cross

Pattern safety depends on whether the source was origin-clean, not on whether it still is clean

Disagrees with spec on "is" vs "was" diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html new file mode 100644 index 00000000000..806c48518fc --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html @@ -0,0 +1,41 @@ + + +Canvas test: security.pattern.canvas.timing.redirect + + + + + + +

security.pattern.canvas.timing.redirect

+

Pattern safety depends on whether the source was origin-clean, not on whether it still is clean

+ +

Disagrees with spec on "is" vs "was" +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html similarity index 91% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html index b81c6dfa51a..f686036879f 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.create +Canvas test: security.pattern.create.cross -

security.pattern.create

+

security.pattern.create.cross

Creating an unclean pattern does not make the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html new file mode 100644 index 00000000000..2993d07022c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html @@ -0,0 +1,32 @@ + + +Canvas test: security.pattern.create.redirect + + + + + + +

security.pattern.create.redirect

+

Creating an unclean pattern does not make the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html similarity index 93% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html index 67e40bdaac9..16995eb5590 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.cross +Canvas test: security.pattern.cross.cross -

security.pattern.cross

+

security.pattern.cross.cross

Using an unclean pattern makes the target canvas origin-unclean, not the pattern canvas

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html new file mode 100644 index 00000000000..a65ffb58aad --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html @@ -0,0 +1,39 @@ + + +Canvas test: security.pattern.cross.redirect + + + + + + +

security.pattern.cross.redirect

+

Using an unclean pattern makes the target canvas origin-unclean, not the pattern canvas

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html similarity index 91% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html index 758c30a1201..cdba44b666c 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.image.fillStyle +Canvas test: security.pattern.image.fillStyle.cross -

security.pattern.image.fillStyle

+

security.pattern.image.fillStyle.cross

Setting fillStyle to a pattern of a different-origin image makes the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html new file mode 100644 index 00000000000..3f0bbf62609 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html @@ -0,0 +1,33 @@ + + +Canvas test: security.pattern.image.fillStyle.redirect + + + + + + +

security.pattern.image.fillStyle.redirect

+

Setting fillStyle to a pattern of a different-origin image makes the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html similarity index 90% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html index 771523973e1..51ab8d74b9e 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.pattern.image.strokeStyle +Canvas test: security.pattern.image.strokeStyle.cross -

security.pattern.image.strokeStyle

+

security.pattern.image.strokeStyle.cross

Setting strokeStyle to a pattern of a different-origin image makes the canvas origin-unclean

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html new file mode 100644 index 00000000000..70a0267eb14 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html @@ -0,0 +1,33 @@ + + +Canvas test: security.pattern.image.strokeStyle.redirect + + + + + + +

security.pattern.image.strokeStyle.redirect

+

Setting strokeStyle to a pattern of a different-origin image makes the canvas origin-unclean

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html similarity index 93% rename from tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.html rename to tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html index 28e65f90e57..617c3404b6b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html @@ -1,13 +1,13 @@ -Canvas test: security.reset +Canvas test: security.reset.cross -

security.reset

+

security.reset.cross

Resetting the canvas state does not reset the origin-clean flag

diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html new file mode 100644 index 00000000000..75b42d90954 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html @@ -0,0 +1,33 @@ + + +Canvas test: security.reset.redirect + + + + + + +

security.reset.redirect

+

Resetting the canvas state does not reset the origin-clean flag

+ + +

Actual output:

+

FAIL (fallback content)

+ + + + + +