summaryrefslogtreecommitdiffstats
path: root/dom/xhr/tests/browser_xhr_substituted_protocol_responseURL.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/xhr/tests/browser_xhr_substituted_protocol_responseURL.js')
-rw-r--r--dom/xhr/tests/browser_xhr_substituted_protocol_responseURL.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/dom/xhr/tests/browser_xhr_substituted_protocol_responseURL.js b/dom/xhr/tests/browser_xhr_substituted_protocol_responseURL.js
new file mode 100644
index 0000000000..b5556d549f
--- /dev/null
+++ b/dom/xhr/tests/browser_xhr_substituted_protocol_responseURL.js
@@ -0,0 +1,27 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+// Bug 1411725 - An XHR using a SubstitutingProtocolHandler channel
+// (web-extension:, resource:, etc) should return the original URL,
+// not the jar/file it was actually substituted for.
+
+const TEST_URL = "resource://gre/modules/XPCOMUtils.sys.mjs";
+
+add_task(async function test() {
+ await new Promise(resolve => {
+ const xhr = new XMLHttpRequest();
+ xhr.responseType = "text";
+ xhr.open("get", TEST_URL);
+ xhr.addEventListener("loadend", () => {
+ is(
+ xhr.responseURL,
+ TEST_URL,
+ "original URL is given instead of substitution"
+ );
+ resolve();
+ });
+ xhr.send();
+ });
+});