Bug 1473920 - Fix browser_ext_themes_ntp_colors_perwindow failures when running on Linux. draft
authorLuca Greco <lgreco@mozilla.com>
Mon, 30 Jul 2018 21:40:35 +0200
changeset 824569 8f1440936fd20bd7605838e385d1268dafc01dc9
parent 824364 b21e782599f6af1bef5a7232190ac406a3234453
push id117944
push userluca.greco@alcacoop.it
push dateTue, 31 Jul 2018 10:25:10 +0000
bugs1473920
milestone63.0a1
Bug 1473920 - Fix browser_ext_themes_ntp_colors_perwindow failures when running on Linux. MozReview-Commit-ID: LxlmZ7xx06s
toolkit/components/extensions/test/browser/browser_ext_themes_ntp_colors_perwindow.js
--- a/toolkit/components/extensions/test/browser/browser_ext_themes_ntp_colors_perwindow.js
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_ntp_colors_perwindow.js
@@ -54,28 +54,16 @@ function test_ntp_default_theme(browser)
 }
 
 add_task(async function test_per_window_ntp_theme() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       permissions: ["theme"],
     },
     async background() {
-      function promiseWindowChanged(winId) {
-        return new Promise(resolve => {
-          let listener = windowId => {
-            if (windowId === winId) {
-              browser.windows.onFocusChanged.removeListener(listener);
-              resolve();
-            }
-          };
-          browser.windows.onFocusChanged.addListener(listener);
-        });
-      }
-
       function promiseWindowChecked() {
         return new Promise(resolve => {
           let listener = msg => {
             if (msg == "checked-window") {
               browser.test.onMessage.removeListener(listener);
               resolve();
             }
           };
@@ -103,26 +91,18 @@ add_task(async function test_per_window_
             }
           };
           browser.windows.onRemoved.addListener(listener);
           browser.windows.remove(winId);
         });
       }
 
       async function checkWindow(theme, isBrightText, winId) {
-        // We query the window again to have the updated focus information
-        let win = await browser.windows.get(winId);
-        if (!win.focused) {
-          let focusChanged = promiseWindowChanged(win.id);
-          await browser.windows.update(win.id, {focused: true});
-          await focusChanged;
-        }
-
         let windowChecked = promiseWindowChecked();
-        browser.test.sendMessage("check-window", {theme, isBrightText});
+        browser.test.sendMessage("check-window", {theme, isBrightText, winId});
         await windowChecked;
       }
 
       const darkTextTheme = {
         colors: {
           accentcolor: "#add8e6",
           textcolor: "#000",
           ntp_background: "#add8e6",
@@ -158,18 +138,18 @@ add_task(async function test_per_window_
       await checkWindow(brightTextTheme, true, secondWinId);
 
       await removeWindow(secondWinId);
       await checkWindow(null, false, winId);
       browser.test.notifyPass("perwindow-ntp-theme");
     },
   });
 
-  extension.onMessage("check-window", async ({theme, isBrightText}) => {
-    let win = Services.wm.getMostRecentWindow("navigator:browser");
+  extension.onMessage("check-window", async ({theme, isBrightText, winId}) => {
+    let win = Services.wm.getOuterWindowWithId(winId);
     win.gBrowser.removePreloadedBrowser();
     for (let url of ["about:newtab", "about:home", "about:welcome"]) {
       info("Opening url: " + url);
       await BrowserTestUtils.withNewTab({gBrowser: win.gBrowser, url}, async browser => {
         if (theme) {
           await test_ntp_theme(browser, theme, isBrightText);
         } else {
           await test_ntp_default_theme(browser);