forked from mirrors/gecko-dev
MozReview-Commit-ID: 8BJq7VT8PPJ --HG-- extra : rebase_source : 0539c49d2751873bace5fe8b7376455d93a35128
67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
add_task(async function() {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["browser.urlbar.autoFill", false]],
|
|
});
|
|
const url = "data:text/html,<body>hi";
|
|
await testURL(url, urlEnter);
|
|
await testURL(url, urlClick);
|
|
});
|
|
|
|
function urlEnter(url) {
|
|
gURLBar.value = url;
|
|
gURLBar.focus();
|
|
EventUtils.synthesizeKey("KEY_Enter");
|
|
}
|
|
|
|
function urlClick(url) {
|
|
gURLBar.focus();
|
|
gURLBar.value = "";
|
|
EventUtils.sendString(url);
|
|
EventUtils.synthesizeMouseAtCenter(gURLBar.goButton, {});
|
|
}
|
|
|
|
function promiseNewTabSwitched() {
|
|
return new Promise(resolve => {
|
|
gBrowser.addEventListener("TabSwitchDone", function() {
|
|
executeSoon(resolve);
|
|
}, {once: true});
|
|
});
|
|
}
|
|
|
|
function promiseLoaded(browser) {
|
|
return ContentTask.spawn(browser, undefined, async () => {
|
|
if (!["interactive", "complete"].includes(content.document.readyState)) {
|
|
await new Promise(resolve => addEventListener(
|
|
"DOMContentLoaded", resolve, {once: true, capture: true}));
|
|
}
|
|
});
|
|
}
|
|
|
|
async function testURL(url, loadFunc, endFunc) {
|
|
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
|
let browser = tab.linkedBrowser;
|
|
|
|
let pagePrincipal = gBrowser.contentPrincipal;
|
|
loadFunc(url);
|
|
|
|
await BrowserTestUtils.waitForContentEvent(browser, "pageshow");
|
|
|
|
await ContentTask.spawn(browser, { isRemote: gMultiProcessBrowser },
|
|
async function(arg) {
|
|
Assert.equal(Services.focus.focusedElement, null, "focusedElement not null");
|
|
|
|
if (arg.isRemote) {
|
|
Assert.equal(Services.focus.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");
|
|
|
|
await BrowserTestUtils.removeTab(tab);
|
|
}
|