Skip to content

Commit f8d77f6

Browse files
authored
Merge branch 'master' into patch-1
2 parents 0229124 + 2a5a209 commit f8d77f6

File tree

3 files changed

+66
-34
lines changed

3 files changed

+66
-34
lines changed

background.js

Lines changed: 38 additions & 26 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,33 @@ 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",
22+
];
23+
24+
const BLOGSPOT_DOMAINS = [
25+
"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", "stackdriver.com",
2026
];
21-
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", "stackdriver.com"];
27+
2228
const ALPHABET_DOMAINS = [
23-
"abc.xyz", "waze.com", "capitalg.com", "gv.com", "calicolabs.com", "x.company", "nest.com", "sidewalklabs.com", "verily.com"
29+
"abc.xyz", "waze.com", "capitalg.com", "gv.com", "calicolabs.com", "x.company", "nest.com", "sidewalklabs.com", "verily.com",
2430
];
2531

2632
const AD_DOMAINS = [
2733
"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",
34+
"googlesyndication.com", "googlecommerce.com", "googlebot.com", "googleapps.com", "googleadservices.com", "gmodules.com", "googl.com",
2935
"1e100.net", "domains.google", "gv.com",
3036
];
3137

3238
const DEVELOPER_DOMAINS = [
3339
"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",
3440
];
3541

36-
const SEARCHPAGE_PATHS = [
37-
"/search", "/maps", "/flights"
38-
]
39-
40-
4142
GOOGLE_DOMAINS = GOOGLE_DOMAINS.concat(GOOGLE_INTL_DOMAINS)
4243
.concat(GOOGLE_SERVICES).concat(YOUTUBE_DOMAINS).concat(BLOGSPOT_DOMAINS).concat(ALPHABET_DOMAINS)
4344
.concat(DEVELOPER_DOMAINS).concat(AD_DOMAINS);
4445

45-
46-
4746
const MAC_ADDON_ID = "@testpilot-containers";
4847

4948
let macAddonEnabled = false;
@@ -54,7 +53,6 @@ const canceledRequests = {};
5453
const tabsWaitingToLoad = {};
5554
const googleHostREs = [];
5655
const youtubeHostREs = [];
57-
const searchpagePathREs = [];
5856

5957
async function isMACAddonEnabled () {
6058
try {
@@ -151,14 +149,15 @@ function shouldCancelEarly (tab, options) {
151149
}
152150

153151
function generateGoogleHostREs () {
152+
const matchOperatorsRegex = /[|\\{}()[\]^$+*?.-]/g;
153+
154154
for (let googleDomain of GOOGLE_DOMAINS) {
155-
googleHostREs.push(new RegExp(`^(.*\\.)?${googleDomain}$`));
155+
googleDomain = googleDomain.replace(matchOperatorsRegex, '\\$&');
156+
googleHostREs.push(new RegExp(`(^|\.)${googleDomain}$`));
156157
}
157158
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}(.*)`));
159+
youtubeDomain = youtubeDomain.replace(matchOperatorsRegex, '\\$&');
160+
youtubeHostREs.push(new RegExp(`(^|\.)${youtubeDomain}$`));
162161
}
163162
}
164163

@@ -263,12 +262,17 @@ function isYouTubeURL (url) {
263262

264263
function isSearchPageURL (url) {
265264
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;
265+
return parsedUrl.pathname.startsWith('/search');
266+
}
267+
268+
function isMapsURL (url) {
269+
const parsedUrl = new URL(url);
270+
return parsedUrl.pathname.startsWith('/maps');
271+
}
272+
273+
function isFlightsURL (url) {
274+
const parsedUrl = new URL(url);
275+
return parsedUrl.pathname.startsWith('/flights');
272276
}
273277

274278
function shouldContainInto (url, tab) {
@@ -279,11 +283,19 @@ function shouldContainInto (url, tab) {
279283

280284
let handleUrl = isGoogleURL(url);
281285

282-
if (extensionSettings.ignore_youtube && isYouTubeURL(url)) {
286+
if (handleUrl && extensionSettings.ignore_youtube && isYouTubeURL(url)) {
287+
handleUrl = false;
288+
}
289+
290+
if (handleUrl && extensionSettings.ignore_searchpages && isSearchPageURL(url)) {
291+
handleUrl = false;
292+
}
293+
294+
if (handleUrl && extensionSettings.ignore_maps && isMapsURL(url)) {
283295
handleUrl = false;
284296
}
285297

286-
if (extensionSettings.ignore_searchpages && isSearchPageURL(url)) {
298+
if (handleUrl && extensionSettings.ignore_flights && isFlightsURL(url)) {
287299
handleUrl = false;
288300
}
289301

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)