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