aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/MANIFEST.json6
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html35
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.py9
3 files changed, 50 insertions, 0 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 1a4452832b9..702135d3a47 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -36270,6 +36270,12 @@
"path": "html/browsers/browsing-the-web/navigating-across-documents/empty_fragment.html",
"url": "/html/browsers/browsing-the-web/navigating-across-documents/empty_fragment.html"
}
+ ],
+ "html/semantics/document-metadata/the-link-element/document-without-browsing-context.html": [
+ {
+ "path": "html/semantics/document-metadata/the-link-element/document-without-browsing-context.html",
+ "url": "/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html"
+ }
]
}
},
diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html
new file mode 100644
index 00000000000..127b253f59a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Documents without browsing contexts should not load stylesheets</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script>
+<body>
+<script>
+ function count(id, t) {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', 'stylesheet.py?count=1&id=' + id);
+ xhr.onload = t.step_func_done(function() {
+ assert_equals(xhr.responseText, "1");
+ });
+ xhr.onerror = t.unreached_func();
+ xhr.send();
+ }
+
+ async_test(function(t) {
+ var id = token();
+ var doc = (new DOMParser()).parseFromString('<link rel="stylesheet" href="stylesheet.py?id=' + id + '"></link>', 'text/html');
+ var link = doc.querySelector('link');
+ document.head.appendChild(link);
+ t.step_timeout(function() { count(id, t) }, 500);
+ }, 'Create a document, adopt the node');
+
+ async_test(function(t) {
+ var id = token();
+ var d = document.createElement('div');
+ document.body.appendChild(d);
+ d.innerHTML = '<link rel="stylesheet" href="stylesheet.py?id=' + id + '"></link>';
+ t.step_timeout(function() { count(id, t) }, 500);
+ }, 'Create a stylesheet in innerHTML document');
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.py b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.py
new file mode 100644
index 00000000000..a312e9e87ca
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.py
@@ -0,0 +1,9 @@
+def main(request, response):
+ try:
+ count = int(request.server.stash.take(request.GET["id"]))
+ except:
+ count = 0
+ if "count" in request.GET:
+ return str(count)
+ request.server.stash.put(request.GET["id"], str(count + 1))
+ return 'body { color: red }'