mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-09 08:47:31 +09:00
65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
|
|
/* 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 { getMostRecentBrowserWindow, isBrowser } = require('sdk/window/utils');
|
||
|
|
const { promise: windowPromise, close, focus } = require('sdk/window/helpers');
|
||
|
|
const { openTab, closeTab, getBrowserForTab } = require('sdk/tabs/utils');
|
||
|
|
const { WindowTracker } = require('sdk/deprecated/window-utils');
|
||
|
|
const { version, platform } = require('sdk/system');
|
||
|
|
const { when } = require('sdk/system/unload');
|
||
|
|
const tabs = require('sdk/tabs');
|
||
|
|
|
||
|
|
const SKIPPING_TESTS = {
|
||
|
|
"test skip": (assert) => assert.pass("nothing to test here")
|
||
|
|
};
|
||
|
|
|
||
|
|
exports.testTabIsRemote = function(assert, done) {
|
||
|
|
const url = 'data:text/html,test-tab-is-remote';
|
||
|
|
let tab = openTab(getMostRecentBrowserWindow(), url);
|
||
|
|
assert.ok(tab.linkedBrowser.isRemoteBrowser, "The new tab should be remote");
|
||
|
|
|
||
|
|
// can't simply close a remote tab before it is loaded, bug 1006043
|
||
|
|
let mm = getBrowserForTab(tab).messageManager;
|
||
|
|
mm.addMessageListener('7', function listener() {
|
||
|
|
mm.removeMessageListener('7', listener);
|
||
|
|
tabs.once('close', done);
|
||
|
|
closeTab(tab);
|
||
|
|
})
|
||
|
|
mm.loadFrameScript('data:,sendAsyncMessage("7")', true);
|
||
|
|
}
|
||
|
|
|
||
|
|
// run e10s tests only on builds from trunk, fx-team, Nightly..
|
||
|
|
if (!version.endsWith('a1')) {
|
||
|
|
module.exports = {};
|
||
|
|
}
|
||
|
|
|
||
|
|
function replaceWindow(remote) {
|
||
|
|
let next = null;
|
||
|
|
let old = getMostRecentBrowserWindow();
|
||
|
|
let promise = new Promise(resolve => {
|
||
|
|
let tracker = WindowTracker({
|
||
|
|
onTrack: window => {
|
||
|
|
if (window !== next)
|
||
|
|
return;
|
||
|
|
resolve(window);
|
||
|
|
tracker.unload();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
})
|
||
|
|
next = old.OpenBrowserWindow({ remote });
|
||
|
|
return promise.then(focus).then(_ => close(old));
|
||
|
|
}
|
||
|
|
|
||
|
|
// bug 1054482 - e10s test addons time out on linux
|
||
|
|
if (platform === 'linux') {
|
||
|
|
module.exports = SKIPPING_TESTS;
|
||
|
|
require('sdk/test/runner').runTestsFromModule(module);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
replaceWindow(true).then(_ =>
|
||
|
|
require('sdk/test/runner').runTestsFromModule(module));
|
||
|
|
|
||
|
|
when(_ => replaceWindow(false));
|
||
|
|
}
|