diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 0af076950b3..0b84bc38501 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -194,6 +194,10 @@ impl VirtualMethods for HTMLLinkElement { impl HTMLLinkElement { fn handle_stylesheet_url(&self, href: &str) { let document = document_from_node(self); + if document.browsing_context().is_none() { + return; + } + match document.base_url().join(href) { Ok(url) => { let element = self.upcast::(); 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 @@ + + +Documents without browsing contexts should not load stylesheets + + + + + + 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 }'