forked from mirrors/gecko-dev
I'm not sure why the non-remote browser case needed to wait for MozAfterPaint. In the remote browser case, we do wait for MozAfterPaint in the content area before focusing the URL bar, but in the non-e10s case, we just focus it right away. MozReview-Commit-ID: gNsk8Oh6JO --HG-- extra : rebase_source : 10d1f5a2ffd5b2cdfba0c2c31fd18d7986367988
39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
/**
|
|
* Tests that the right elements of a tab are focused when it is
|
|
* torn out into its own window.
|
|
*/
|
|
|
|
const URIS = [
|
|
"about:blank",
|
|
"about:sessionrestore",
|
|
"about:privatebrowsing",
|
|
];
|
|
|
|
add_task(async function() {
|
|
for (let uri of URIS) {
|
|
let tab = BrowserTestUtils.addTab(gBrowser);
|
|
await BrowserTestUtils.loadURI(tab.linkedBrowser, uri);
|
|
|
|
let win = gBrowser.replaceTabWithWindow(tab);
|
|
|
|
let contentPainted = Promise.resolve();
|
|
// In the e10s case, we wait for the content to first paint before we focus
|
|
// the URL in the new window, to optimize for content paint time.
|
|
if (tab.linkedBrowser.isRemoteBrowser) {
|
|
contentPainted =
|
|
BrowserTestUtils.waitForContentEvent(tab.linkedBrowser, "MozAfterPaint");
|
|
}
|
|
|
|
await TestUtils.topicObserved("browser-delayed-startup-finished",
|
|
subject => subject == win);
|
|
await contentPainted;
|
|
tab = win.gBrowser.selectedTab;
|
|
|
|
Assert.equal(win.gBrowser.currentURI.spec, uri, uri + ": uri loaded in detached tab");
|
|
Assert.equal(win.document.activeElement, win.gBrowser.selectedBrowser, uri + ": browser is focused");
|
|
Assert.equal(win.gURLBar.value, "", uri + ": urlbar is empty");
|
|
Assert.ok(win.gURLBar.placeholder, uri + ": placeholder text is present");
|
|
|
|
await BrowserTestUtils.closeWindow(win);
|
|
}
|
|
});
|