aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEinar Egilsson <einar@einaregilsson.com>2016-05-31 15:09:27 +0200
committerEinar Egilsson <einar@einaregilsson.com>2016-05-31 15:09:27 +0200
commit7ec3bc449dda34007c75d580b9a75f95c40bb4f3 (patch)
treeed2ad852b0d5584b528ecd95e361ab19d6d0e453
parent44dfb4ec3c4585454ebfbb7b30fe7774c5c6a877 (diff)
Remove old Firefox specific hacks
-rw-r--r--js/background.js22
-rw-r--r--js/popup.js15
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