| Index: lib/appSupport.js | 
| =================================================================== | 
| --- a/lib/appSupport.js | 
| +++ b/lib/appSupport.js | 
| @@ -207,58 +207,16 @@ exports.removeBrowserLocationListeners = | 
| { | 
| let listeners = progressListeners.get(window); | 
| for (let i = 0; i < listeners.length; i++) | 
| browser.removeProgressListener(listeners[i]); | 
| } | 
| progressListeners.delete(window); | 
| }; | 
|  | 
| -/** | 
| - * Maps windows to a list of click listeners. | 
| - */ | 
| -let clickListeners = new WeakMap(); | 
| - | 
| -/** | 
| - * Makes sure that a function is called whenever the user clicks inside the | 
| - * browser's content area. | 
| - */ | 
| -exports.addBrowserClickListener = function addBrowserClickListener(/**Window*/ window, /**Function*/ callback) | 
| -{ | 
| -  let browser = (exports.getBrowser ? exports.getBrowser(window) : null); | 
| -  if (browser) | 
| -  { | 
| -    browser.addEventListener("click", callback, true); | 
| - | 
| -    if (clickListeners.has(window)) | 
| -      clickListeners.get(window).push(callback); | 
| -    else | 
| -      clickListeners.set(window, [callback]); | 
| -  } | 
| -}; | 
| - | 
| -/** | 
| - * Removes all click listeners registered for a window, to be called on | 
| - * cleanup. | 
| - */ | 
| -exports.removeBrowserClickListeners = function removeBrowserClickListeners(/**Window*/ window) | 
| -{ | 
| -  if (!clickListeners.has(window)) | 
| -    return; | 
| - | 
| -  let browser = (exports.getBrowser ? exports.getBrowser(window) : null); | 
| -  if (browser) | 
| -  { | 
| -    let listeners = clickListeners.get(window); | 
| -    for (let i = 0; i < listeners.length; i++) | 
| -      browser.removeEventListener("click", listeners[i], true); | 
| -  } | 
| -  clickListeners.delete(window); | 
| -}; | 
| - | 
| let {application} = require("info"); | 
| switch (application) | 
| { | 
| case "firefox": | 
| { | 
| exports.isKnownWindow = function ff_isKnownWindow(window) | 
| { | 
| return (window.document.documentElement.getAttribute("windowtype") == "navigator:browser"); | 
| @@ -354,17 +312,17 @@ switch (application) | 
| } | 
| } | 
| else | 
| { | 
| let browser = exports.getBrowser(window); | 
| return (browser ? browser.currentURI : null); | 
| } | 
| }; | 
| - | 
| + | 
| // for Seamonkey we have to ignore same document flag because of | 
| // bug #1035171 (https://bugzilla.mozilla.org/show_bug.cgi?id=1035171) | 
| let origAddBrowserLocationListener = exports.addBrowserLocationListener; | 
| exports.addBrowserLocationListener = function sm_addBrowserLocationListener(window, callback, ignoreSameDoc) | 
| { | 
| origAddBrowserLocationListener(window, callback, false); | 
| }; | 
|  | 
| @@ -612,50 +570,16 @@ switch (application) | 
| let index = ("gMessageListeners" in window ? window.gMessageListeners.indexOf(messageListener) : -1); | 
| if (index >= 0) | 
| window.gMessageListeners.splice(index, 1); | 
|  | 
| listener.detach(); | 
| progressListeners.delete(window); | 
| }; | 
|  | 
| -    exports.addBrowserClickListener = function addBrowserClickListener(/**Window*/ window, /**Function*/ callback) | 
| -    { | 
| -      if (clickListeners.has(window)) | 
| -      { | 
| -        clickListeners.get(window).callbacks.push(callback); | 
| -        return; | 
| -      } | 
| - | 
| -      let callbacks = [callback]; | 
| -      let listener = new BrowserChangeListener(window, function(oldBrowser, newBrowser) | 
| -      { | 
| -        if (oldBrowser) | 
| -          for (let i = 0; i < callbacks.length; i++) | 
| -            oldBrowser.removeEventListener("click", callbacks[i], true); | 
| -        if (newBrowser) | 
| -          for (let i = 0; i < callbacks.length; i++) | 
| -            newBrowser.addEventListener("click", callbacks[i], true); | 
| -      }); | 
| -      listener.callbacks = callbacks; | 
| - | 
| -      clickListeners.set(window, listener); | 
| -    }; | 
| - | 
| -    exports.removeBrowserClickListeners = function removeBrowserClickListeners(/**Window*/ window) | 
| -    { | 
| -      if (!clickListeners.has(window)) | 
| -        return; | 
| - | 
| -      let listener = clickListeners.get(window); | 
| -      listener.detach(); | 
| - | 
| -      clickListeners.delete(window); | 
| -    }; | 
| - | 
| // Make sure to close/reopen list of blockable items when the user changes tabs | 
| let {WindowObserver} = require("windowObserver"); | 
| new WindowObserver({ | 
| listeners: new WeakMap(), | 
| applyToWindow: function(window) | 
| { | 
| if (!exports.isKnownWindow(window) || this.listeners.has(window)) | 
| return; | 
| @@ -801,50 +725,16 @@ switch (application) | 
| if (!progressListeners.has(window)) | 
| return; | 
|  | 
| let listener = progressListeners.get(window); | 
| listener.detach(); | 
| progressListeners.delete(window); | 
| }; | 
|  | 
| -    exports.addBrowserClickListener = function ffn_addBrowserClickListener(/**Window*/ window, /**Function*/ callback) | 
| -    { | 
| -      if (clickListeners.has(window)) | 
| -      { | 
| -        clickListeners.get(window).callbacks.push(callback); | 
| -        return; | 
| -      } | 
| - | 
| -      let callbacks = [callback]; | 
| -      let listener = new BrowserChangeListener(window, function(oldBrowser, newBrowser) | 
| -      { | 
| -        if (oldBrowser) | 
| -          for (let i = 0; i < callbacks.length; i++) | 
| -            oldBrowser.removeEventListener("click", callbacks[i], true); | 
| -        if (newBrowser) | 
| -          for (let i = 0; i < callbacks.length; i++) | 
| -            newBrowser.addEventListener("click", callbacks[i], true); | 
| -      }); | 
| -      listener.callbacks = callbacks; | 
| - | 
| -      clickListeners.set(window, listener); | 
| -    }; | 
| - | 
| -    exports.removeBrowserClickListeners = function ffn_removeBrowserClickListeners(/**Window*/ window) | 
| -    { | 
| -      if (!clickListeners.has(window)) | 
| -        return; | 
| - | 
| -      let listener = clickListeners.get(window); | 
| -      listener.detach(); | 
| - | 
| -      clickListeners.delete(window); | 
| -    }; | 
| - | 
| let {Filter} = require("filterClasses"); | 
| let {Prefs} = require("prefs"); | 
| let {Policy} = require("contentPolicy"); | 
| let {UI} = require("ui"); | 
| let {Utils} = require("utils"); | 
|  | 
| let toggleWhitelist = function(window) | 
| { | 
|  |