/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at http://mozilla.org/MPL/2.0/. */ add_task(async function check_focus() { let extension = ExtensionTestUtils.loadExtension({ files: { "background.js": async () => { // Create a promise which waits until the script in the window is loaded // and the email field has focus, so we can send our fake keystrokes. let loadPromise = new Promise(resolve => { let listener = async (msg, sender) => { if (msg == "loaded") { browser.runtime.onMessage.removeListener(listener); resolve(sender.tab.windowId); } }; browser.runtime.onMessage.addListener(listener); }); let openedWin = await browser.windows.create({ url: "focus.html", type: "popup", allowScriptsToClose: true, }); let loadedWinId = await loadPromise; browser.test.assertEq( openedWin.id, loadedWinId, "The correct window should have been loaded" ); let removePromise = new Promise(resolve => { browser.windows.onRemoved.addListener(id => { if (id == openedWin.id) { resolve(); } }); }); window.sendMessage("sendKeyStrokes", openedWin.id); await removePromise; browser.test.notifyPass("finished"); }, "focus.html": `