Bug 1330822 - Remove CPOWs from browser_popupUI.js. r=Felipe
authorBlake Kaplan <mrbkap@gmail.com>
Tue, 15 Nov 2016 15:12:28 -0800
changeset 377284 a66860c81eaf8f83e38ab184c1d1fa9e5564edcc
parent 377283 a5cc4b8910228e4530e68b1f4a4695f804ec40b4
child 377285 ef6ee3788c6bbe3c6c96f23054b0901ea09cd325
push id1419
push userjlund@mozilla.com
push dateMon, 10 Apr 2017 20:44:07 +0000
treeherdermozilla-release@5e6801b73ef6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersFelipe
bugs1330822
milestone53.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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.
browser/base/content/test/general/browser_popupUI.js
--- 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();
 }