summaryrefslogtreecommitdiffstats
path: root/browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs')
-rw-r--r--browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs17
1 files changed, 16 insertions, 1 deletions
diff --git a/browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs b/browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs
index 3fd2bf95e3..e1285c0396 100644
--- a/browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs
+++ b/browser/components/firefoxview/tests/browser/FirefoxViewTestUtils.sys.mjs
@@ -21,6 +21,20 @@ function getFirefoxViewURL() {
return "about:firefoxview";
}
+/**
+ * Make the given window focused and active
+ */
+async function switchToWindow(win) {
+ await testScope.SimpleTest.promiseFocus(win);
+ if (Services.focus.activeWindow !== win) {
+ testScope.info("switchToWindow, waiting for activate event on the window");
+ await BrowserTestUtils.waitForEvent(win, "activate");
+ } else {
+ testScope.info("switchToWindow, win is already the activeWindow");
+ }
+ testScope.info("switchToWindow, done");
+}
+
function assertFirefoxViewTab(win) {
Assert.ok(win.FirefoxViewHandler.tab, "Firefox View tab exists");
Assert.ok(win.FirefoxViewHandler.tab?.hidden, "Firefox View tab is hidden");
@@ -48,7 +62,7 @@ async function openFirefoxViewTab(win) {
"Must initialize FirefoxViewTestUtils with a test scope which has a SimpleTest property"
);
}
- await testScope.SimpleTest.promiseFocus(win);
+ await switchToWindow(win);
let fxviewTab = win.FirefoxViewHandler.tab;
let alreadyLoaded =
fxviewTab?.linkedBrowser.currentURI.spec.includes(getFirefoxViewURL()) &&
@@ -167,6 +181,7 @@ function isFirefoxViewTabSelectedInWindow(win) {
export {
init,
+ switchToWindow,
withFirefoxView,
assertFirefoxViewTab,
assertFirefoxViewTabSelected,