Bug 1478240 - Enable client/debugger/test/mochitest/browser_dbg_multiple-windows.js in e10s. r=jdescottes draft
authorAlexandre Poirot <poirot.alex@gmail.com>
Wed, 01 Aug 2018 01:38:09 -0700
changeset 825270 5304a9b05c4fd374b6990c40ff1c7db770ec0bef
parent 825269 ae841230e402d5329187d3879f68cab1e20b15f0
push id118054
push userbmo:poirot.alex@gmail.com
push dateWed, 01 Aug 2018 08:41:11 +0000
reviewersjdescottes
bugs1478240
milestone63.0a1
Bug 1478240 - Enable client/debugger/test/mochitest/browser_dbg_multiple-windows.js in e10s. r=jdescottes MozReview-Commit-ID: F9Yt9Gjmwrj
devtools/client/debugger/test/mochitest/browser.ini
devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js
--- a/devtools/client/debugger/test/mochitest/browser.ini
+++ b/devtools/client/debugger/test/mochitest/browser.ini
@@ -351,11 +351,10 @@ skip-if = e10s && debug
 [browser_dbg_location-changes-02-blank.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
 [browser_dbg_location-changes-03-new.js]
 skip-if = e10s # TODO
 [browser_dbg_location-changes-04-breakpoint.js]
 skip-if = e10s # TODO
 [browser_dbg_multiple-windows.js]
-skip-if = e10s # TODO
 [browser_dbg_navigation.js]
 skip-if = e10s && debug
--- a/devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js
@@ -42,55 +42,43 @@ async function testFirstTab(client, tab)
 async function testNewWindow(client, win) {
   ok(!!win, "Second window created.");
 
   win.focus();
 
   const topWindow = Services.wm.getMostRecentWindow("navigator:browser");
   is(topWindow, win, "The second window is on top.");
 
-  const isActive = promise.defer();
-  const isLoaded = promise.defer();
-
   if (Services.focus.activeWindow != win) {
-    win.addEventListener("activate", function onActivate(event) {
-      if (event.target != win) {
-        return;
-      }
-      win.removeEventListener("activate", onActivate, true);
-      isActive.resolve();
-    }, true);
-  } else {
-    isActive.resolve();
+    await new Promise(resolve => {
+      win.addEventListener("activate", function onActivate(event) {
+        if (event.target != win) {
+          return;
+        }
+        win.removeEventListener("activate", onActivate, true);
+        resolve();
+      }, true);
+    });
   }
 
-  const contentLocation = win.content.location.href;
-  if (contentLocation != TAB2_URL) {
-    win.document.addEventListener("load", function onLoad(event) {
-      if (event.target.documentURI != TAB2_URL) {
-        return;
-      }
-      win.document.removeEventListener("load", onLoad, true);
-      isLoaded.resolve();
-    }, true);
-  } else {
-    isLoaded.resolve();
-  }
+  const tab = win.gBrowser.selectedTab;
+  await BrowserTestUtils.browserLoaded(tab.linkedBrowser);
 
-  await isActive.promise;
-  await isLoaded.promise;
   const response = await client.listTabs();
   is(response.selected, 2, "The second tab is selected.");
 }
 
 async function testFocusFirst(client) {
-  const onFocus = once(window.content, "focus");
-
-  window.content.focus();
-  await onFocus;
+  const tab = window.gBrowser.selectedTab;
+  await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
+    const onFocus = new Promise(resolve => {
+      content.addEventListener("focus", resolve, { once: true });
+    });
+    await onFocus;
+  });
 
   const response = await client.listTabs();
   is(response.selected, 1, "The first tab is selected after focusing on it.");
 }
 
 async function testRemoveTab(client, win, tab) {
   win.close();
 
@@ -100,15 +88,15 @@ async function testRemoveTab(client, win
 }
 
 async function continue_remove_tab(client, tab)
 {
   removeTab(tab);
 
   const response = await client.listTabs();
   // Verify that tabs are no longer included in listTabs.
-  let foundTab1 = response.tabs.some(grip => grip.url == TAB1_URL);
-  let foundTab2 = response.tabs.some(grip => grip.url == TAB2_URL);
+  const foundTab1 = response.tabs.some(grip => grip.url == TAB1_URL);
+  const foundTab2 = response.tabs.some(grip => grip.url == TAB2_URL);
   ok(!foundTab1, "Tab1 should be gone.");
   ok(!foundTab2, "Tab2 should be gone.");
 
   is(response.selected, 0, "The original tab is selected.");
 }