| Index: lib/windowObserver.js | 
| diff --git a/lib/windowObserver.js b/lib/windowObserver.js | 
| deleted file mode 100644 | 
| index 7d34f8acc7a13423a7ddb09f89ae43bec258b37c..0000000000000000000000000000000000000000 | 
| --- a/lib/windowObserver.js | 
| +++ /dev/null | 
| @@ -1,99 +0,0 @@ | 
| -/* 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/. */ | 
| - | 
| -Cu.import("resource://gre/modules/Services.jsm"); | 
| -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); | 
| - | 
| -exports.WindowObserver = WindowObserver; | 
| - | 
| -/** | 
| - * This class will call listener's method applyToWindow() for all new chrome | 
| - * windows being opened. It will also call listener's method removeFromWindow() | 
| - * for all windows still open when the extension is shut down. | 
| - * @param {Object} listener | 
| - * @param {String} [when] when to execute applyToWindow(). "start" means immediately | 
| - * when the window opens, "ready" when its contents are available | 
| - * and "end" (default) means to wait until the "load" event. | 
| - * @constructor | 
| - */ | 
| -function WindowObserver(listener, when) | 
| -{ | 
| - this._listener = listener; | 
| - this._when = when; | 
| - | 
| - let windows = []; | 
| - let e = Services.wm.getZOrderDOMWindowEnumerator(null, true); | 
| - while (e.hasMoreElements()) | 
| - windows.push(e.getNext()); | 
| - | 
| - // Check if there are any windows that we missed | 
| - let eAll = Services.ww.getWindowEnumerator(); | 
| - while (eAll.hasMoreElements()) | 
| - { | 
| - let element = eAll.getNext(); | 
| - if (windows.indexOf(element) < 0) | 
| - windows.push(element); | 
| - } | 
| - | 
| - for (let i = 0; i < windows.length; i++) | 
| - { | 
| - let window = windows[i].QueryInterface(Ci.nsIDOMWindow); | 
| - if (when == "start" || window.document.readyState == "complete") | 
| - this._listener.applyToWindow(window); | 
| - else | 
| - this.observe(window, "chrome-document-global-created", null); | 
| - } | 
| - | 
| - Services.obs.addObserver(this, "chrome-document-global-created", true); | 
| - | 
| - this._shutdownHandler = function() | 
| - { | 
| - let e = Services.ww.getWindowEnumerator(); | 
| - while (e.hasMoreElements()) | 
| - this._listener.removeFromWindow(e.getNext().QueryInterface(Ci.nsIDOMWindow)); | 
| - | 
| - Services.obs.removeObserver(this, "chrome-document-global-created"); | 
| - }.bind(this); | 
| - onShutdown.add(this._shutdownHandler); | 
| -} | 
| -WindowObserver.prototype = | 
| -{ | 
| - _listener: null, | 
| - _when: null, | 
| - _shutdownHandler: null, | 
| - | 
| - shutdown: function() | 
| - { | 
| - if (!this._shutdownHandler) | 
| - return; | 
| - | 
| - onShutdown.remove(this._shutdownHandler); | 
| - this._shutdownHandler(); | 
| - this._shutdownHandler = null; | 
| - }, | 
| - | 
| - observe: function(subject, topic, data) | 
| - { | 
| - if (topic == "chrome-document-global-created") | 
| - { | 
| - let window = subject.QueryInterface(Ci.nsIDOMWindow); | 
| - if (this._when == "start") | 
| - { | 
| - this._listener.applyToWindow(window); | 
| - return; | 
| - } | 
| - | 
| - let event = (this._when == "ready" ? "DOMContentLoaded" : "load"); | 
| - let listener = function() | 
| - { | 
| - window.removeEventListener(event, listener, false); | 
| - if (this._shutdownHandler) | 
| - this._listener.applyToWindow(window); | 
| - }.bind(this); | 
| - window.addEventListener(event, listener, false); | 
| - } | 
| - }, | 
| - | 
| - QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver]) | 
| -}; |