diff --git a/browser/base/content/test/fullscreen/browser_fullscreen_permissions_prompt.js b/browser/base/content/test/fullscreen/browser_fullscreen_permissions_prompt.js index 5f363fbac96b..26e4ec971a66 100644 --- a/browser/base/content/test/fullscreen/browser_fullscreen_permissions_prompt.js +++ b/browser/base/content/test/fullscreen/browser_fullscreen_permissions_prompt.js @@ -18,14 +18,11 @@ async function requestNotificationPermission(browser) { } async function requestCameraPermission(browser) { - return SpecialPowers.spawn(browser, [], () => { - return new Promise(resolve => { - content.navigator.mediaDevices - .getUserMedia({ video: true, fake: true }) - .catch(resolve(false)) - .then(resolve(true)); - }); - }); + return SpecialPowers.spawn(browser, [], () => + content.navigator.mediaDevices + .getUserMedia({ video: true, fake: true }) + .then(() => true, () => false) + ); } add_task(async function test_fullscreen_closes_permissionui_prompt() { @@ -145,7 +142,7 @@ add_task(async function test_permission_prompt_closes_fullscreen() { let fullScreenExit = waitForFullScreenState(browser, false); info("Requesting notification permission"); - requestNotificationPermission(browser); + requestNotificationPermission(browser).catch(() => {}); await popupShown; info("Waiting for full-screen exit"); diff --git a/browser/base/content/test/general/browser_bug763468_perwindowpb.js b/browser/base/content/test/general/browser_bug763468_perwindowpb.js index dff1f31da01e..78ab921ba91b 100644 --- a/browser/base/content/test/general/browser_bug763468_perwindowpb.js +++ b/browser/base/content/test/general/browser_bug763468_perwindowpb.js @@ -52,14 +52,10 @@ async function openNewTab(aWindow, aExpectedURL) { false, aExpectedURL ); - let alreadyLoaded = await SpecialPowers.spawn( - browser, - [aExpectedURL], - url => { - let doc = content.document; - return doc && doc.readyState === "complete" && doc.location.href == url; - } - ); + let alreadyLoaded = await ContentTask.spawn(browser, aExpectedURL, url => { + let doc = content.document; + return doc && doc.readyState === "complete" && doc.location.href == url; + }); if (!alreadyLoaded) { await loadPromise; } diff --git a/browser/base/content/test/general/browser_bug767836_perwindowpb.js b/browser/base/content/test/general/browser_bug767836_perwindowpb.js index 2d13059d4cc9..46835e9f8c39 100644 --- a/browser/base/content/test/general/browser_bug767836_perwindowpb.js +++ b/browser/base/content/test/general/browser_bug767836_perwindowpb.js @@ -71,14 +71,10 @@ async function openNewTab(aWindow, aExpectedURL) { false, aExpectedURL ); - let alreadyLoaded = await SpecialPowers.spawn( - browser, - [aExpectedURL], - url => { - let doc = content.document; - return doc && doc.readyState === "complete" && doc.location.href == url; - } - ); + let alreadyLoaded = await ContentTask.spawn(browser, aExpectedURL, url => { + let doc = content.document; + return doc && doc.readyState === "complete" && doc.location.href == url; + }); if (!alreadyLoaded) { await loadPromise; } diff --git a/browser/base/content/test/general/browser_tabs_isActive.js b/browser/base/content/test/general/browser_tabs_isActive.js index cfe8023c1fe9..d75bf8046cc3 100644 --- a/browser/base/content/test/general/browser_tabs_isActive.js +++ b/browser/base/content/test/general/browser_tabs_isActive.js @@ -24,9 +24,7 @@ function getParentTabState(aTab) { } function getChildTabState(aTab) { - return SpecialPowers.spawn(aTab.linkedBrowser, [], async function() { - return docShell.isActive; - }); + return ContentTask.spawn(aTab.linkedBrowser, null, () => docShell.isActive); } function checkState(parentSide, childSide, value, message) { diff --git a/browser/base/content/test/popups/browser_popup_frames.js b/browser/base/content/test/popups/browser_popup_frames.js index 986a196d83e0..40fec3ebd7ff 100644 --- a/browser/base/content/test/popups/browser_popup_frames.js +++ b/browser/base/content/test/popups/browser_popup_frames.js @@ -41,7 +41,7 @@ add_task(async function test_opening_blocked_popups() { ok(notification, "Should have notification."); - await SpecialPowers.spawn(tab.linkedBrowser, [baseURL], async function(uri) { + await ContentTask.spawn(tab.linkedBrowser, baseURL, async function(uri) { let iframe = content.document.createElement("iframe"); let pageHideHappened = ContentTaskUtils.waitForEvent( this, @@ -59,7 +59,7 @@ add_task(async function test_opening_blocked_popups() { ok(notification, "Should still have notification"); // Now navigate the subframe. - await SpecialPowers.spawn(tab.linkedBrowser, [], async function() { + await ContentTask.spawn(tab.linkedBrowser, null, async function() { let pageHideHappened = ContentTaskUtils.waitForEvent( this, "pagehide", diff --git a/browser/base/content/test/webrtc/head.js b/browser/base/content/test/webrtc/head.js index 58c96709590b..e177fee622c3 100644 --- a/browser/base/content/test/webrtc/head.js +++ b/browser/base/content/test/webrtc/head.js @@ -276,9 +276,9 @@ function expectObserverCalledOnClose( } function promiseMessage(aMessage, aAction, aCount = 1) { - let promise = SpecialPowers.spawn( + let promise = ContentTask.spawn( gBrowser.selectedBrowser, - [[aMessage, aCount]], + [aMessage, aCount], async function([expectedMessage, expectedCount]) { return new Promise(resolve => { function listenForMessage({ data }) { @@ -509,10 +509,8 @@ async function reloadAndAssertClosedStreams() { await disableObserverVerification(); let loadedPromise = BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser); - await SpecialPowers.spawn( - gBrowser.selectedBrowser, - [], - "() => content.location.reload()" + await ContentTask.spawn(gBrowser.selectedBrowser, null, () => + content.location.reload() ); await loadedPromise; diff --git a/browser/components/aboutlogins/tests/browser/browser_loginSortOrderRestored.js b/browser/components/aboutlogins/tests/browser/browser_loginSortOrderRestored.js index 25f416871c12..e6495f2814c8 100644 --- a/browser/components/aboutlogins/tests/browser/browser_loginSortOrderRestored.js +++ b/browser/components/aboutlogins/tests/browser/browser_loginSortOrderRestored.js @@ -23,9 +23,9 @@ add_task(async function test_sort_order_persisted() { url: "about:logins", }, async function(browser) { - await SpecialPowers.spawn( + await ContentTask.spawn( browser, - [[TEST_LOGIN1, TEST_LOGIN2]], + [TEST_LOGIN1, TEST_LOGIN2], async function([testLogin1, testLogin2]) { let loginList = Cu.waiveXrays( content.document.querySelector("login-list") @@ -65,9 +65,7 @@ add_task(async function test_sort_order_persisted() { url: "about:logins", }, async function(browser) { - await SpecialPowers.spawn(browser, [TEST_LOGIN1], async function( - testLogin1 - ) { + await ContentTask.spawn(browser, TEST_LOGIN1, async function(testLogin1) { let loginList = Cu.waiveXrays( content.document.querySelector("login-list") ); diff --git a/browser/components/extensions/test/browser/head.js b/browser/components/extensions/test/browser/head.js index 90602b1397ca..93ff93a37098 100644 --- a/browser/components/extensions/test/browser/head.js +++ b/browser/components/extensions/test/browser/head.js @@ -303,7 +303,7 @@ async function focusButtonAndPressKey(key, elem, modifiers) { } var awaitBrowserLoaded = browser => - SpecialPowers.spawn(browser, [], () => { + ContentTask.spawn(browser, null, () => { if ( content.document.readyState !== "complete" || content.document.documentURI === "about:blank" diff --git a/browser/components/newtab/test/browser/browser_aboutwelcome.js b/browser/components/newtab/test/browser/browser_aboutwelcome.js index 4bd7a381ee0c..022ea08cfe9b 100644 --- a/browser/components/newtab/test/browser/browser_aboutwelcome.js +++ b/browser/components/newtab/test/browser/browser_aboutwelcome.js @@ -38,9 +38,9 @@ async function test_trailhead_branch( ); let browser = tab.linkedBrowser; - await SpecialPowers.spawn( + await ContentTask.spawn( browser, - [{ expectedSelectors, branchName, unexpectedSelectors }], + { expectedSelectors, branchName, unexpectedSelectors }, async ({ expectedSelectors: expected, branchName: branch, diff --git a/browser/components/newtab/test/browser/browser_as_load_location.js b/browser/components/newtab/test/browser/browser_as_load_location.js index e31870e88475..f11b6cf503fc 100644 --- a/browser/components/newtab/test/browser/browser_as_load_location.js +++ b/browser/components/newtab/test/browser/browser_as_load_location.js @@ -15,9 +15,9 @@ async function checkNewtabLoads(selector, message) { await waitForPreloaded(browser); // check what the content task thinks has been loaded. - let found = await SpecialPowers.spawn( + let found = await ContentTask.spawn( browser, - [selector], + selector, arg => content.document.querySelector(arg) !== null ); ok(found, message); diff --git a/browser/components/newtab/test/browser/head.js b/browser/components/newtab/test/browser/head.js index 6f1299f0b1e2..5f0d5490dc1a 100644 --- a/browser/components/newtab/test/browser/head.js +++ b/browser/components/newtab/test/browser/head.js @@ -47,9 +47,9 @@ async function clearHistoryAndBookmarks() { * not necessarily have had all its javascript/render logic executed. */ async function waitForPreloaded(browser) { - let readyState = await SpecialPowers.spawn( + let readyState = await ContentTask.spawn( browser, - [], + null, () => content.document.readyState ); if (readyState !== "complete") { diff --git a/browser/components/resistfingerprinting/test/browser/browser_spoofing_keyboard_event.js b/browser/components/resistfingerprinting/test/browser/browser_spoofing_keyboard_event.js index 0209381f4643..9c5eeec8c022 100644 --- a/browser/components/resistfingerprinting/test/browser/browser_spoofing_keyboard_event.js +++ b/browser/components/resistfingerprinting/test/browser/browser_spoofing_keyboard_event.js @@ -1986,9 +1986,9 @@ async function testKeyEvent(aTab, aTestCase) { let allKeyEventPromises = []; for (let testEvent of testEvents) { - let keyEventPromise = SpecialPowers.spawn( + let keyEventPromise = ContentTask.spawn( aTab.linkedBrowser, - [{ testEvent, result: aTestCase.result, kSameKeyCodeAndCharCodeValue }], + { testEvent, result: aTestCase.result, kSameKeyCodeAndCharCodeValue }, async aInput => { function verifyKeyboardEvent( aEvent, @@ -2217,9 +2217,9 @@ add_task(async function runTestForSuppressModifierKeys() { for (let eventType of ["keydown", "keyup"]) { for (let modifierKey of ["Alt", "Shift", "Control"]) { - let testPromise = SpecialPowers.spawn( + let testPromise = ContentTask.spawn( tab.linkedBrowser, - [eventType], + eventType, async aEventType => { let inputBox = content.document.getElementById("test"); diff --git a/browser/components/sessionstore/test/browser_911547.js b/browser/components/sessionstore/test/browser_911547.js index 046ddbece82c..14b979660686 100644 --- a/browser/components/sessionstore/test/browser_911547.js +++ b/browser/components/sessionstore/test/browser_911547.js @@ -38,7 +38,7 @@ add_task(async function test() { await loadedPromise; - await SpecialPowers.spawn(browser, [], function({}) { + await SpecialPowers.spawn(browser, [], function() { // eslint-disable-line // the data: URI inherits the CSP and the inline script needs to be blocked is( @@ -56,7 +56,7 @@ add_task(async function test() { await promiseTabRestored(tab); browser = tab.linkedBrowser; - await SpecialPowers.spawn(browser, [], function({}) { + await SpecialPowers.spawn(browser, [], function() { // eslint-disable-line // the data: URI should be restored including the inherited CSP and the // inline script should be blocked. diff --git a/browser/components/sessionstore/test/browser_frametree.js b/browser/components/sessionstore/test/browser_frametree.js index 1de925660420..cca26bd2da46 100644 --- a/browser/components/sessionstore/test/browser_frametree.js +++ b/browser/components/sessionstore/test/browser_frametree.js @@ -27,8 +27,8 @@ add_task(async function test_frametree() { is(await countNonDynamicFrames(browser), 2, "two non-dynamic child frames"); // Go back in history. - let pageShowPromise = SpecialPowers.spawn(browser, [], async () => { - return ContentTaskUtils.waitForEvent(this, "pageshow", true); + let pageShowPromise = ContentTask.spawn(browser, null, async () => { + await ContentTaskUtils.waitForEvent(this, "pageshow", true); }); browser.goBack(); await pageShowPromise; diff --git a/browser/components/sessionstore/test/browser_send_async_message_oom.js b/browser/components/sessionstore/test/browser_send_async_message_oom.js index 092dd0b19fc8..4c14ac90b6dc 100644 --- a/browser/components/sessionstore/test/browser_send_async_message_oom.js +++ b/browser/components/sessionstore/test/browser_send_async_message_oom.js @@ -41,7 +41,7 @@ add_task(async function() { // Open a browser, configure it to cause OOM. let newTab = BrowserTestUtils.addTab(gBrowser, "about:robots"); let browser = newTab.linkedBrowser; - await SpecialPowers.spawn(browser, [], frameScript); + await ContentTask.spawn(browser, null, frameScript); let promiseReported = new Promise(resolve => { browser.messageManager.addMessageListener("SessionStore:error", resolve); diff --git a/browser/components/sessionstore/test/browser_sessionHistory.js b/browser/components/sessionstore/test/browser_sessionHistory.js index 4d25ee942e64..ff60776e382c 100644 --- a/browser/components/sessionstore/test/browser_sessionHistory.js +++ b/browser/components/sessionstore/test/browser_sessionHistory.js @@ -82,8 +82,8 @@ add_task(async function test_pageshow() { await promiseBrowserLoaded(browser); // Wait until shistory changes. - let pageShowPromise = SpecialPowers.spawn(browser, [], async () => { - return ContentTaskUtils.waitForEvent(this, "pageshow", true); + let pageShowPromise = ContentTask.spawn(browser, null, async () => { + await ContentTaskUtils.waitForEvent(this, "pageshow", true); }); // Go back to the previous url which is loaded from the bfcache. diff --git a/browser/components/sessionstore/test/browser_windowStateContainer.js b/browser/components/sessionstore/test/browser_windowStateContainer.js index 1c339a6e5911..7249fb6b63c7 100644 --- a/browser/components/sessionstore/test/browser_windowStateContainer.js +++ b/browser/components/sessionstore/test/browser_windowStateContainer.js @@ -52,7 +52,7 @@ add_task(async function() { for (let i = 0; i < 4; i++) { let browser = win2.gBrowser.tabs[i].linkedBrowser; - await SpecialPowers.spawn(browser, [{ expectedId: i + 1 }], async function( + await ContentTask.spawn(browser, { expectedId: i + 1 }, async function( args ) { Assert.equal( @@ -129,9 +129,7 @@ add_task(async function() { for (let i = 0; i < 2; i++) { let browser = win2.gBrowser.tabs[i].linkedBrowser; - await SpecialPowers.spawn(browser, [{ expectedId: i }], async function( - args - ) { + await ContentTask.spawn(browser, { expectedId: i }, async function(args) { Assert.equal( docShell.getOriginAttributes().userContextId, args.expectedId, diff --git a/browser/components/urlbar/tests/browser/browser_locationBarCommand.js b/browser/components/urlbar/tests/browser/browser_locationBarCommand.js index 8d8c338ce851..6fe9d80600e0 100644 --- a/browser/components/urlbar/tests/browser/browser_locationBarCommand.js +++ b/browser/components/urlbar/tests/browser/browser_locationBarCommand.js @@ -278,7 +278,7 @@ function promiseCheckChildNoFocusedElement(browser) { return null; } - return SpecialPowers.spawn(browser, [], async function() { + return ContentTask.spawn(browser, null, async function() { Assert.equal( Services.focus.focusedElement, null, diff --git a/browser/components/urlbar/tests/browser/browser_switchToTabHavingURI_aOpenParams.js b/browser/components/urlbar/tests/browser/browser_switchToTabHavingURI_aOpenParams.js index 7000d3136256..aa6360163973 100644 --- a/browser/components/urlbar/tests/browser/browser_switchToTabHavingURI_aOpenParams.js +++ b/browser/components/urlbar/tests/browser/browser_switchToTabHavingURI_aOpenParams.js @@ -13,7 +13,7 @@ add_task(async function test_ignoreFragment() { switchTab("about:home#1", true); switchTab("about:mozilla", true); - let hashChangePromise = SpecialPowers.spawn( + let hashChangePromise = ContentTask.spawn( tabRefAboutHome.linkedBrowser, [], async function() { diff --git a/browser/modules/test/browser/browser_preloading_tab_moving.js b/browser/modules/test/browser/browser_preloading_tab_moving.js index 3800d7a15582..08a2e0969f5b 100644 --- a/browser/modules/test/browser/browser_preloading_tab_moving.js +++ b/browser/modules/test/browser/browser_preloading_tab_moving.js @@ -72,7 +72,7 @@ add_task(async function moving_works() { return ContentTaskUtils.waitForCondition(() => { return content.document.readyState == "complete"; }); - }); + }).catch(Cu.reportError); ok(true, "Managed to open a tab in the original window still."); diff --git a/devtools/client/inspector/test/shared-head.js b/devtools/client/inspector/test/shared-head.js index 98fcfb3017a2..3656fde7e62f 100644 --- a/devtools/client/inspector/test/shared-head.js +++ b/devtools/client/inspector/test/shared-head.js @@ -726,9 +726,9 @@ function openContextMenuAndGetAllItems(inspector, options) { */ async function waitUntilVisitedState(tab, selectors) { await asyncWaitUntil(async () => { - const hasVisitedState = await SpecialPowers.spawn( + const hasVisitedState = await ContentTask.spawn( tab.linkedBrowser, - [selectors], + selectors, args => { const NS_EVENT_STATE_VISITED = 1 << 24; diff --git a/devtools/client/responsive/test/browser/head.js b/devtools/client/responsive/test/browser/head.js index 3f77cbe9a33f..d117b3fdcb43 100644 --- a/devtools/client/responsive/test/browser/head.js +++ b/devtools/client/responsive/test/browser/head.js @@ -194,7 +194,7 @@ function addRDMTask(rdmUrl, rdmTask, includeBrowserEmbeddedUI) { } function spawnViewportTask(ui, args, task) { - return SpecialPowers.spawn(ui.getViewportBrowser(), [args], task); + return ContentTask.spawn(ui.getViewportBrowser(), args, task); } function waitForFrameLoad(ui, targetURL) { @@ -442,7 +442,7 @@ const selectNetworkThrottling = (ui, value) => ]); function getSessionHistory(browser) { - return SpecialPowers.spawn(browser, [], async function() { + return ContentTask.spawn(browser, null, function() { /* eslint-disable no-undef */ const { SessionHistory } = ChromeUtils.import( "resource://gre/modules/sessionstore/SessionHistory.jsm" diff --git a/devtools/client/shared/test/browser_dbg_multiple-windows.js b/devtools/client/shared/test/browser_dbg_multiple-windows.js index 6df6a58ba8a9..b04c42c4cfc3 100644 --- a/devtools/client/shared/test/browser_dbg_multiple-windows.js +++ b/devtools/client/shared/test/browser_dbg_multiple-windows.js @@ -75,7 +75,7 @@ async function testNewWindow(client, win) { async function testFocusFirst(client) { const tab = window.gBrowser.selectedTab; - await SpecialPowers.spawn(tab.linkedBrowser, [], async function() { + await ContentTask.spawn(tab.linkedBrowser, null, async function() { const onFocus = new Promise(resolve => { content.addEventListener("focus", resolve, { once: true }); }); diff --git a/devtools/client/webconsole/test/browser/head.js b/devtools/client/webconsole/test/browser/head.js index 82749965b7d3..5b6adec9fe12 100644 --- a/devtools/client/webconsole/test/browser/head.js +++ b/devtools/client/webconsole/test/browser/head.js @@ -1351,9 +1351,9 @@ async function selectFrame(dbg, frame) { async function pauseDebugger(dbg) { info("Waiting for debugger to pause"); const onPaused = waitForPaused(dbg); - SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function() { + SpecialPowers.spawn(gBrowser.selectedBrowser, [], function() { content.wrappedJSObject.firstCall(); - }); + }).catch(() => {}); await onPaused; } diff --git a/docshell/test/browser/browser_bug349769.js b/docshell/test/browser/browser_bug349769.js index 0fe1263921b4..94ff94da3c43 100644 --- a/docshell/test/browser/browser_bug349769.js +++ b/docshell/test/browser/browser_bug349769.js @@ -2,7 +2,7 @@ add_task(async function test() { const uris = [undefined, "about:blank"]; function checkContentProcess(newBrowser, uri) { - return SpecialPowers.spawn(newBrowser, [uri], async function(uri) { + return ContentTask.spawn(newBrowser, [uri], async function(uri) { var prin = content.document.nodePrincipal; Assert.notEqual( prin, diff --git a/docshell/test/browser/browser_bug441169.js b/docshell/test/browser/browser_bug441169.js index 3a29372f2b04..09e83b040c44 100644 --- a/docshell/test/browser/browser_bug441169.js +++ b/docshell/test/browser/browser_bug441169.js @@ -37,7 +37,7 @@ function test() { gBrowser.selectedTab = newTab; newBrowser = gBrowser.getBrowserForTab(newTab); - SpecialPowers.spawn(newBrowser, [], task).then(() => { + ContentTask.spawn(newBrowser, null, task).then(() => { gBrowser.removeCurrentTab(); finish(); }); diff --git a/docshell/test/browser/browser_bug670318.js b/docshell/test/browser/browser_bug670318.js index 1dc14b518416..d6a685656c6b 100644 --- a/docshell/test/browser/browser_bug670318.js +++ b/docshell/test/browser/browser_bug670318.js @@ -16,7 +16,7 @@ add_task(async function test() { { gBrowser, url: "about:blank" }, async function(browser) { if (!SpecialPowers.getBoolPref("fission.sessionHistoryInParent")) { - await SpecialPowers.spawn(browser, [URL], async function(URL) { + await ContentTask.spawn(browser, URL, async function(URL) { let history = docShell.QueryInterface(Ci.nsIWebNavigation) .sessionHistory; let count = 0; @@ -29,22 +29,16 @@ add_task(async function test() { let listener = { OnHistoryNewEntry(aNewURI) { if (aNewURI.spec == URL && 5 == ++count) { - docShell.chromeEventHandler.addEventListener( + addEventListener( "load", function onLoad() { - docShell.chromeEventHandler.removeEventListener( - "load", - onLoad, - true - ); - Assert.ok( history.index < history.count, "history.index is valid" ); testDone.resolve(); }, - true + { capture: true, once: true } ); history.legacySHistory.removeSHistoryListener(listener); @@ -98,9 +92,9 @@ add_task(async function test() { async OnHistoryNewEntry(aNewURI) { if (aNewURI.spec == URL && 5 == ++count) { history.removeSHistoryListener(listener); - await SpecialPowers.spawn(browser, [], async () => { - let promise = new Promise(resolve => { - docShell.chromeEventHandler.addEventListener( + await ContentTask.spawn(browser, null, () => { + return new Promise(resolve => { + addEventListener( "load", evt => { let history = docShell.QueryInterface(Ci.nsIWebNavigation) @@ -113,10 +107,9 @@ add_task(async function test() { }, { capture: true, once: true } ); - }); - content.location.reload(); - await promise; + content.location.reload(); + }); }); testDone.resolve(); } diff --git a/docshell/test/browser/browser_bug673467.js b/docshell/test/browser/browser_bug673467.js index 12bcb906ca0f..182cc0ee80b9 100644 --- a/docshell/test/browser/browser_bug673467.js +++ b/docshell/test/browser/browser_bug673467.js @@ -23,9 +23,9 @@ function test() { let taskFinished; let tab = BrowserTestUtils.addTab(gBrowser, doc, {}, tab => { - taskFinished = SpecialPowers.spawn(tab.linkedBrowser, [], () => { + taskFinished = ContentTask.spawn(tab.linkedBrowser, null, () => { return new Promise(resolve => { - docShell.chromeEventHandler.addEventListener( + addEventListener( "load", function() { // The main page has loaded. Now wait for the iframe to load. diff --git a/dom/base/test/browser_bug1058164.js b/dom/base/test/browser_bug1058164.js index d93fa7de207c..40f8a8c132d8 100644 --- a/dom/base/test/browser_bug1058164.js +++ b/dom/base/test/browser_bug1058164.js @@ -203,7 +203,7 @@ add_task(async function test_swap_frameloader_pagevisibility_events() { // Wait for that initial browser to show its pageshow event if it hasn't // happened so that we don't confuse it with the other expected events. - await SpecialPowers.spawn(emptyBrowser, [], async () => { + await ContentTask.spawn(emptyBrowser, null, async () => { if (content.document.visibilityState === "hidden") { info("waiting for hidden emptyBrowser to pageshow"); await ContentTaskUtils.waitForEvent(content, "pageshow", {}); diff --git a/dom/credentialmanagement/tests/browser/browser_active_document.js b/dom/credentialmanagement/tests/browser/browser_active_document.js index ad56c1e7a9f1..2799979f6eaf 100644 --- a/dom/credentialmanagement/tests/browser/browser_active_document.js +++ b/dom/credentialmanagement/tests/browser/browser_active_document.js @@ -16,7 +16,7 @@ function expectNotAllowedError(aResult) { } function promiseMakeCredential(tab) { - return SpecialPowers.spawn(tab.linkedBrowser, [], async function() { + return ContentTask.spawn(tab.linkedBrowser, null, async function() { const cose_alg_ECDSA_w_SHA256 = -7; let publicKey = { @@ -37,7 +37,7 @@ function promiseMakeCredential(tab) { } function promiseGetAssertion(tab) { - return SpecialPowers.spawn(tab.linkedBrowser, [], async function() { + return ContentTask.spawn(tab.linkedBrowser, null, async function() { let newCredential = { type: "public-key", id: content.crypto.getRandomValues(new Uint8Array(16)), diff --git a/dom/html/test/browser_DOMDocElementInserted.js b/dom/html/test/browser_DOMDocElementInserted.js index caef6aaa264d..241b0f93da6a 100644 --- a/dom/html/test/browser_DOMDocElementInserted.js +++ b/dom/html/test/browser_DOMDocElementInserted.js @@ -3,27 +3,16 @@ add_task(async function() { let tab = BrowserTestUtils.addTab(gBrowser); let uri = "data:text/html;charset=utf-8,
"; - let eventPromise = SpecialPowers.spawn(tab.linkedBrowser, [], function() { - const { PromiseUtils } = ChromeUtils.import( - "resource://gre/modules/PromiseUtils.jsm" - ); - let deferred = PromiseUtils.defer(); - - let listener = event => { - docShell.chromeEventHandler.removeEventListener( + let eventPromise = ContentTask.spawn(tab.linkedBrowser, null, function() { + return new Promise(resolve => { + addEventListener( "DOMDocElementInserted", - listener, - true + event => resolve(event.target.documentURIObject.spec), + { + once: true, + } ); - deferred.resolve(event.target.documentURIObject.spec); - }; - docShell.chromeEventHandler.addEventListener( - "DOMDocElementInserted", - listener, - true - ); - - return deferred.promise; + }); }); BrowserTestUtils.loadURI(tab.linkedBrowser, uri); diff --git a/dom/manifest/test/browser_fire_appinstalled_event.js b/dom/manifest/test/browser_fire_appinstalled_event.js index 92fde29d6613..3dd721447fa3 100644 --- a/dom/manifest/test/browser_fire_appinstalled_event.js +++ b/dom/manifest/test/browser_fire_appinstalled_event.js @@ -23,7 +23,7 @@ function enableOnAppInstalledPref() { // This cause file_reg_install_event.html to be dynamically change. async function theTest(aBrowser) { aBrowser.allowEvents = true; - let waitForInstall = SpecialPowers.spawn(aBrowser, [], async function() { + let waitForInstall = ContentTask.spawn(aBrowser, null, async function() { await ContentTaskUtils.waitForEvent(content.window, "appinstalled"); }); const { diff --git a/dom/security/test/csp/browser_test_web_manifest.js b/dom/security/test/csp/browser_test_web_manifest.js index 727c17188c5a..3868eeabe910 100644 --- a/dom/security/test/csp/browser_test_web_manifest.js +++ b/dom/security/test/csp/browser_test_web_manifest.js @@ -223,7 +223,7 @@ function waitForNetObserver(aBrowser, aTest) { return Promise.resolve(); } - return SpecialPowers.spawn(aBrowser, [], () => { + return ContentTask.spawn(aBrowser, [], () => { return new Promise(resolve => { function observe(subject, topic) { Services.obs.removeObserver(observe, "csp-on-violate-policy"); diff --git a/dom/tests/browser/browser_ConsoleStorageAPITests.js b/dom/tests/browser/browser_ConsoleStorageAPITests.js index 4baf210988a2..e5b48eee4c06 100644 --- a/dom/tests/browser/browser_ConsoleStorageAPITests.js +++ b/dom/tests/browser/browser_ConsoleStorageAPITests.js @@ -24,7 +24,7 @@ add_task(async function() { gBrowser.selectedTab = tab; var browser = gBrowser.selectedBrowser; - let observerPromise = SpecialPowers.spawn(browser, [], async function(opt) { + let observerPromise = ContentTask.spawn(browser, null, async function(opt) { const TEST_URI = "http://example.com/browser/dom/tests/browser/test-console-api.html"; let ConsoleAPIStorage = Cc["@mozilla.org/consoleAPI-storage;1"].getService( @@ -93,9 +93,7 @@ add_task(async function() { browser = gBrowser.selectedBrowser; // Spin the event loop to make sure everything is cleared. - await SpecialPowers.spawn(browser, [], function() { - return Promise.resolve(); - }); + await SpecialPowers.spawn(browser, [], () => {}); await SpecialPowers.spawn(browser, [windowId], function(windowId) { var ConsoleAPIStorage = Cc["@mozilla.org/consoleAPI-storage;1"].getService( diff --git a/dom/tests/browser/browser_hasbeforeunload.js b/dom/tests/browser/browser_hasbeforeunload.js index 2b2b8a2e97f1..204d76186428 100644 --- a/dom/tests/browser/browser_hasbeforeunload.js +++ b/dom/tests/browser/browser_hasbeforeunload.js @@ -313,7 +313,7 @@ function controlFrameAt(browser, frameDepth, command) { break; } } - }); + }).catch(Cu.reportError); } /** diff --git a/dom/tests/browser/helper_largeAllocation.js b/dom/tests/browser/helper_largeAllocation.js index 90d1f00ac01c..0117e8500342 100644 --- a/dom/tests/browser/helper_largeAllocation.js +++ b/dom/tests/browser/helper_largeAllocation.js @@ -41,13 +41,13 @@ function expectNoProcess() { } function getPID(aBrowser) { - return SpecialPowers.spawn(aBrowser, [], () => { + return ContentTask.spawn(aBrowser, [], () => { return Services.appinfo.processID; }); } function getInLAProc(aBrowser) { - return SpecialPowers.spawn(aBrowser, [], () => { + return ContentTask.spawn(aBrowser, [], () => { return Services.appinfo.remoteType == "webLargeAllocation"; }); } @@ -80,7 +80,7 @@ async function largeAllocSuccessTests() { is(false, await getInLAProc(aBrowser)); let epc = expectProcessCreated(); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -107,7 +107,7 @@ async function largeAllocSuccessTests() { // Fail the test if we create a process let stopExpectNoProcess = expectNoProcess(); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { // eslint-disable-next-line no-unsanitized/property content.document.body.innerHTML = ``; @@ -138,7 +138,7 @@ async function largeAllocSuccessTests() { // Fail the test if we create a process let stopExpectNoProcess = expectNoProcess(); - let loaded = SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + let loaded = ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.body.innerHTML = ""; return new Promise(resolve => { @@ -173,7 +173,7 @@ async function largeAllocSuccessTests() { let epc = expectProcessCreated(); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -186,7 +186,7 @@ async function largeAllocSuccessTests() { await BrowserTestUtils.browserLoaded(aBrowser); - await SpecialPowers.spawn( + await ContentTask.spawn( aBrowser, [], () => (content.document.location = "about:blank") @@ -200,7 +200,7 @@ async function largeAllocSuccessTests() { epc = expectProcessCreated(); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -221,7 +221,7 @@ async function largeAllocSuccessTests() { let epc = expectProcessCreated(); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -235,7 +235,7 @@ async function largeAllocSuccessTests() { await BrowserTestUtils.browserLoaded(aBrowser); // Switch to about:blank, so we can navigate back - await SpecialPowers.spawn(aBrowser, [], () => { + await ContentTask.spawn(aBrowser, [], () => { content.document.location = "about:blank"; }); @@ -251,7 +251,7 @@ async function largeAllocSuccessTests() { // Navigate back to the previous page. As the large alloation process was // left, it won't be in bfcache and will have to be loaded fresh. - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.window.history.back(); }); @@ -276,7 +276,7 @@ async function largeAllocSuccessTests() { BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -289,7 +289,7 @@ async function largeAllocSuccessTests() { let epc = expectProcessCreated(); - await SpecialPowers.spawn(aBrowser, [TEST_URI_2], TEST_URI_2 => { + await ContentTask.spawn(aBrowser, TEST_URI_2, TEST_URI_2 => { content.document.location = TEST_URI_2; }); @@ -327,7 +327,7 @@ async function largeAllocSuccessTests() { BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -340,7 +340,7 @@ async function largeAllocSuccessTests() { let stopExpectNoProcess = expectNoProcess(); - await SpecialPowers.spawn(aBrowser, [], () => { + await ContentTask.spawn(aBrowser, [], () => { this.__newWindow = content.window.open("about:blank"); content.document.location = "about:blank"; }); @@ -354,7 +354,7 @@ async function largeAllocSuccessTests() { stopExpectNoProcess(); - await SpecialPowers.spawn(aBrowser, [], () => { + await ContentTask.spawn(aBrowser, [], () => { ok(this.__newWindow, "The window should have been stored"); this.__newWindow.close(); }); @@ -372,7 +372,7 @@ async function largeAllocSuccessTests() { BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -390,7 +390,7 @@ async function largeAllocSuccessTests() { gBrowser, "about:blank" ); - await SpecialPowers.spawn(aBrowser, [], () => { + await ContentTask.spawn(aBrowser, [], () => { this.__newWindow = content.window.open("about:blank"); }); await promiseTabOpened; @@ -410,7 +410,7 @@ async function largeAllocSuccessTests() { stopExpectNoProcess(); - await SpecialPowers.spawn(aBrowser, [], () => { + await ContentTask.spawn(aBrowser, [], () => { ok(this.__newWindow, "The window should have been stored"); this.__newWindow.close(); }); @@ -428,7 +428,7 @@ async function largeAllocSuccessTests() { expectProcessCreated(), BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -476,7 +476,7 @@ async function largeAllocSuccessTests() { BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -493,7 +493,7 @@ async function largeAllocSuccessTests() { is(false, await getInLAProc(aBrowser)); let ready = Promise.all([BrowserTestUtils.browserLoaded(aBrowser)]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); await ready; @@ -517,7 +517,7 @@ async function largeAllocSuccessTests() { // Fail the test if we create a process let stopExpectNoProcess = expectNoProcess(); - await SpecialPowers.spawn(aBrowser, [], () => { + await ContentTask.spawn(aBrowser, [], () => { content.document.location = "view-source:http://example.com"; }); @@ -546,7 +546,7 @@ async function largeAllocSuccessTests() { expectProcessCreated(), BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -588,7 +588,7 @@ async function largeAllocSuccessTests() { expectProcessCreated(), BrowserTestUtils.browserLoaded(aBrowser), ]); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); @@ -600,7 +600,7 @@ async function largeAllocSuccessTests() { is(true, await getInLAProc(aBrowser)); await Promise.all([ - SpecialPowers.spawn(aBrowser, [], () => { + ContentTask.spawn(aBrowser, null, () => { content.document.querySelector("#submit").click(); }), BrowserTestUtils.browserLoaded(aBrowser), @@ -632,7 +632,7 @@ async function largeAllocFailTests() { // Fail the test if we create a process let stopExpectNoProcess = expectNoProcess(); - await SpecialPowers.spawn(aBrowser, [TEST_URI], TEST_URI => { + await ContentTask.spawn(aBrowser, TEST_URI, TEST_URI => { content.document.location = TEST_URI; }); diff --git a/dom/webauthn/tests/browser/browser_fido_appid_extension.js b/dom/webauthn/tests/browser/browser_fido_appid_extension.js index ceda86eb9358..782db266370a 100644 --- a/dom/webauthn/tests/browser/browser_fido_appid_extension.js +++ b/dom/webauthn/tests/browser/browser_fido_appid_extension.js @@ -52,7 +52,7 @@ function promiseU2FRegister(tab, app_id) { } function promiseWebAuthnRegister(tab, appid) { - return SpecialPowers.spawn(tab.linkedBrowser, [[appid]], ([appid]) => { + return ContentTask.spawn(tab.linkedBrowser, appid, appid => { const cose_alg_ECDSA_w_SHA256 = -7; let challenge = content.crypto.getRandomValues(new Uint8Array(16)); @@ -84,9 +84,9 @@ function promiseWebAuthnRegister(tab, appid) { } function promiseWebAuthnSign(tab, key_handle, extensions = {}) { - return SpecialPowers.spawn( + return ContentTask.spawn( tab.linkedBrowser, - [[key_handle, extensions]], + [key_handle, extensions], ([key_handle, extensions]) => { let challenge = content.crypto.getRandomValues(new Uint8Array(16)); diff --git a/dom/webauthn/tests/browser/browser_webauthn_prompts.js b/dom/webauthn/tests/browser/browser_webauthn_prompts.js index f0fc74c0c36a..99e1744ea3d4 100644 --- a/dom/webauthn/tests/browser/browser_webauthn_prompts.js +++ b/dom/webauthn/tests/browser/browser_webauthn_prompts.js @@ -51,44 +51,40 @@ function verifyDirectCertificate(attestationObject) { function promiseWebAuthnRegister(tab, attestation = "indirect") { /* eslint-disable no-shadow */ - return SpecialPowers.spawn( - tab.linkedBrowser, - [[attestation]], - ([attestation]) => { - const cose_alg_ECDSA_w_SHA256 = -7; + return ContentTask.spawn(tab.linkedBrowser, attestation, attestation => { + const cose_alg_ECDSA_w_SHA256 = -7; - let challenge = content.crypto.getRandomValues(new Uint8Array(16)); + let challenge = content.crypto.getRandomValues(new Uint8Array(16)); - let pubKeyCredParams = [ - { - type: "public-key", - alg: cose_alg_ECDSA_w_SHA256, - }, - ]; + let pubKeyCredParams = [ + { + type: "public-key", + alg: cose_alg_ECDSA_w_SHA256, + }, + ]; - let publicKey = { - rp: { id: content.document.domain, name: "none", icon: "none" }, - user: { - id: new Uint8Array(), - name: "none", - icon: "none", - displayName: "none", - }, - pubKeyCredParams, - attestation, - challenge, - }; + let publicKey = { + rp: { id: content.document.domain, name: "none", icon: "none" }, + user: { + id: new Uint8Array(), + name: "none", + icon: "none", + displayName: "none", + }, + pubKeyCredParams, + attestation, + challenge, + }; - return content.navigator.credentials - .create({ publicKey }) - .then(cred => cred.response.attestationObject); - } - ); + return content.navigator.credentials + .create({ publicKey }) + .then(cred => cred.response.attestationObject); + }); /* eslint-enable no-shadow */ } function promiseWebAuthnSign(tab) { - return SpecialPowers.spawn(tab.linkedBrowser, [[]], () => { + return ContentTask.spawn(tab.linkedBrowser, null, () => { let challenge = content.crypto.getRandomValues(new Uint8Array(16)); let key_handle = content.crypto.getRandomValues(new Uint8Array(16)); diff --git a/dom/xhr/tests/browser_xhr_onchange_leak.js b/dom/xhr/tests/browser_xhr_onchange_leak.js index fc5f1655e15f..13845ec54570 100644 --- a/dom/xhr/tests/browser_xhr_onchange_leak.js +++ b/dom/xhr/tests/browser_xhr_onchange_leak.js @@ -18,7 +18,7 @@ add_task(async function test() { "http://mochi.test:8888/browser/dom/xhr/tests/browser_xhr_onchange_leak.html"; let newTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, url); let browser = gBrowser.selectedBrowser; - let done = await SpecialPowers.spawn(browser, [], async function() { + let done = await ContentTask.spawn(browser, null, async function() { let promise = ContentTaskUtils.waitForEvent(this, "DOMContentLoaded", true); content.location = "http://mochi.test:8888/"; await promise; diff --git a/js/xpconnect/tests/browser/browser_dead_object.js b/js/xpconnect/tests/browser/browser_dead_object.js index ce2b0ea40395..b101c6484820 100644 --- a/js/xpconnect/tests/browser/browser_dead_object.js +++ b/js/xpconnect/tests/browser/browser_dead_object.js @@ -11,9 +11,9 @@ add_task(async function test() { let newTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, url); let browser = gBrowser.selectedBrowser; let innerWindowId = browser.innerWindowID; - let contentDocDead = await SpecialPowers.spawn( + let contentDocDead = await ContentTask.spawn( browser, - [{ innerWindowId }], + { innerWindowId }, async function(args) { let doc = content.document; let { TestUtils } = ChromeUtils.import( diff --git a/js/xpconnect/tests/browser/browser_exception_leak.js b/js/xpconnect/tests/browser/browser_exception_leak.js index 374a02bd491e..13df33783d25 100644 --- a/js/xpconnect/tests/browser/browser_exception_leak.js +++ b/js/xpconnect/tests/browser/browser_exception_leak.js @@ -12,9 +12,9 @@ add_task(async function test() { let browser = gBrowser.selectedBrowser; let innerWindowId = browser.innerWindowID; - let stackTraceEmpty = await SpecialPowers.spawn( + let stackTraceEmpty = await ContentTask.spawn( browser, - [{ innerWindowId }], + { innerWindowId }, async function(args) { let { TestUtils } = ChromeUtils.import( "resource://testing-common/TestUtils.jsm" diff --git a/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm b/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm index 5e5a53de0651..9c4781ae3cf7 100644 --- a/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm +++ b/testing/mochitest/BrowserTestUtils/BrowserTestUtils.jsm @@ -30,6 +30,7 @@ const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm"); XPCOMUtils.defineLazyModuleGetters(this, { BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.jsm", + ContentTask: "resource://testing-common/ContentTask.jsm", E10SUtils: "resource://gre/modules/E10SUtils.jsm", }); @@ -852,18 +853,14 @@ var BrowserTestUtils = { // We cannot use the regular BrowserTestUtils helper for waiting here, since that // would try to insert the preloaded browser, which would only break things. - await gBrowser.preloadedBrowser.ownerGlobal.SpecialPowers.spawn( - gBrowser.preloadedBrowser, - [], - async () => { - await ContentTaskUtils.waitForCondition(() => { - return ( - this.content.document && - this.content.document.readyState == "complete" - ); - }); - } - ); + await ContentTask.spawn(gBrowser.preloadedBrowser, [], async () => { + await ContentTaskUtils.waitForCondition(() => { + return ( + this.content.document && + this.content.document.readyState == "complete" + ); + }); + }); }, /** diff --git a/toolkit/components/passwordmgr/test/browser/browser_DOMFormHasPassword.js b/toolkit/components/passwordmgr/test/browser/browser_DOMFormHasPassword.js index 550095cebdaa..1079b33eb793 100644 --- a/toolkit/components/passwordmgr/test/browser/browser_DOMFormHasPassword.js +++ b/toolkit/components/passwordmgr/test/browser/browser_DOMFormHasPassword.js @@ -92,7 +92,7 @@ function task(contentIds) { add_task(async function() { let tab = (gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser)); - let promise = SpecialPowers.spawn(tab.linkedBrowser, [ids], task); + let promise = ContentTask.spawn(tab.linkedBrowser, ids, task); BrowserTestUtils.loadURI( tab.linkedBrowser, "data:text/html;charset=utf-8," + diff --git a/toolkit/components/passwordmgr/test/browser/browser_DOMInputPasswordAdded.js b/toolkit/components/passwordmgr/test/browser/browser_DOMInputPasswordAdded.js index 4ab79b6eed1a..bbab34801560 100644 --- a/toolkit/components/passwordmgr/test/browser/browser_DOMInputPasswordAdded.js +++ b/toolkit/components/passwordmgr/test/browser/browser_DOMInputPasswordAdded.js @@ -106,7 +106,7 @@ function task(contentConsts) { add_task(async function() { let tab = (gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser)); - let promise = SpecialPowers.spawn(tab.linkedBrowser, [consts], task); + let promise = ContentTask.spawn(tab.linkedBrowser, consts, task); BrowserTestUtils.loadURI( tab.linkedBrowser, "data:text/html;charset=utf-8," + diff --git a/toolkit/components/passwordmgr/test/browser/browser_context_menu.js b/toolkit/components/passwordmgr/test/browser/browser_context_menu.js index b4d2691b58cf..2bb9645dfa9e 100644 --- a/toolkit/components/passwordmgr/test/browser/browser_context_menu.js +++ b/toolkit/components/passwordmgr/test/browser/browser_context_menu.js @@ -449,9 +449,7 @@ async function assertContextMenuFill( formId, unchangedSelector, }; - let continuePromise = SpecialPowers.spawn(browser, [data], async function( - data - ) { + let continuePromise = ContentTask.spawn(browser, data, async function(data) { let { username, password, diff --git a/toolkit/components/passwordmgr/test/browser/browser_context_menu_generated_password.js b/toolkit/components/passwordmgr/test/browser/browser_context_menu_generated_password.js index 9de53f71bd6c..285405e445f1 100644 --- a/toolkit/components/passwordmgr/test/browser/browser_context_menu_generated_password.js +++ b/toolkit/components/passwordmgr/test/browser/browser_context_menu_generated_password.js @@ -301,9 +301,9 @@ add_task(async function fill_generated_password_with_matching_logins() { await openPasswordContextMenu(browser, passwordInputSelector); // Execute the command of the first login menuitem found at the context menu. - let passwordChangedPromise = SpecialPowers.spawn( + let passwordChangedPromise = ContentTask.spawn( browser, - [], + null, async function() { let passwordInput = content.document.getElementById( "form-basic-password" diff --git a/toolkit/components/passwordmgr/test/browser/head.js b/toolkit/components/passwordmgr/test/browser/head.js index 13ade3c61b84..a165f6e834f9 100644 --- a/toolkit/components/passwordmgr/test/browser/head.js +++ b/toolkit/components/passwordmgr/test/browser/head.js @@ -168,15 +168,13 @@ async function getFormSubmitResponseResult( { username = "#user", password = "#pass" } = {} ) { // default selectors are for the response page produced by formsubmit.sjs - let fieldValues = await SpecialPowers.spawn( + let fieldValues = await ContentTask.spawn( browser, - [ - { - resultURL, - usernameSelector: username, - passwordSelector: password, - }, - ], + { + resultURL, + usernameSelector: username, + passwordSelector: password, + }, async function({ resultURL, usernameSelector, passwordSelector }) { await ContentTaskUtils.waitForCondition(() => { return ( diff --git a/toolkit/content/tests/browser/browser_resume_bkg_video_on_tab_hover.js b/toolkit/content/tests/browser/browser_resume_bkg_video_on_tab_hover.js index 4725f4cb9f08..137f2eda55f6 100644 --- a/toolkit/content/tests/browser/browser_resume_bkg_video_on_tab_hover.js +++ b/toolkit/content/tests/browser/browser_resume_bkg_video_on_tab_hover.js @@ -92,9 +92,9 @@ function get_video_decoding_suspend_promise(browser, reload) { function get_video_decoding_resume_promise(browser) { let suspend = false; let reload = false; - return SpecialPowers.spawn( + return ContentTask.spawn( browser, - [{ suspend, reload }], + { suspend, reload }, check_video_decoding_state ); } diff --git a/toolkit/content/tests/chrome/bug304188_window.xhtml b/toolkit/content/tests/chrome/bug304188_window.xhtml index 26905d78411e..455fce1b74bf 100644 --- a/toolkit/content/tests/chrome/bug304188_window.xhtml +++ b/toolkit/content/tests/chrome/bug304188_window.xhtml @@ -18,7 +18,7 @@ find-menu appears in editor element which has had makeEditable() called but desi