mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 04:15:43 +00:00
Bug 1233497 - Don't yield or resolve CPOWs from Tasks or Promises in devtools tests. r=jryans
--HG-- extra : commitid : 9JIJ8ndwr2V extra : rebase_source : b8f3d16cc2868f9f3d85aaee6129ddc8b2deb714
This commit is contained in:
parent
94474914fb
commit
1f5ff0f8bb
@ -197,8 +197,12 @@ add_task(function*() {
|
||||
|
||||
yield findVariableViewProperties([{name: "ss2", value: "changed=ss2"}]);
|
||||
|
||||
// Clearing items
|
||||
yield gWindow.clear();
|
||||
// Clearing items. Bug 1233497 makes it so that we can no longer yield
|
||||
// CPOWs from Tasks. We work around this by calling clear via a ContentTask
|
||||
// instead.
|
||||
yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
|
||||
return Task.spawn(content.wrappedJSObject.clear);
|
||||
});
|
||||
|
||||
yield gUI.once("store-objects-cleared");
|
||||
|
||||
|
@ -203,41 +203,44 @@ function forceCollections() {
|
||||
Cu.forceShrinkingGC();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all windows including frames recursively.
|
||||
*
|
||||
* @param {Window} [baseWindow]
|
||||
* The base window at which to start looking for child windows
|
||||
* (optional).
|
||||
* @return {Set}
|
||||
* A set of windows.
|
||||
*/
|
||||
function getAllWindows(baseWindow=gWindow) {
|
||||
let windows = new Set();
|
||||
|
||||
let _getAllWindows = function(win) {
|
||||
windows.add(win);
|
||||
|
||||
for (let i = 0; i < win.length; i++) {
|
||||
_getAllWindows(win[i]);
|
||||
}
|
||||
};
|
||||
_getAllWindows(baseWindow);
|
||||
|
||||
return windows;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up and finishes the test
|
||||
*/
|
||||
function* finishTests() {
|
||||
for (let win of getAllWindows()) {
|
||||
if (win.clear) {
|
||||
console.log("Clearing cookies, localStorage and indexedDBs from " +
|
||||
win.document.location);
|
||||
yield win.clear();
|
||||
// Bug 1233497 makes it so that we can no longer yield CPOWs from Tasks.
|
||||
// We work around this by calling clear() via a ContentTask instead.
|
||||
yield ContentTask.spawn(gBrowser.selectedBrowser, null, function*() {
|
||||
/**
|
||||
* Get all windows including frames recursively.
|
||||
*
|
||||
* @param {Window} [baseWindow]
|
||||
* The base window at which to start looking for child windows
|
||||
* (optional).
|
||||
* @return {Set}
|
||||
* A set of windows.
|
||||
*/
|
||||
function getAllWindows(baseWindow) {
|
||||
let windows = new Set();
|
||||
|
||||
let _getAllWindows = function(win) {
|
||||
windows.add(win);
|
||||
|
||||
for (let i = 0; i < win.length; i++) {
|
||||
_getAllWindows(win[i]);
|
||||
}
|
||||
};
|
||||
_getAllWindows(baseWindow);
|
||||
|
||||
return windows;
|
||||
}
|
||||
}
|
||||
|
||||
let windows = getAllWindows(content.wrappedJSObject);
|
||||
for (let win of windows) {
|
||||
if (win.clear) {
|
||||
yield Task.spawn(win.clear);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
forceCollections();
|
||||
finish();
|
||||
|
@ -18,7 +18,8 @@ const {
|
||||
const TEST_URL = "data:text/html;charset=utf-8,CanvasFrameAnonymousContentHelper test";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(TEST_URL);
|
||||
let browser = yield addTab(TEST_URL);
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
let nodeBuilder = () => {
|
||||
let root = doc.createElement("div");
|
||||
|
@ -18,7 +18,8 @@ const {
|
||||
} = require("devtools/server/actors/highlighters/utils/markup");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab("about:preferences");
|
||||
let browser = yield addTab("about:preferences");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
let nodeBuilder = () => {
|
||||
let root = doc.createElement("div");
|
||||
|
@ -19,7 +19,8 @@ const {
|
||||
const TEST_URL = "data:text/html;charset=utf-8,CanvasFrameAnonymousContentHelper test";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(TEST_URL);
|
||||
let browser = yield addTab(TEST_URL);
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
let nodeBuilder = () => {
|
||||
let root = doc.createElement("div");
|
||||
|
@ -22,7 +22,8 @@ const TEST_URL_1 = "data:text/html;charset=utf-8,CanvasFrameAnonymousContentHelp
|
||||
const TEST_URL_2 = "data:text/html;charset=utf-8,CanvasFrameAnonymousContentHelper test 2";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(TEST_URL_2);
|
||||
let browser = yield addTab(TEST_URL_2);
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
let nodeBuilder = () => {
|
||||
let root = doc.createElement("div");
|
||||
|
@ -20,7 +20,8 @@ const {
|
||||
const TEST_URL = "data:text/html;charset=utf-8,CanvasFrameAnonymousContentHelper test";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(TEST_URL);
|
||||
let browser = yield addTab(TEST_URL);
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
let nodeBuilder = () => {
|
||||
let root = doc.createElement("div");
|
||||
|
@ -20,7 +20,8 @@ const {
|
||||
const TEST_URL = "data:text/html;charset=utf-8,CanvasFrameAnonymousContentHelper test";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(TEST_URL);
|
||||
let browser = yield addTab(TEST_URL);
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
let nodeBuilder = () => {
|
||||
let root = doc.createElement("div");
|
||||
|
@ -8,7 +8,8 @@ const {DirectorManagerFront} = require("devtools/server/actors/director-manager"
|
||||
const {DirectorRegistry} = require("devtools/server/actors/director-registry");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "director-script-target.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "director-script-target.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -8,7 +8,8 @@ const {DirectorManagerFront} = require("devtools/server/actors/director-manager"
|
||||
const {DirectorRegistry} = require("devtools/server/actors/director-registry");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "director-script-target.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "director-script-target.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -10,7 +10,8 @@ const {DirectorRegistry} = require("devtools/server/actors/director-registry");
|
||||
DirectorRegistry.clear();
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "director-script-target.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "director-script-target.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -12,7 +12,8 @@ add_task(function*() {
|
||||
// This test runs very slowly on linux32 debug EC2 instances.
|
||||
requestLongerTimeout(2);
|
||||
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_force_cc.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_force_cc.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@ const { TimelineFront } = require("devtools/server/actors/timeline");
|
||||
const MARKER_NAMES = ["document::DOMContentLoaded", "document::Load"];
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@ const { TimelineFront } = require("devtools/server/actors/timeline");
|
||||
const MARKER_NAMES = ["document::DOMContentLoaded", "document::Load"];
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@ const { TimelineFront } = require("devtools/server/actors/timeline");
|
||||
const MARKER_NAMES = ["document::DOMContentLoaded", "document::Load"];
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@ const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
const MARKER_NAME = "GarbageCollection";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_force_gc.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_force_gc.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@ const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
const MARKER_NAME = "Parse HTML";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_innerHTML.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@ const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
const MARKER_NAME = "Styles";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -10,7 +10,8 @@ const { consoleMethod, PMM_loadFrameScripts } = require("devtools/shared/perform
|
||||
const MARKER_NAME = "TimeStamp";
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -117,7 +117,8 @@ function getServerTabActor(callback) {
|
||||
|
||||
function test() {
|
||||
// Open a test tab
|
||||
addTab(URL1).then(function(doc) {
|
||||
addTab(URL1).then(function(browser) {
|
||||
let doc = browser.contentDocument;
|
||||
getServerTabActor(function (tabActor) {
|
||||
// In order to listen to internal will-navigate/navigate events
|
||||
events.on(tabActor, "will-navigate", function (data) {
|
||||
@ -128,7 +129,6 @@ function test() {
|
||||
});
|
||||
|
||||
// Start listening for page load events
|
||||
let browser = gBrowser.selectedBrowser;
|
||||
browser.addEventListener("DOMContentLoaded", onDOMContentLoaded, true);
|
||||
browser.addEventListener("load", onLoad, true);
|
||||
|
||||
|
@ -8,7 +8,8 @@
|
||||
const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_allocations.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_allocations.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -11,7 +11,8 @@ const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
const { sendProfilerCommand, PMM_isProfilerActive, PMM_stopProfiler, PMM_loadFrameScripts } = require("devtools/shared/performance/process-communication");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -8,7 +8,8 @@
|
||||
const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -9,7 +9,8 @@
|
||||
const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -11,7 +11,8 @@ var config = { bufferSize: BUFFER_SIZE };
|
||||
const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -11,7 +11,8 @@ const WAIT_TIME = 1000; // ms
|
||||
const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -12,7 +12,8 @@ const WAIT_TIME = 1000; // ms
|
||||
const { PerformanceFront } = require("devtools/server/actors/performance");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -302,7 +302,8 @@ function testRemoveIframe() {
|
||||
}
|
||||
|
||||
function test() {
|
||||
addTab(MAIN_DOMAIN + "storage-dynamic-windows.html").then(function(doc) {
|
||||
addTab(MAIN_DOMAIN + "storage-dynamic-windows.html").then(function(browser) {
|
||||
let doc = browser.contentDocument;
|
||||
initDebuggerServer();
|
||||
|
||||
let createConnection = () => {
|
||||
|
@ -636,7 +636,8 @@ var testIDBEntries = Task.async(function*(index, hosts, indexedDBActor) {
|
||||
});
|
||||
|
||||
function test() {
|
||||
addTab(MAIN_DOMAIN + "storage-listings.html").then(function(doc) {
|
||||
addTab(MAIN_DOMAIN + "storage-listings.html").then(function(browser) {
|
||||
let doc = browser.contentDocument;
|
||||
initDebuggerServer();
|
||||
|
||||
let createConnection = () => {
|
||||
|
@ -282,7 +282,8 @@ function* finishTests(client) {
|
||||
}
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "storage-updates.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "storage-updates.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
|
||||
|
@ -10,7 +10,8 @@
|
||||
const {StyleSheetsFront} = require("devtools/server/actors/stylesheets");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "stylesheets-nested-iframes.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "stylesheets-nested-iframes.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
info("Initialising the debugger server and client.");
|
||||
initDebuggerServer();
|
||||
|
@ -13,7 +13,8 @@
|
||||
const {TimelineFront} = require("devtools/server/actors/timeline");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab("data:text/html;charset=utf-8,mop");
|
||||
let browser = yield addTab("data:text/html;charset=utf-8,mop");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -10,7 +10,8 @@
|
||||
const {TimelineFront} = require("devtools/server/actors/timeline");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab("data:text/html;charset=utf-8,mop");
|
||||
let browser = yield addTab("data:text/html;charset=utf-8,mop");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -10,7 +10,8 @@
|
||||
const {TimelineFront} = require("devtools/server/actors/timeline");
|
||||
|
||||
add_task(function*() {
|
||||
let doc = yield addTab(MAIN_DOMAIN + "timeline-iframe-parent.html");
|
||||
let browser = yield addTab(MAIN_DOMAIN + "timeline-iframe-parent.html");
|
||||
let doc = browser.contentDocument;
|
||||
|
||||
initDebuggerServer();
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
@ -25,7 +25,10 @@ waitForExplicitFinish();
|
||||
/**
|
||||
* Add a new test tab in the browser and load the given url.
|
||||
* @param {String} url The url to be loaded in the new tab
|
||||
* @return a promise that resolves to the document when the url is loaded
|
||||
* @return a promise that resolves to the new browser that the document
|
||||
* is loaded in. Note that we cannot return the document
|
||||
* directly, since this would be a CPOW in the e10s case,
|
||||
* and Promises cannot be resolved with CPOWs (see bug 1233497).
|
||||
*/
|
||||
var addTab = Task.async(function* (url) {
|
||||
info("Adding a new tab with URL: '" + url + "'");
|
||||
@ -42,7 +45,7 @@ var addTab = Task.async(function* (url) {
|
||||
waitForFocus(resolve, content, isBlank);
|
||||
});
|
||||
|
||||
return tab.linkedBrowser.contentWindow.document;
|
||||
return tab.linkedBrowser;
|
||||
});
|
||||
|
||||
function* initAnimationsFrontForUrl(url) {
|
||||
|
Loading…
Reference in New Issue
Block a user