From d8cf1e9fb53dc262f6deb8633c5ecc43240c82ef Mon Sep 17 00:00:00 2001 From: Einar Egilsson Date: Wed, 23 Sep 2015 12:07:12 +0000 Subject: Mostly working, dead object problems --- js/background.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'js/background.js') diff --git a/js/background.js b/js/background.js index 81bf405..16c052f 100644 --- a/js/background.js +++ b/js/background.js @@ -18,6 +18,10 @@ if (typeof chrome == 'undefined') { firefoxShim.setLogger(log); chrome = firefoxShim.chrome; Redirect = firefoxShim.Redirect; + exports.onUnload = function (reason) { + redirectEvent.removeListener(checkRedirects); + chrome.storage.onChanged.removeListener(monitorChanges); + }; } //Hopefully Firefox will fix this at some point and we can just use onBeforeRequest everywhere... var redirectEvent = isFirefox ? chrome.webRequest.onBeforeSendHeaders : chrome.webRequest.onBeforeRequest; @@ -100,7 +104,7 @@ function checkRedirects(details) { //Monitor changes in data, and setup everything again. //This could probably be optimized to not do everything on every change //but why bother? -chrome.storage.onChanged.addListener(function(changes, namespace) { +function monitorChanges(changes, namespace) { if (changes.disabled) { updateIcon(); @@ -117,7 +121,8 @@ chrome.storage.onChanged.addListener(function(changes, namespace) { log('Redirects have changed, setting up listener again'); setUpRedirectListener(); } -}); +} +chrome.storage.onChanged.addListener(monitorChanges); //Creates a filter to pass to the listener so we don't have to run through //all the redirects for all the request types we don't have any redirects for anyway. -- cgit v1.2.3