summaryrefslogtreecommitdiffstats
path: root/background.js
diff options
context:
space:
mode:
authorSimon Brazell <simon@brazell.com.au>2020-12-05 23:16:10 +1100
committerGitHub <noreply@github.com>2020-12-05 23:16:10 +1100
commita075c449386d78003900fe2593f5a61c54ca95b0 (patch)
treeaec3348778574872936f54237bd5fcc1220a8c08 /background.js
parent3d45eb3089dd2583f9e8abc635611f5f4a84bd05 (diff)
parent9c3ca12b650ac068842a1b766fc80fefccbc6303 (diff)
downloadprivacy-redirect-a075c449386d78003900fe2593f5a61c54ca95b0.tar.gz
privacy-redirect-a075c449386d78003900fe2593f5a61c54ca95b0.tar.bz2
privacy-redirect-a075c449386d78003900fe2593f5a61c54ca95b0.zip
Merge pull request #126 from aapl-yumi/patch-1
Add Search Engine redirects.
Diffstat (limited to 'background.js')
-rw-r--r--background.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/background.js b/background.js
index 0ab7b96..9fa766c 100644
--- a/background.js
+++ b/background.js
@@ -132,12 +132,20 @@ const layers = {
traffic: "S", // not implemented on OSM, default to standard.
bicycling: "C",
};
+const googleSearchRegex = /https?:\/\/(((www|maps)\.)?(google\.).*(\/search)|search\.(google\.).*)/;
+const privateSearchEngine = [
+ { link: "https://duckduckgo.com", q: "/" },
+ { link: "https://startpage.com", q: "/search/" },
+ { link: "https://www.qwant.com", q: "/" },
+ { link: "https://www.mojeek.com", q: "/search" },
+];
let disableNitter;
let disableInvidious;
let disableBibliogram;
let disableOsm;
let disableOldReddit;
+let disableSearchEngine;
let nitterInstance;
let invidiousInstance;
let bibliogramInstance;
@@ -175,6 +183,7 @@ browser.storage.sync.get(
"disableBibliogram",
"disableOsm",
"disableOldReddit",
+ "disableSearchEngine",
"alwaysProxy",
"onlyEmbeddedVideo",
"videoQuality",
@@ -195,6 +204,7 @@ browser.storage.sync.get(
disableBibliogram = result.disableBibliogram;
disableOsm = result.disableOsm;
disableOldReddit = result.disableOldReddit;
+ disableSearchEngine = result.disableSearchEngine;
nitterInstance = result.nitterInstance;
invidiousInstance = result.invidiousInstance;
bibliogramInstance = result.bibliogramInstance;
@@ -257,6 +267,9 @@ browser.storage.onChanged.addListener((changes) => {
if ("disableOldReddit" in changes) {
disableOldReddit = changes.disableOldReddit.newValue;
}
+ if ("disableSearchEngine" in changes) {
+ disableSearchEngine = changes.disableSearchEngine.newValue;
+ }
if ("alwaysProxy" in changes) {
alwaysProxy = changes.alwaysProxy.newValue;
}
@@ -572,6 +585,23 @@ function redirectReddit(url, initiator, type) {
return `${oldRedditView}${url.pathname}${url.search}`;
}
+function redirectSearchEngine(url, initiator) {
+ if (disableSearchEngine || isException(url, initiator)) {
+ return null;
+ }
+
+ let searchEngine = getRandomInstance(privateSearchEngine);
+ let search = "";
+ url.search
+ .slice(1)
+ .split("&")
+ .forEach(function (input) {
+ if (input.startsWith("q=")) search = input;
+ });
+ console.log("search: ", search);
+ return `${searchEngine.link}${searchEngine.q}?${search}`;
+}
+
browser.webRequest.onBeforeRequest.addListener(
(details) => {
const url = new URL(details.url);
@@ -605,6 +635,10 @@ browser.webRequest.onBeforeRequest.addListener(
redirect = {
redirectUrl: redirectReddit(url, initiator, details.type),
};
+ } else if (url.href.match(googleSearchRegex)) {
+ redirect = {
+ redirectUrl: redirectSearchEngine(url, initiator),
+ };
}
if (redirect && redirect.redirectUrl) {
console.info(