Bug 1330822 - Remove CPOWs from browser_popupUI.js. r=Felipe
Finding the popup window after the fact was going to be messy (maintaining
window identity across the message manager is a tricky task). Instead, it's
much easier to wait for the new window to open and grab a reference to it
then.
--- a/browser/base/content/test/general/browser_popupUI.js
+++ b/browser/base/content/test/general/browser_popupUI.js
@@ -1,37 +1,17 @@
function test() {
waitForExplicitFinish();
- gPrefService.setBoolPref("dom.disable_open_during_load", false);
+ SpecialPowers.pushPrefEnv({ set: [[ "dom.disable_open_during_load", false ]] });
- var browser = gBrowser.selectedBrowser;
- BrowserTestUtils.browserLoaded(browser).then(() => {
- if (gPrefService.prefHasUserValue("dom.disable_open_during_load"))
- gPrefService.clearUserPref("dom.disable_open_during_load");
-
- findPopup();
- });
-
- browser.loadURI(
+ let popupOpened = BrowserTestUtils.waitForNewWindow(true, "about:blank");
+ BrowserTestUtils.openNewForegroundTab(gBrowser,
"data:text/html,<html><script>popup=open('about:blank','','width=300,height=200')</script>"
);
-}
-
-function findPopup() {
- var enumerator = Services.wm.getEnumerator("navigator:browser");
-
- while (enumerator.hasMoreElements()) {
- let win = enumerator.getNext();
- if (win.content.wrappedJSObject == content.wrappedJSObject.popup) {
- testPopupUI(win);
- return;
- }
- }
-
- throw "couldn't find the popup";
+ popupOpened.then((win) => testPopupUI(win));
}
function testPopupUI(win) {
var doc = win.document;
ok(win.gURLBar, "location bar exists in the popup");
isnot(win.gURLBar.clientWidth, 0, "location bar is visible in the popup");
ok(win.gURLBar.readOnly, "location bar is read-only in the popup");
@@ -39,20 +19,19 @@ function testPopupUI(win) {
"'open location' command is not disabled in the popup");
let historyButton = doc.getAnonymousElementByAttribute(win.gURLBar, "anonid",
"historydropmarker");
is(historyButton.clientWidth, 0, "history dropdown button is hidden in the popup");
EventUtils.synthesizeKey("t", { accelKey: true }, win);
is(win.gBrowser.browsers.length, 1, "Accel+T doesn't open a new tab in the popup");
- is(gBrowser.browsers.length, 2, "Accel+T opened a new tab in the parent window");
+ is(gBrowser.browsers.length, 3, "Accel+T opened a new tab in the parent window");
gBrowser.removeCurrentTab();
EventUtils.synthesizeKey("w", { accelKey: true }, win);
ok(win.closed, "Accel+W closes the popup");
if (!win.closed)
win.close();
- gBrowser.addTab();
gBrowser.removeCurrentTab();
finish();
}