diff --git a/browser/devtools/commandline/test/browser_cmd_screenshot.js b/browser/devtools/commandline/test/browser_cmd_screenshot.js index f3f8463b1b88..3265fc3b15b3 100644 --- a/browser/devtools/commandline/test/browser_cmd_screenshot.js +++ b/browser/devtools/commandline/test/browser_cmd_screenshot.js @@ -170,9 +170,7 @@ function addWindow(windowOptions, callback) { let win = OpenBrowserWindow(windowOptions); - let onLoad = function() { - win.removeEventListener("load", onLoad, false); - + whenDelayedStartupFinished(win, function() { // Would like to get rid of this executeSoon, but without it the url // (TEST_URI) provided in addTabWithToolbarRunTests hasn't loaded executeSoon(function() { @@ -187,9 +185,7 @@ function addWindow(windowOptions, callback) { deferred.reject(ex); } }); - }; - - win.addEventListener("load", onLoad, false); + }); return deferred.promise; } diff --git a/browser/devtools/commandline/test/head.js b/browser/devtools/commandline/test/head.js index c7e71fea3bd6..40762de18dd1 100644 --- a/browser/devtools/commandline/test/head.js +++ b/browser/devtools/commandline/test/head.js @@ -10,6 +10,15 @@ let testDir = gTestPath.substr(0, gTestPath.lastIndexOf("/")); Services.scriptloader.loadSubScript(testDir + "/helpers.js", this); Services.scriptloader.loadSubScript(testDir + "/mockCommands.js", this); +function whenDelayedStartupFinished(aWindow, aCallback) { + Services.obs.addObserver(function observer(aSubject, aTopic) { + if (aWindow == aSubject) { + Services.obs.removeObserver(observer, aTopic); + executeSoon(aCallback); + } + }, "browser-delayed-startup-finished", false); +} + /** * Force GC on shutdown, because it seems that GCLI can outrun the garbage * collector in some situations, which causes test failures in later tests