summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimonBrazell <simon@brazell.com.au>2020-03-31 14:57:36 +1100
committerSimonBrazell <simon@brazell.com.au>2020-03-31 15:00:44 +1100
commit9a5a3779b40decff8e271f052a8d447c04bab897 (patch)
tree47cd463ea5797accfa74f343e361ed2d30684bec
parent0a4c1c041107d43c7e1bddd540f216b9db076aa0 (diff)
downloadprivacy-redirect-9a5a3779b40decff8e271f052a8d447c04bab897.tar.gz
privacy-redirect-9a5a3779b40decff8e271f052a8d447c04bab897.tar.bz2
privacy-redirect-9a5a3779b40decff8e271f052a8d447c04bab897.zip
Fix #30 - 'View on ...' links, & handle more maps embed casesv1.1.18
Diffstat (limited to '')
-rw-r--r--README.md4
-rw-r--r--background.js36
-rw-r--r--images/buy-me-a-coffee.pngbin8257 -> 5008 bytes
-rw-r--r--manifest.json2
4 files changed, 32 insertions, 10 deletions
diff --git a/README.md b/README.md
index 29c5a49..8435bff 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
# ![nitter-redirect](images/icon32.png) Privacy Redirect
-[![Buy me a coffee](images/buy-me-a-coffee.png)](https://www.buymeacoffee.com/SimonBrazell)
+[![Donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/SimonBrazell/donate) [![Buy me a coffee](images/buy-me-a-coffee.png)](https://www.buymeacoffee.com/SimonBrazell)
- [Chrome Extension](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb)
- [Firefox Add-on](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/)
-A simple web extension that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/omarroth/invidious), [Bibliogram](https://github.com/cloudrac3r/bibliogram) & [OpenStreetMap](https://www.openstreetmap.org/).
+A web extension that redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives - [Nitter](https://github.com/zedeus/nitter), [Invidious](https://github.com/omarroth/invidious), [Bibliogram](https://github.com/cloudrac3r/bibliogram) & [OpenStreetMap](https://www.openstreetmap.org/).
Allows for setting custom [Nitter](https://github.com/zedeus/nitter/wiki/Instances), [Invidious](https://github.com/omarroth/invidious/wiki/Invidious-Instances), [Bibliogram](https://github.com/cloudrac3r/bibliogram/wiki/Instances) & [OpenStreetMap](https://wiki.openstreetmap.org/wiki/Tile_servers) instances and toggling all redirects on & off.
diff --git a/background.js b/background.js
index 4811994..33ff7a8 100644
--- a/background.js
+++ b/background.js
@@ -145,10 +145,13 @@ function addressToLatLng(address, callback) {
xmlhttp.send();
}
-function redirectYouTube(url, type) {
+function redirectYouTube(url, initiator, type) {
if (disableInvidious) {
return null;
}
+ if (initiator && (initiator.origin === invidiousInstance || youtubeDomains.includes(initiator.host))) {
+ return null;
+ }
if (url.pathname.match(/iframe_api/)) {
// Redirect requests for YouTube Player API to local files instead
return browser.runtime.getURL('assets/iframe_api.js');
@@ -170,10 +173,13 @@ function redirectYouTube(url, type) {
}
}
-function redirectTwitter(url) {
+function redirectTwitter(url, initiator) {
if (disableNitter) {
return null;
}
+ if (initiator && (initiator.origin === nitterInstance || twitterDomains.includes(initiator.host))) {
+ return null;
+ }
if (url.host.split('.')[0] === 'pbs') {
return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`;
} else if (url.host.split('.')[0] === 'video') {
@@ -183,10 +189,13 @@ function redirectTwitter(url) {
}
}
-function redirectInstagram(url) {
+function redirectInstagram(url, initiator) {
if (disableBibliogram) {
return null;
}
+ if (initiator && (initiator.origin === bibliogramInstance || initiator.host.match(instagramRegex))) {
+ return null;
+ }
if (url.pathname === '/' || url.pathname.match(instagramPathsRegex)) {
return `${bibliogramInstance}${url.pathname}${url.search}`;
} else {
@@ -217,7 +226,19 @@ function redirectGoogleMaps(url) {
params = `${params}&layers=${layers[url.searchParams.get('layer')] || layers['none']}`;
// Handle Google Maps Embed API
if (url.pathname.includes('/embed')) {
- const query = url.searchParams.get('q') || url.searchParams.get('query');
+ let query = '';
+ if (url.searchParams.has('q')) {
+ query = url.searchParams.get('q');
+ } else if (url.searchParams.has('query')) {
+ query = url.searchParams.has('query');
+ } else if (url.searchParams.has('pb')) {
+ try {
+ query = url.searchParams.get('pb').split(/!2s(.*?)!/)[1];
+ } catch (error) {
+ console.error(error);
+ // Unable to find map marker in URL.
+ }
+ }
let marker, bbox;
addressToLatLng(query, (coords, boundingbox) => {
marker = coords;
@@ -267,18 +288,19 @@ function redirectGoogleMaps(url) {
browser.webRequest.onBeforeRequest.addListener(
details => {
const url = new URL(details.url);
+ let initiator = details.initiator && new URL(details.initiator);
let redirect;
if (youtubeDomains.includes(url.host)) {
redirect = {
- redirectUrl: redirectYouTube(url, details.type)
+ redirectUrl: redirectYouTube(url, initiator, details.type)
};
} else if (twitterDomains.includes(url.host)) {
redirect = {
- redirectUrl: redirectTwitter(url)
+ redirectUrl: redirectTwitter(url, initiator)
};
} else if (url.host.match(instagramRegex)) {
redirect = {
- redirectUrl: redirectInstagram(url)
+ redirectUrl: redirectInstagram(url, initiator)
};
} else if (url.href.match(googleMapsRegex)) {
redirect = {
diff --git a/images/buy-me-a-coffee.png b/images/buy-me-a-coffee.png
index e0c8c11..1bb2ad6 100644
--- a/images/buy-me-a-coffee.png
+++ b/images/buy-me-a-coffee.png
Binary files differ
diff --git a/manifest.json b/manifest.json
index fb5605a..5a5ac3c 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,7 +1,7 @@
{
"name": "Privacy Redirect",
"description": "Redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives.",
- "version": "1.1.17",
+ "version": "1.1.18",
"manifest_version": 2,
"background": {
"scripts": [