--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -303730,17 +303730,17 @@
{}
]
],
"referrer-policy/README.md": [
[
{}
]
],
- "referrer-policy/css-integration/README.md": [
+ "referrer-policy/css-integration/image/README.md": [
[
{}
]
],
"referrer-policy/generic/common.js": [
[
{}
]
@@ -303760,16 +303760,21 @@
{}
]
],
"referrer-policy/generic/subresource/document.py": [
[
{}
]
],
+ "referrer-policy/generic/subresource/font.py": [
+ [
+ {}
+ ]
+ ],
"referrer-policy/generic/subresource/image.py": [
[
{}
]
],
"referrer-policy/generic/subresource/script.py": [
[
{}
@@ -367541,55 +367546,97 @@
]
],
"quirks-mode/unitless-length.html": [
[
"/quirks-mode/unitless-length.html",
{}
]
],
- "referrer-policy/css-integration/external-import-stylesheet.html": [
- [
- "/referrer-policy/css-integration/external-import-stylesheet.html",
- {}
- ]
- ],
- "referrer-policy/css-integration/external-stylesheet.html": [
- [
- "/referrer-policy/css-integration/external-stylesheet.html",
- {}
- ]
- ],
- "referrer-policy/css-integration/inline-style.html": [
- [
- "/referrer-policy/css-integration/inline-style.html",
- {}
- ]
- ],
- "referrer-policy/css-integration/internal-import-stylesheet.html": [
- [
- "/referrer-policy/css-integration/internal-import-stylesheet.html",
- {}
- ]
- ],
- "referrer-policy/css-integration/internal-stylesheet.html": [
- [
- "/referrer-policy/css-integration/internal-stylesheet.html",
- {}
- ]
- ],
- "referrer-policy/css-integration/presentation-attribute.html": [
- [
- "/referrer-policy/css-integration/presentation-attribute.html",
- {}
- ]
- ],
- "referrer-policy/css-integration/processing-instruction.html": [
- [
- "/referrer-policy/css-integration/processing-instruction.html",
+ "referrer-policy/css-integration/child-css/external-import-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/child-css/external-import-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/child-css/internal-import-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/font-face/external-import-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/font-face/external-import-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/font-face/external-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/font-face/external-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/font-face/internal-import-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/font-face/internal-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/font-face/internal-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/font-face/processing-instruction.html": [
+ [
+ "/referrer-policy/css-integration/font-face/processing-instruction.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/external-import-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/image/external-import-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/external-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/image/external-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/inline-style.html": [
+ [
+ "/referrer-policy/css-integration/image/inline-style.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/internal-import-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/image/internal-import-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/internal-stylesheet.html": [
+ [
+ "/referrer-policy/css-integration/image/internal-stylesheet.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/presentation-attribute.html": [
+ [
+ "/referrer-policy/css-integration/image/presentation-attribute.html",
+ {}
+ ]
+ ],
+ "referrer-policy/css-integration/image/processing-instruction.html": [
+ [
+ "/referrer-policy/css-integration/image/processing-instruction.html",
{}
]
],
"referrer-policy/generic/link-rel-prefetch.html": [
[
"/referrer-policy/generic/link-rel-prefetch.html",
{}
]
@@ -615202,45 +615249,73 @@
"referrer-policy/OWNERS": [
"f87103278641394f49c7e36acc9ff1ef60bacb79",
"support"
],
"referrer-policy/README.md": [
"da67e3de754801ef0b51b7be9bebc7170769388c",
"support"
],
- "referrer-policy/css-integration/README.md": [
+ "referrer-policy/css-integration/child-css/external-import-stylesheet.html": [
+ "c53570411919971b4ddf9e64a23eb1732b27d4ba",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [
+ "0ff6050c91056c3f177805d2b8e4c9ec41954e43",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/font-face/external-import-stylesheet.html": [
+ "aa26a76bd6514b40e51602f738e1681bab3dca12",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/font-face/external-stylesheet.html": [
+ "397e5f4d9eeb8706224cb51dc0f1e9e0fe3de827",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [
+ "195b91ab9481a3ce91364f3841cdc5721a33c1fd",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/font-face/internal-stylesheet.html": [
+ "a2a0f7394f2cde686c5a9aa354f7fd7f34ac656c",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/font-face/processing-instruction.html": [
+ "11f4bed7bfdb5a39e9f22c7b2d0261671a90cb3c",
+ "testharness"
+ ],
+ "referrer-policy/css-integration/image/README.md": [
"4723887022f00b8aaff113e8244708c0fe12b716",
"support"
],
- "referrer-policy/css-integration/external-import-stylesheet.html": [
+ "referrer-policy/css-integration/image/external-import-stylesheet.html": [
"d5ee0ef7b717105e7aca8f3f688f1f41cec9bf2e",
"testharness"
],
- "referrer-policy/css-integration/external-stylesheet.html": [
+ "referrer-policy/css-integration/image/external-stylesheet.html": [
"aa8ea066a194f5064d94d6e7c3a0794629fe2a81",
"testharness"
],
- "referrer-policy/css-integration/inline-style.html": [
+ "referrer-policy/css-integration/image/inline-style.html": [
"cf40e253b38d0de5d968ad3b5920f1525ebe8547",
"testharness"
],
- "referrer-policy/css-integration/internal-import-stylesheet.html": [
+ "referrer-policy/css-integration/image/internal-import-stylesheet.html": [
"9cdcc13fbc32bf0b5ed6e6aa9f6b3cd7cc45b694",
"testharness"
],
- "referrer-policy/css-integration/internal-stylesheet.html": [
+ "referrer-policy/css-integration/image/internal-stylesheet.html": [
"af624204d829c4edc4f83654e5909cca606e6e71",
"testharness"
],
- "referrer-policy/css-integration/presentation-attribute.html": [
+ "referrer-policy/css-integration/image/presentation-attribute.html": [
"ee846339f4196a496b90652bbfbdeb13ddab5884",
"testharness"
],
- "referrer-policy/css-integration/processing-instruction.html": [
+ "referrer-policy/css-integration/image/processing-instruction.html": [
"cc6d82ccc48376e75c323711b61f6d013305c655",
"testharness"
],
"referrer-policy/generic/common.js": [
"00233e7d4513c8e3c4b7f7fa60f313ef1b6dbddd",
"support"
],
"referrer-policy/generic/link-rel-prefetch.html": [
@@ -615298,26 +615373,30 @@
"referrer-policy/generic/subresource/__init__.py": [
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"support"
],
"referrer-policy/generic/subresource/document.py": [
"5e6f4ccee23687229e4c98f3b11bc3815933d35b",
"support"
],
+ "referrer-policy/generic/subresource/font.py": [
+ "0ce733d6b24202ee1d48d98b6f3f4eb24f7111ef",
+ "support"
+ ],
"referrer-policy/generic/subresource/image.py": [
"4870d70418b39eeae17073e5895c362c21712424",
"support"
],
"referrer-policy/generic/subresource/script.py": [
"308bbb514ccc8eaa5536d24abd35608777353210",
"support"
],
"referrer-policy/generic/subresource/stylesheet.py": [
- "7b3511a9de867ce8e69a071e5b79049ef4a7c6f9",
+ "8a62be3374426bc4c75a2cf931b69509f37c976f",
"support"
],
"referrer-policy/generic/subresource/subresource.py": [
"0494e90005620bd954bd13547f7f332258f1691f",
"support"
],
"referrer-policy/generic/subresource/worker.py": [
"54769321987cc0b91091d1ca7f26fd28cf35eb97",
@@ -615339,17 +615418,17 @@
"c74911576588343260c74f995e672680628124a1",
"support"
],
"referrer-policy/generic/template/spec_json.js.template": [
"a5e61678d2ee01e1d1852296ea1e49e0d933157c",
"support"
],
"referrer-policy/generic/template/stylesheet.css.template": [
- "ac6de8fc5ec25a3675ae5000493168ab53aab2a9",
+ "f7ce48edb31b1df39371455b33d77e87e45330d2",
"support"
],
"referrer-policy/generic/template/test.debug.html.template": [
"0feaa371c89191064f8aec23b24ddd7dfc4327c2",
"support"
],
"referrer-policy/generic/template/test.js.template": [
"1064796b2cbd682a01d0bba9e96250746afd6ffe",
deleted file mode 100644
--- a/testing/web-platform/meta/referrer-policy/css-integration/external-import-stylesheet.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[external-import-stylesheet.html]
- type: testharness
- [Image from imported stylesheet (external).]
- expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/referrer-policy/css-integration/external-stylesheet.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[external-stylesheet.html]
- type: testharness
- [Image from external stylesheet.]
- expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/referrer-policy/css-integration/internal-import-stylesheet.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[internal-import-stylesheet.html]
- type: testharness
- [Image from imported stylesheet (internal).]
- expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/referrer-policy/css-integration/processing-instruction.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[processing-instruction.html]
- type: testharness
- [Image from external stylesheet (from ProcessingInstruction).]
- expected: FAIL
-
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/child-css/external-import-stylesheet.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Child css from external stylesheet</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="never">
+ </head>
+ <body>
+ <p>Check that child css are loaded with the referrer and referrer policy
+ from the external stylesheet.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Child css from external stylesheet.");
+ var id = token();
+ var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
+ var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&import-rule";
+ var check_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py" +
+ "?id=" + id + "&report-headers";
+
+ var link = document.createElement("link");
+ link.href = css_url;
+ link.rel = "stylesheet";
+ link.onload = function() {
+ css_test.step_timeout(
+ queryXhr.bind(this, check_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, css_url);
+ });
+ css_test.done();
+ }),
+ 1000);
+ };
+ document.head.appendChild(link);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/child-css/internal-import-stylesheet.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Child css from internal stylesheet</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="never">
+ </head>
+ <body>
+ <p>Check that child css are loaded with the referrer and referrer policy
+ from the internal stylesheet.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Child css from internal stylesheet.");
+ var id = token();
+ var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
+ var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&import-rule";
+ var check_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py" +
+ "?id=" + id + "&report-headers";
+
+ var style = document.createElement("style");
+ style.type = 'text/css';
+ style.appendChild(document.createTextNode("@import url('" + css_url + "');"));
+ document.head.appendChild(style);
+ css_test.step_timeout(
+ queryXhr.bind(this, check_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, css_url);
+ });
+ css_test.done();
+ }),
+ 1000);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/font-face/external-import-stylesheet.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Font from imported stylesheet (external)</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="never">
+ </head>
+ <body>
+ <p>Check that resources from imported stylesheets (loaded from external
+ stylesheets) are loaded with the referrer and referrer policy from the
+ external stylesheet.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Font from imported stylesheet (external).");
+ var id = token();
+ var cross_origin_url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
+ var css_url = cross_origin_url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&import-rule";
+ var url_prefix = location.protocol + "//" + location.hostname + ":" + location.port;
+ var css_referrer = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id;
+ var font_url = url_prefix + "/referrer-policy/generic/subresource/font.py" +
+ "?id=" + id + "&report-headers";
+
+ var link = document.createElement("link");
+ link.href = css_url;
+ link.rel = "stylesheet";
+ link.onload = function() {
+ css_test.step_timeout(
+ queryXhr.bind(this, font_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, css_referrer);
+ });
+ css_test.done();
+ }),
+ 1000);
+ };
+ document.head.appendChild(link);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/font-face/external-stylesheet.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Font from external stylesheet</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="never">
+ </head>
+ <body>
+ <p>Check that resources from external stylesheets are loaded with
+ the referrer and referrer policy from the external stylesheet.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Font from external stylesheet.");
+ var id = token();
+ var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
+ var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id;
+ var font_url = url_prefix + "/referrer-policy/generic/subresource/font.py" +
+ "?id=" + id + "&report-headers";
+
+ var link = document.createElement("link");
+ link.href = css_url;
+ link.rel = "stylesheet";
+ link.onload = function() {
+ css_test.step_timeout(
+ queryXhr.bind(this, font_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, css_url);
+ });
+ css_test.done();
+ }),
+ 1000);
+ };
+ document.head.appendChild(link);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/font-face/internal-import-stylesheet.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Font from imported stylesheet (internal)</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="origin">
+ </head>
+ <body>
+ <p>Check that resources from stylesheets (imported from internal
+ stylesheets) are loaded with the referrer and referrer policy from the
+ document.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Font from imported stylesheet (internal).");
+ var id = token();
+ var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/";
+ var css_url = url_prefix + "stylesheet.py?id=" + id;
+ var font_url = url_prefix + "font.py?report-headers&id=" + id;
+
+ var style = document.createElement("style");
+ style.type = 'text/css';
+ style.appendChild(document.createTextNode("@import url('" + css_url + "');"));
+ document.head.appendChild(style);
+ css_test.step_timeout(
+ queryXhr.bind(this, font_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, css_url);
+ });
+ css_test.done();
+ }),
+ 1000);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/font-face/internal-stylesheet.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Font from internal stylesheet</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="origin">
+ </head>
+ <body>
+ <p>Check that resources from internal stylesheets are loaded with
+ the referrer and referrer policy from the document.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Font from internal stylesheet.");
+ var id = token();
+ var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/font.py" + "?id=" + id;
+ var font_url = css_url + "&report-headers";
+
+ var style = document.createElement("style");
+ style.type = 'text/css';
+ style.appendChild(document.createTextNode( "@font-face { font-family: 'wpt'; font-style: normal; font-weight: normal; src: url(" + css_url + "); format('truetype'); } body { font-family: 'wpt';}"));
+ document.head.appendChild(style);
+ css_test.step_timeout(
+ queryXhr.bind(this, font_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, location.origin + "/");
+ });
+ css_test.done();
+ }),
+ 1000);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/css-integration/font-face/processing-instruction.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>CSS integration - Font from external stylesheet inserted via a ProcessingInstruction</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/utils.js"></script>
+ <!-- Common global functions for referrer-policy tests. -->
+ <script src="/referrer-policy/generic/common.js"></script>
+ <meta name="referrer" content="never">
+ </head>
+ <body>
+ <p>Check that resources from external stylesheets (referenced from a
+ ProcessingInstruction) are loaded with the referrer and referrer policy
+ from the external stylesheet.</p>
+
+ <div class="styled"></div>
+
+ <script>
+ var css_test = async_test("Font from external stylesheet (from ProcessingInstruction).");
+ var id = token();
+ var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
+ var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id;
+ var font_url = url_prefix + "/referrer-policy/generic/subresource/font.py" +
+ "?id=" + id + "&report-headers";
+
+ var processingInstruction = document.createProcessingInstruction("xml-stylesheet", "href=\"" + css_url + "\" type=\"text/css\"");
+ css_test.step_timeout(
+ queryXhr.bind(this, font_url,
+ function(message) {
+ css_test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, css_url);
+ });
+ css_test.done();
+ }),
+ 1000);
+ document.insertBefore(processingInstruction, document.firstChild);
+ </script>
+
+ <div id="log"></div>
+ </body>
+</html>
rename from testing/web-platform/tests/referrer-policy/css-integration/README.md
rename to testing/web-platform/tests/referrer-policy/css-integration/image/README.md
rename from testing/web-platform/tests/referrer-policy/css-integration/external-import-stylesheet.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/external-import-stylesheet.html
rename from testing/web-platform/tests/referrer-policy/css-integration/external-stylesheet.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/external-stylesheet.html
rename from testing/web-platform/tests/referrer-policy/css-integration/inline-style.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/inline-style.html
rename from testing/web-platform/tests/referrer-policy/css-integration/internal-import-stylesheet.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/internal-import-stylesheet.html
rename from testing/web-platform/tests/referrer-policy/css-integration/internal-stylesheet.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/internal-stylesheet.html
rename from testing/web-platform/tests/referrer-policy/css-integration/presentation-attribute.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/presentation-attribute.html
rename from testing/web-platform/tests/referrer-policy/css-integration/processing-instruction.html
rename to testing/web-platform/tests/referrer-policy/css-integration/image/processing-instruction.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/referrer-policy/generic/subresource/font.py
@@ -0,0 +1,71 @@
+import os, sys, json, base64
+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
+import subresource
+
+def generate_payload(request, server_data):
+ data = ('{"headers": %(headers)s}') % server_data
+ if "id" in request.GET:
+ request.server.stash.put(request.GET["id"], data)
+ return base64.decodestring("AAEAAAANAIAAAwBQRkZUTU6u6MkAAAXcAAAAHE9TLzJWYW"
+ "QKAAABWAAAAFZjbWFwAA8D7wAAAcAAAAFCY3Z0IAAhAnkA"
+ "AAMEAAAABGdhc3D//wADAAAF1AAAAAhnbHlmCC6aTwAAAx"
+ "QAAACMaGVhZO8ooBcAAADcAAAANmhoZWEIkAV9AAABFAAA"
+ "ACRobXR4EZQAhQAAAbAAAAAQbG9jYQBwAFQAAAMIAAAACm"
+ "1heHAASQA9AAABOAAAACBuYW1lehAVOgAAA6AAAAIHcG9z"
+ "dP+uADUAAAWoAAAAKgABAAAAAQAAMhPyuV8PPPUACwPoAA"
+ "AAAMU4Lm0AAAAAxTgubQAh/5wFeAK8AAAACAACAAAAAAAA"
+ "AAEAAAK8/5wAWgXcAAAAAAV4AAEAAAAAAAAAAAAAAAAAAA"
+ "AEAAEAAAAEAAwAAwAAAAAAAgAAAAEAAQAAAEAALgAAAAAA"
+ "AQXcAfQABQAAAooCvAAAAIwCigK8AAAB4AAxAQIAAAIABg"
+ "kAAAAAAAAAAAABAAAAAAAAAAAAAAAAUGZFZABAAEEAQQMg"
+ "/zgAWgK8AGQAAAABAAAAAAAABdwAIQAAAAAF3AAABdwAZA"
+ "AAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAA"
+ "BAAEAAEAAABB//8AAABB////wgABAAAAAAAAAQYAAAEAAA"
+ "AAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+ "AAAAAAAAAAAAAAAAAAAhAnkAAAAqACoAKgBGAAAAAgAhAA"
+ "ABKgKaAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCx"
+ "AwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIREnMxEjIQEJ6M"
+ "fHApr9ZiECWAAAAwBk/5wFeAK8AAMABwALAAABNSEVATUh"
+ "FQE1IRUB9AH0/UQDhPu0BRQB9MjI/tTIyP7UyMgAAAAAAA"
+ "4ArgABAAAAAAAAACYATgABAAAAAAABAAUAgQABAAAAAAAC"
+ "AAYAlQABAAAAAAADACEA4AABAAAAAAAEAAUBDgABAAAAAA"
+ "AFABABNgABAAAAAAAGAAUBUwADAAEECQAAAEwAAAADAAEE"
+ "CQABAAoAdQADAAEECQACAAwAhwADAAEECQADAEIAnAADAA"
+ "EECQAEAAoBAgADAAEECQAFACABFAADAAEECQAGAAoBRwBD"
+ "AG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADAAOA"
+ "AgAE0AbwB6AGkAbABsAGEAIABDAG8AcgBwAG8AcgBhAHQA"
+ "aQBvAG4AAENvcHlyaWdodCAoYykgMjAwOCBNb3ppbGxhIE"
+ "NvcnBvcmF0aW9uAABNAGEAcgBrAEEAAE1hcmtBAABNAGUA"
+ "ZABpAHUAbQAATWVkaXVtAABGAG8AbgB0AEYAbwByAGcAZQ"
+ "AgADIALgAwACAAOgAgAE0AYQByAGsAQQAgADoAIAA1AC0A"
+ "MQAxAC0AMgAwADAAOAAARm9udEZvcmdlIDIuMCA6IE1hcm"
+ "tBIDogNS0xMS0yMDA4AABNAGEAcgBrAEEAAE1hcmtBAABW"
+ "AGUAcgBzAGkAbwBuACAAMAAwADEALgAwADAAMAAgAABWZX"
+ "JzaW9uIDAwMS4wMDAgAABNAGEAcgBrAEEAAE1hcmtBAAAA"
+ "AgAAAAAAAP+DADIAAAABAAAAAAAAAAAAAAAAAAAAAAAEAA"
+ "AAAQACACQAAAAAAAH//wACAAAAAQAAAADEPovuAAAAAMU4"
+ "Lm0AAAAAxTgubQ==");
+
+def generate_report_headers_payload(request, server_data):
+ stashed_data = request.server.stash.take(request.GET["id"])
+ return stashed_data
+
+def main(request, response):
+ handler = lambda data: generate_payload(request, data)
+ content_type = 'application/x-font-truetype; charset=utf-8'
+
+ if "report-headers" in request.GET:
+ handler = lambda data: generate_report_headers_payload(request, data)
+ content_type = 'application/json'
+
+ subresource.respond(request,
+ response,
+ payload_generator = handler,
+ content_type = content_type,
+ access_control_allow_origin = "*")
--- a/testing/web-platform/tests/referrer-policy/generic/subresource/stylesheet.py
+++ b/testing/web-platform/tests/referrer-policy/generic/subresource/stylesheet.py
@@ -1,26 +1,38 @@
import os, sys, json
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import subresource
def generate_payload(request, server_data):
+ data = ('{"headers": %(headers)s}') % server_data
+ if "id" in request.GET:
+ request.server.stash.put(request.GET["id"], data)
return subresource.get_template("stylesheet.css.template") % {"id": request.GET["id"]}
def generate_import_rule(request, server_data):
data = "@import url('%(url)s?id=%(id)s');" % {
"id": request.GET["id"],
"url": subresource.create_redirect_url(request, cross_origin = True)
}
return data
+def generate_report_headers_payload(request, server_data):
+ stashed_data = request.server.stash.take(request.GET["id"])
+ return stashed_data
+
def main(request, response):
payload_generator = lambda data: generate_payload(request, data)
+ content_type = "text/css",
if "import-rule" in request.GET:
payload_generator = lambda data: generate_import_rule(request, data)
+ if "report-headers" in request.GET:
+ payload_generator = lambda data: generate_report_headers_payload(request, data)
+ content_type = 'application/json'
+
subresource.respond(
request,
response,
payload_generator = payload_generator,
- content_type = "text/css",
+ content_type = content_type,
maybe_additional_headers = { "Referrer-Policy": "unsafe-url" })
--- a/testing/web-platform/tests/referrer-policy/generic/template/stylesheet.css.template
+++ b/testing/web-platform/tests/referrer-policy/generic/template/stylesheet.css.template
@@ -1,3 +1,14 @@
div.styled::before {
content:url(/referrer-policy/generic/subresource/image.py?id=%(id)s)
}
+
+@font-face {
+ font-family: 'wpt';
+ font-style: normal;
+ font-weight: normal;
+ src: url(/referrer-policy/generic/subresource/font.py?id=%(id)s) format('truetype');
+}
+
+body {
+ font-family: 'wpt' ;
+}