diff options
Diffstat (limited to 'addon-sdk/source/test/addons/e10s-remote/utils.js')
-rw-r--r-- | addon-sdk/source/test/addons/e10s-remote/utils.js | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/addon-sdk/source/test/addons/e10s-remote/utils.js b/addon-sdk/source/test/addons/e10s-remote/utils.js deleted file mode 100644 index f30f4f3a4..000000000 --- a/addon-sdk/source/test/addons/e10s-remote/utils.js +++ /dev/null @@ -1,110 +0,0 @@ -/* 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"; - -const { Cu } = require('chrome'); -const { Task: { async } } = Cu.import('resource://gre/modules/Task.jsm', {}); -const { getMostRecentBrowserWindow } = require('sdk/window/utils'); - -const REMOTE_MODULE = "./remote-module"; - -function promiseEvent(emitter, event) { - console.log("Waiting for " + event); - return new Promise(resolve => { - emitter.once(event, (...args) => { - console.log("Saw " + event); - resolve(args); - }); - }); -} -exports.promiseEvent = promiseEvent; - -function promiseDOMEvent(target, event, isCapturing = false) { - console.log("Waiting for " + event); - return new Promise(resolve => { - let listener = (event) => { - target.removeEventListener(event, listener, isCapturing); - resolve(event); - }; - target.addEventListener(event, listener, isCapturing); - }) -} -exports.promiseDOMEvent = promiseDOMEvent; - -const promiseEventOnItemAndContainer = async(function*(assert, itemport, container, event, item = itemport) { - let itemEvent = promiseEvent(itemport, event); - let containerEvent = promiseEvent(container, event); - - let itemArgs = yield itemEvent; - let containerArgs = yield containerEvent; - - assert.equal(containerArgs[0], item, "Should have seen a container event for the right item"); - assert.equal(JSON.stringify(itemArgs), JSON.stringify(containerArgs), "Arguments should have matched"); - - // Strip off the item from the returned arguments - return itemArgs.slice(1); -}); -exports.promiseEventOnItemAndContainer = promiseEventOnItemAndContainer; - -const waitForProcesses = async(function*(loader) { - console.log("Starting remote"); - let { processes, frames, remoteRequire } = loader.require('sdk/remote/parent'); - remoteRequire(REMOTE_MODULE, module); - - let events = []; - - // In e10s we should expect to see two processes - let expectedCount = isE10S ? 2 : 1; - - yield new Promise(resolve => { - let count = 0; - - // Wait for a process to be detected - let listener = process => { - console.log("Saw a process attach"); - // Wait for the remote module to load in this process - process.port.once('sdk/test/load', () => { - console.log("Saw a remote module load"); - count++; - if (count == expectedCount) { - processes.off('attach', listener); - resolve(); - } - }); - } - processes.on('attach', listener); - }); - - console.log("Remote ready"); - return { processes, frames, remoteRequire }; -}); -exports.waitForProcesses = waitForProcesses; - -// Counts the frames in all the child processes -const getChildFrameCount = async(function*(processes) { - let frameCount = 0; - - for (let process of processes) { - process.port.emit('sdk/test/count'); - let [p, count] = yield promiseEvent(process.port, 'sdk/test/count'); - frameCount += count; - } - - return frameCount; -}); -exports.getChildFrameCount = getChildFrameCount; - -const mainWindow = getMostRecentBrowserWindow(); -const isE10S = mainWindow.gMultiProcessBrowser; -exports.isE10S = isE10S; - -if (isE10S) { - console.log("Testing in E10S mode"); - // We expect a child process to already be present, make sure that is the case - mainWindow.XULBrowserWindow.forceInitialBrowserRemote(); -} -else { - console.log("Testing in non-E10S mode"); -} |