diff options
author | Einar Egilsson <einar@einaregilsson.com> | 2016-05-31 15:09:27 +0200 |
---|---|---|
committer | Einar Egilsson <einar@einaregilsson.com> | 2016-05-31 15:09:27 +0200 |
commit | 7ec3bc449dda34007c75d580b9a75f95c40bb4f3 (patch) | |
tree | ed2ad852b0d5584b528ecd95e361ab19d6d0e453 /js | |
parent | 44dfb4ec3c4585454ebfbb7b30fe7774c5c6a877 (diff) |
Remove old Firefox specific hacks
Diffstat (limited to 'js')
-rw-r--r-- | js/background.js | 22 | ||||
-rw-r--r-- | js/popup.js | 15 |
2 files changed, 7 insertions, 30 deletions
diff --git a/js/background.js b/js/background.js index 5b393db..c025281 100644 --- a/js/background.js +++ b/js/background.js @@ -8,14 +8,6 @@ function log(msg) { } log.enabled = true; - -var isFirefox = !!navigator.userAgent.match(/Firefox/i); - -log('Is Firefox: ' + isFirefox); - -//Hopefully Firefox will fix this at some point and we can just use onBeforeRequest everywhere... -var redirectEvent = isFirefox ? chrome.webRequest.onBeforeSendHeaders : chrome.webRequest.onBeforeRequest; - //Redirects partitioned by request type, so we have to run through //the minimum number of redirects for each request. var partitionedRedirects = {}; @@ -54,12 +46,6 @@ function setIcon(image) { //decide whether or not we want to redirect. function checkRedirects(details) { - //Oh Firefox, please fix your broken url matching soon... - if (isFirefox && !details.url.match(/^https?:\/\//)) { - log('Not http: ' + details.url); - return {}; - } - //We only allow GET request to be redirected, don't want to accidentally redirect //sensitive POST parameters if (details.method != 'GET') { @@ -109,8 +95,6 @@ function checkRedirects(details) { ignoreNextRequest[result.redirectTo] = new Date().getTime(); return { redirectUrl: result.redirectTo }; - } else { - log(details.url + ' is not a match for ' + r.includePattern + ', type ' + r.patternType); } } @@ -126,7 +110,7 @@ function monitorChanges(changes, namespace) { if (changes.disabled.newValue == true) { log('Disabling Redirector, removing listener'); - redirectEvent.removeListener(checkRedirects); + chrome.webRequest.onBeforeRequest.removeListener(checkRedirects); } else { log('Enabling Redirector, setting up listener'); setUpRedirectListener(); @@ -180,7 +164,7 @@ function createPartitionedRedirects(redirects) { //Sets up the listener, partitions the redirects, creates the appropriate filters etc. function setUpRedirectListener() { - redirectEvent.removeListener(checkRedirects); //Unsubscribe first, in case there are changes... + chrome.webRequest.onBeforeRequest.removeListener(checkRedirects); //Unsubscribe first, in case there are changes... chrome.storage.local.get({redirects:[]}, function(obj) { var redirects = obj.redirects; @@ -193,7 +177,7 @@ function setUpRedirectListener() { var filter = createFilter(redirects); log('Setting filter for listener: ' + JSON.stringify(filter)); - redirectEvent.addListener(checkRedirects, filter, ["blocking"]); + chrome.webRequest.onBeforeRequest.addListener(checkRedirects, filter, ["blocking"]); }); } diff --git a/js/popup.js b/js/popup.js index 1241d20..0467286 100644 --- a/js/popup.js +++ b/js/popup.js @@ -20,8 +20,10 @@ angular.module('popupApp', []).controller('PopupCtrl', ['$scope', function($s) { //switch to open one if we have it to minimize conflicts var url = chrome.extension.getURL('redirector.html'); - - chrome.tabs.query({currentWindow:true}, function(tabs)) { + + //FIREFOXBUG: Firefox chokes on url:url filter if the url is a moz-extension:// url + //so we don't use that, do it the more manual way instead. + chrome.tabs.query({currentWindow:true}, function(tabs) { for (var i=0; i < tabs.length; i++) { if (tabs[i].url == url) { chrome.tabs.update(tabs[i].id, {active:true}, function(tab) { @@ -34,14 +36,5 @@ angular.module('popupApp', []).controller('PopupCtrl', ['$scope', function($s) { chrome.tabs.create({url:url, active:true}); }); return; - chrome.tabs.query({currentWindow:true, url:url}, function(tabs) { - if (tabs.length > 0) { - chrome.tabs.update(tabs[0].id, {active:true}, function(tab) { - close(); - }); - } else { - chrome.tabs.create({url:url, active:true}); - } - }); }; }]);
\ No newline at end of file |