Bug 1473920 - Fix browser_ext_themes_ntp_colors_perwindow failures when running on Linux.
MozReview-Commit-ID: LxlmZ7xx06s
--- 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);