summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/urlbar/browser_locationBarExternalLoad.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /browser/base/content/test/urlbar/browser_locationBarExternalLoad.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'browser/base/content/test/urlbar/browser_locationBarExternalLoad.js')
-rw-r--r--browser/base/content/test/urlbar/browser_locationBarExternalLoad.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/browser/base/content/test/urlbar/browser_locationBarExternalLoad.js b/browser/base/content/test/urlbar/browser_locationBarExternalLoad.js
new file mode 100644
index 000000000..31fc84768
--- /dev/null
+++ b/browser/base/content/test/urlbar/browser_locationBarExternalLoad.js
@@ -0,0 +1,65 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+const url = "data:text/html,<body>hi";
+
+add_task(function*() {
+ yield* testURL(url, urlEnter);
+ yield* testURL(url, urlClick);
+});
+
+function urlEnter(url) {
+ gURLBar.value = url;
+ gURLBar.focus();
+ EventUtils.synthesizeKey("VK_RETURN", {});
+}
+
+function urlClick(url) {
+ gURLBar.value = url;
+ gURLBar.focus();
+ let goButton = document.getElementById("urlbar-go-button");
+ EventUtils.synthesizeMouseAtCenter(goButton, {});
+}
+
+function promiseNewTabSwitched() {
+ return new Promise(resolve => {
+ gBrowser.addEventListener("TabSwitchDone", function onSwitch() {
+ gBrowser.removeEventListener("TabSwitchDone", onSwitch);
+ executeSoon(resolve);
+ });
+ });
+}
+
+function* testURL(url, loadFunc, endFunc) {
+ let tabSwitchedPromise = promiseNewTabSwitched();
+ let tab = gBrowser.selectedTab = gBrowser.addTab();
+ let browser = gBrowser.selectedBrowser;
+
+ let pageshowPromise = BrowserTestUtils.waitForContentEvent(browser, "pageshow");
+
+ yield tabSwitchedPromise;
+ yield pageshowPromise;
+
+ let pagePrincipal = gBrowser.contentPrincipal;
+ loadFunc(url);
+
+ yield BrowserTestUtils.waitForContentEvent(browser, "pageshow");
+
+ yield ContentTask.spawn(browser, { isRemote: gMultiProcessBrowser },
+ function* (arg) {
+ const fm = Components.classes["@mozilla.org/focus-manager;1"].
+ getService(Components.interfaces.nsIFocusManager);
+ Assert.equal(fm.focusedElement, null, "focusedElement not null");
+
+ if (arg.isRemote) {
+ Assert.equal(fm.activeWindow, content, "activeWindow not correct");
+ }
+ });
+
+ is(document.activeElement, browser, "content window should be focused");
+
+ ok(!gBrowser.contentPrincipal.equals(pagePrincipal),
+ "load of " + url + " by " + loadFunc.name + " should produce a page with a different principal");
+
+ gBrowser.removeTab(tab);
+}