diff -r 000000000000 -r 6474c204b198 layout/tools/reftest/bootstrap.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layout/tools/reftest/bootstrap.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,73 @@ +Components.utils.import("resource://gre/modules/FileUtils.jsm"); + +function loadIntoWindow(window) {} +function unloadFromWindow(window) {} + +function setDefaultPrefs() { + // This code sets the preferences for extension-based reftest. + var prefs = Components.classes["@mozilla.org/preferences-service;1"]. + getService(Components.interfaces.nsIPrefService); + var branch = prefs.getDefaultBranch(""); + +#include reftest-preferences.js +} + +var windowListener = { + onOpenWindow: function(aWindow) { + let domWindow = aWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowInternal || Components.interfaces.nsIDOMWindow); + domWindow.addEventListener("load", function() { + domWindow.removeEventListener("load", arguments.callee, false); + + let wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator); + + // Load into any existing windows + let enumerator = wm.getEnumerator("navigator:browser"); + while (enumerator.hasMoreElements()) { + let win = enumerator.getNext().QueryInterface(Components.interfaces.nsIDOMWindow); + setDefaultPrefs(); + Components.utils.import("chrome://reftest/content/reftest.jsm"); + win.addEventListener("pageshow", function() { + win.removeEventListener("pageshow", arguments.callee); + // We add a setTimeout here because windows.innerWidth/Height are not set yet; + win.setTimeout(function () {OnRefTestLoad(win);}, 0); + }); + break; + } + }, false); + }, + onCloseWindow: function(aWindow){ }, + onWindowTitleChange: function(){ }, +}; + +function startup(aData, aReason) { + let wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]. + getService (Components.interfaces.nsIWindowMediator); + + Components.manager.addBootstrappedManifestLocation(aData.installPath); + + // Load into any new windows + wm.addListener(windowListener); +} + +function shutdown(aData, aReason) { + // When the application is shutting down we normally don't have to clean up any UI changes + if (aReason == APP_SHUTDOWN) + return; + + let wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]. + getService(Components.interfaces.nsIWindowMediator); + + // Stop watching for new windows + wm.removeListener(windowListener); + + // Unload from any existing windows + let enumerator = wm.getEnumerator("navigator:browser"); + while (enumerator.hasMoreElements()) { + let win = enumerator.getNext().QueryInterface(Components.interfaces.nsIDOMWindow); + unloadFromWindow(win); + } +} + +function install(aData, aReason) { } +function uninstall(aData, aReason) { } +