diff options
Diffstat (limited to 'devtools/client/webconsole/test/browser/browser_webconsole_network_requests_from_chrome.js')
-rw-r--r-- | devtools/client/webconsole/test/browser/browser_webconsole_network_requests_from_chrome.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/browser/browser_webconsole_network_requests_from_chrome.js b/devtools/client/webconsole/test/browser/browser_webconsole_network_requests_from_chrome.js new file mode 100644 index 0000000000..8cc98024e9 --- /dev/null +++ b/devtools/client/webconsole/test/browser/browser_webconsole_network_requests_from_chrome.js @@ -0,0 +1,56 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Tests that network requests from chrome don't cause the Web Console to +// throw exceptions. See Bug 597136. + +"use strict"; + +const TEST_URI = "http://example.com/"; + +add_task(async function () { + // Start a listener on the console service. + let good = true; + const listener = { + QueryInterface: ChromeUtils.generateQI(["nsIObserver"]), + observe(subject) { + if ( + subject instanceof Ci.nsIScriptError && + subject.category === "XPConnect JavaScript" && + subject.sourceName.includes("webconsole") + ) { + good = false; + } + }, + }; + Services.console.registerListener(listener); + + // trigger a lazy-load of the HUD Service + BrowserConsoleManager; + + await sendRequestFromChrome(); + + ok( + good, + "No exception was thrown when sending a network request from a chrome window" + ); + + Services.console.unregisterListener(listener); +}); + +function sendRequestFromChrome() { + return new Promise(resolve => { + const xhr = new XMLHttpRequest(); + + xhr.addEventListener( + "load", + () => { + window.setTimeout(resolve, 0); + }, + { once: true } + ); + + xhr.open("GET", TEST_URI, true); + xhr.send(null); + }); +} |