/* 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/. */ "use strict"; add_task(async function () { // Making sure that the e10s is enabled on Windows for testing. await setE10sPrefs(); await BrowserTestUtils.withNewTab( { gBrowser, url: `data:text/html, Accessibility Test `, }, async function (browser) { info("Creating a service in content"); await loadContentScripts(browser, { script: "Common.sys.mjs", symbol: "CommonUtils", }); // Create a11y service in the content process. const [a11yInitObserver, a11yInit] = initAccService(browser); await a11yInitObserver; await SpecialPowers.spawn(browser, [], () => { content.CommonUtils.accService; }); await a11yInit; ok( true, "Accessibility service is started in content process correctly." ); info("Removing a service in content"); // Remove a11y service reference from the content process. const [a11yShutdownObserver, a11yShutdown] = shutdownAccService(browser); await a11yShutdownObserver; // Force garbage collection that should trigger shutdown. await SpecialPowers.spawn(browser, [], () => { content.CommonUtils.clearAccService(); }); await a11yShutdown; ok( true, "Accessibility service is shutdown in content process correctly." ); // Unsetting e10s related preferences. await unsetE10sPrefs(); } ); });