Skip to content

Commit 2a5a209

Browse files
authored
Merge pull request #46 from rasmusbe/more-settings
Settings for maps and flights
2 parents 1fc0603 + 7697162 commit 2a5a209

File tree

3 files changed

+63
-33
lines changed

3 files changed

+63
-33
lines changed

background.js

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
const GOOGLE_CONTAINER_NAME = "Google";
33
const GOOGLE_CONTAINER_COLOR = "red";
44
const GOOGLE_CONTAINER_ICON = "briefcase";
5+
56
let GOOGLE_DOMAINS = [
67
"google.com", "google.org", "googleapis.com", "g.co", "ggpht.com",
78
"blogger.com", "googleblog.com", "blog.google", "googleusercontent.com", "googlesource.com",
8-
"google.org", "google.net", "466453.com", "gooogle.com", "gogle.com", "ggoogle.com", "gogole.com", "goolge.com", "googel.com", "googlee.com", "googil.com", "googlr.com", "elgoog.im", "ai.google", "com.google",
9+
"google.org", "google.net", "466453.com", "gooogle.com", "gogle.com", "ggoogle.com", "gogole.com", "goolge.com", "googel.com", "googlee.com", "googil.com", "googlr.com", "elgoog.im", "ai.google", "com.google",
910
];
1011

