diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index 759ea87966c3..b6502f032042 100644
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -6718,6 +6718,16 @@ nsresult nsContentUtils::GetWebExposedOriginSerialization(nsIURI* aURI,
return NS_OK;
}
+ if (
+ // Schemes in spec. https://url.spec.whatwg.org/#origin
+ !uri->SchemeIs("http") && !uri->SchemeIs("https") &&
+ !uri->SchemeIs("file") && !uri->SchemeIs("resource") &&
+ // Our own schemes.
+ !uri->SchemeIs("moz-extension")) {
+ aOrigin.AssignLiteral("null");
+ return NS_OK;
+ }
+
return GetWebExposedOriginSerialization(uri, aOrigin);
}
diff --git a/dom/url/tests/test_unknown_url_origin.html b/dom/url/tests/test_unknown_url_origin.html
index 1c5571e9e4e8..e44e45393c79 100644
--- a/dom/url/tests/test_unknown_url_origin.html
+++ b/dom/url/tests/test_unknown_url_origin.html
@@ -2,7 +2,7 @@
- Test for unknwon URL.origin
+ Test for unknown URL.origin
@@ -10,7 +10,7 @@
diff --git a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini
index 15907c1cdcdb..8c1f24445354 100644
--- a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini
+++ b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini
@@ -4,15 +4,3 @@
[Parsing origin: against ]
expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
diff --git a/testing/web-platform/meta/url/a-element-origin.html.ini b/testing/web-platform/meta/url/a-element-origin.html.ini
index 54d576b732cb..a924e087c78a 100644
--- a/testing/web-platform/meta/url/a-element-origin.html.ini
+++ b/testing/web-platform/meta/url/a-element-origin.html.ini
@@ -4,15 +4,3 @@
[Parsing origin: against ]
expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
-
- [Parsing origin: against ]
- expected: FAIL
diff --git a/testing/web-platform/meta/url/url-origin.any.js.ini b/testing/web-platform/meta/url/url-origin.any.js.ini
index a45cfeb797c0..d1b9ce14a544 100644
--- a/testing/web-platform/meta/url/url-origin.any.js.ini
+++ b/testing/web-platform/meta/url/url-origin.any.js.ini
@@ -5,18 +5,6 @@
[Origin parsing: without base]
expected: FAIL
- [Origin parsing: without base]
- expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL
-
[url-origin.any.worker.html]
[Origin parsing: without base]
@@ -24,15 +12,3 @@
[Origin parsing: without base]
expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL
-
- [Origin parsing: without base]
- expected: FAIL