diff options
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 }' |