1112
const GOOGLE_INTL_DOMAINS = [
@@ -15,35 +16,31 @@ const GOOGLE_INTL_DOMAINS = [
1516
const GOOGLE_SERVICES = [
1617
"like.com", "keyhole.com", "panoramio.com", "picasa.com", "urchin.com", "igoogle.com", "foofle.com", "froogle.com", "localguidesconnect.com", "googlemail.com", "googleanalytics.com", "google-analytics.com", "googletagmanager.com", "googlecode.com", "googlesource.com", "googledrive.com", "googlearth.com", "googleearth.com", "googlemaps.com", "googlepagecreator.com", "googlescholar.com", "advertisercommunity.com", "thinkwithgoogle.com",
1718
];
19+
1820
const YOUTUBE_DOMAINS = [
19-
"youtube.com", "youtu.be", "yt.be", "ytimg.com", " youtube-nocookie.com", "youtubegaming.com", "youtubeeducation.com", "youtube-nocookie.com",
21+
"youtube.com", "youtu.be", "yt.be", "ytimg.com", "youtube-nocookie.com", "youtubegaming.com", "youtubeeducation.com",
2022
];
23+
2124
const BLOGSPOT_DOMAINS = ["blogspot.com", "blogspot.ae", "blogspot.al", "blogspot.am", "blogspot.com.ar", "blogspot.co.at", "blogspot.com.au", "blogspot.ba", "blogspot.be", "blogspot.bg", "blogspot.bj", "blogspot.com.br", "blogspot.com.by", "blogspot.ca", "blogspot.cf", "blogspot.ch", "blogspot.cl", "blogspot.com.co", "blogspot.cv", "blogspot.com.cy", "blogspot.cz", "blogspot.de", "blogspot.dj", "blogspot.dk", "blogspot.dm", "blogspot.com.do", "blogspot.dz", "blogspot.com.eg", "blogspot.es", "blogspot.fi", "blogspot.fr", "blogspot.gr", "blogspot.hr", "blogspot.hu", "blogspot.co.id", "blogspot.ie", "blogspot.co.il", "blogspot.in", "blogspot.is", "blogspot.it", "blogspot.jp", "blogspot.co.ke", "blogspot.kr", "blogspot.li", "blogspot.lt", "blogspot.lu", "blogspot.md", "blogspot.mk", "blogspot.com.mt", "blogspot.mx", "blogspot.my", "blogspot.com.ng", "blogspot.nl", "blogspot.no", "blogspot.co.nz", "blogspot.pt", "blogspot.qa", "blogspot.ro", "blogspot.rs", "blogspot.ru", "blogspot.se", "blogspot.sg", "blogspot.si", "blogspot.sk", "blogspot.sn", "blogspot.com.sr", "blogspot.td", "blogspot.co.tl", "blogspot.co.to", "blogspot.com.tr", "blogspot.tw", "blogspot.co.uk", "blogspot.com.uy", "blogspot.co.za"];
25+
2226
const ALPHABET_DOMAINS = [
23-
"abc.xyz", "waze.com", "capitalg.com", "gv.com", "calicolabs.com", "x.company", "nest.com", "sidewalklabs.com", "verily.com"
27+
"abc.xyz", "waze.com", "capitalg.com", "gv.com", "calicolabs.com", "x.company", "nest.com", "sidewalklabs.com", "verily.com",
2428
];
2529

2630
const AD_DOMAINS = [
2731
"doubleclickbygoogle.com", "feedburner.com", "doubleclick.com", "doubleclick.net", "adwords.com", "adsense.com", "admob.com", "advertisercommunity.com",
28-
"googlesyndication.com", "googlecommerce.com", "googlebot.com", "googleapps.com", "googleadservices.com", "gmodules.com", "googl.com",
32+
"googlesyndication.com", "googlecommerce.com", "googlebot.com", "googleapps.com", "googleadservices.com", "gmodules.com", "googl.com",
2933
"1e100.net", "domains.google", "gv.com",
3034
];
3135

3236
const DEVELOPER_DOMAINS = [
3337
"madewithcode.com", "design.google", "gallery.io", "domains.google", "material.io", "android.com", "chromium.org", "cobrasearch.com", "chromecast.com", "chrome.com", "chromebook.com", "madewithcode.com", "whatbrowser.org", "withgoogle.com", "web.dev",
3438
];
3539

36-
const SEARCHPAGE_PATHS = [
37-
"/search", "/maps", "/flights"
38-
]
39-
40-
4140
GOOGLE_DOMAINS = GOOGLE_DOMAINS.concat(GOOGLE_INTL_DOMAINS)
4241
.concat(GOOGLE_SERVICES).concat(YOUTUBE_DOMAINS).concat(BLOGSPOT_DOMAINS).concat(ALPHABET_DOMAINS)
4342
.concat(DEVELOPER_DOMAINS).concat(AD_DOMAINS);
4443

45-
46-
4744
const MAC_ADDON_ID = "@testpilot-containers";
4845

4946
let macAddonEnabled = false;
@@ -54,7 +51,6 @@ const canceledRequests = {};
5451
const tabsWaitingToLoad = {};
5552
const googleHostREs = [];
5653
const youtubeHostREs = [];
57-
const searchpagePathREs = [];
5854

5955
async function isMACAddonEnabled () {
6056
try {
@@ -151,14 +147,15 @@ function shouldCancelEarly (tab, options) {
151147
}
152148

153149
function generateGoogleHostREs () {
150+
const matchOperatorsRegex = /[|\\{}()[\]^$+*?.-]/g;
151+
154152
for (let googleDomain of GOOGLE_DOMAINS) {
155-
googleHostREs.push(new RegExp(`^(.*\\.)?${googleDomain}$`));
153+
googleDomain = googleDomain.replace(matchOperatorsRegex, '\\$&');
154+
googleHostREs.push(new RegExp(`(^|\.)${googleDomain}$`));
156155
}
157156
for (let youtubeDomain of YOUTUBE_DOMAINS) {
158-
youtubeHostREs.push(new RegExp(`^(.*\\.)?${youtubeDomain}$`));
159-
}
160-
for (let searchpagePath of SEARCHPAGE_PATHS) {
161-
searchpagePathREs.push(new RegExp(`^${searchpagePath}(.*)`));
157+
youtubeDomain = youtubeDomain.replace(matchOperatorsRegex, '\\$&');
158+
youtubeHostREs.push(new RegExp(`(^|\.)${youtubeDomain}$`));
162159
}
163160
}
164161

@@ -263,12 +260,17 @@ function isYouTubeURL (url) {
263260

264261
function isSearchPageURL (url) {
265262
const parsedUrl = new URL(url);
266-
for (let searchpagePathRE of searchpagePathREs) {
267-
if (searchpagePathRE.test(parsedUrl.pathname)) {
268-
return true;
269-
}
270-
}
271-
return false;
263+
return parsedUrl.pathname.startsWith('/search');
264+
}
265+
266+
function isMapsURL (url) {
267+
const parsedUrl = new URL(url);
268+
return parsedUrl.pathname.startsWith('/maps');
269+
}
270+
271+
function isFlightsURL (url) {
272+
const parsedUrl = new URL(url);
273+
return parsedUrl.pathname.startsWith('/flights');
272274
}
273275

274276
function shouldContainInto (url, tab) {
@@ -279,11 +281,19 @@ function shouldContainInto (url, tab) {
279281

280282
let handleUrl = isGoogleURL(url);
281283

282-
if (extensionSettings.ignore_youtube && isYouTubeURL(url)) {
284+
if (handleUrl && extensionSettings.ignore_youtube && isYouTubeURL(url)) {
285+
handleUrl = false;
286+
}
287+
288+
if (handleUrl && extensionSettings.ignore_searchpages && isSearchPageURL(url)) {
289+
handleUrl = false;
290+
}
291+
292+
if (handleUrl && extensionSettings.ignore_maps && isMapsURL(url)) {
283293
handleUrl = false;
284294
}
285295

286-
if (extensionSettings.ignore_searchpages && isSearchPageURL(url)) {
296+
if (handleUrl && extensionSettings.ignore_flights && isFlightsURL(url)) {
287297
handleUrl = false;
288298
}
289299

options.html

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,47 @@
88

99
<body>
1010
<form>
11-
11+
1212
<h1>Settings</h1>
13-
13+
1414
<hr>
15-
15+
1616
<p>
1717
<label>
1818
<input type="checkbox" id="ignore_youtube" value="1">
1919
Ignore YouTube<br>
2020
<em>(Means don't use Google Container for YouTube sites.)<em>
2121
</label>
2222
</p>
23-
23+
2424
<p>
2525
<label>
2626
<input type="checkbox" id="ignore_searchpages" value="1">
2727
Ignore search pages<br>
28-
<em>(Means don't use Google Container on Google sites with a path of <code>/search</code>, <code>/maps</code> or <code>/flights</code>.)<em>
28+
<em>(Means don't use Google Container on Google sites with a path of <code>/search</code>.)<em>
29+
</label>
30+
</p>
31+
32+
<p>
33+
<label>
34+
<input type="checkbox" id="ignore_maps" value="1">
35+
Ignore maps pages<br>
36+
<em>(Means don't use Google Container on Google sites with a path of <code>/maps</code>.)<em>
37+
</label>
38+
</p>
39+
40+
<p>
41+
<label>
42+
<input type="checkbox" id="ignore_flights" value="1">
43+
Ignore flights pages<br>
44+
<em>(Means don't use Google Container on Google sites with a path of <code>/flights</code>.)<em>
2945
</label>
3046
</p>
3147

3248
<button type="submit">Save settings</button>
33-
49+
3450
<hr>
35-
51+
3652
</form>
3753
<script src="options.js"></script>
3854
</body>

options.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ function onOptionsPageSave(e)
55
// Save settings
66
browser.storage.sync.set({
77
"ignore_youtube": document.querySelector("#ignore_youtube").checked,
8-
"ignore_searchpages": document.querySelector("#ignore_searchpages").checked
8+
"ignore_searchpages": document.querySelector("#ignore_searchpages").checked,
9+
"ignore_maps": document.querySelector("#ignore_maps").checked,
10+
"ignore_flights": document.querySelector("#ignore_flights").checked
911
});
1012

1113
browser.runtime.reload();
@@ -19,6 +21,8 @@ function onOptionsPageLoaded()
1921
{
2022
document.querySelector("#ignore_youtube").checked = res.ignore_youtube || false;
2123
document.querySelector("#ignore_searchpages").checked = res.ignore_searchpages || false;
24+
document.querySelector("#ignore_maps").checked = res.ignore_maps || false;
25+
document.querySelector("#ignore_flights").checked = res.ignore_flights || false;
2226
});
2327
}
2428

0 commit comments

Comments
 (0)