aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/assets/javascripts/reddit.js48
-rw-r--r--src/assets/javascripts/search.js76
-rw-r--r--src/assets/javascripts/tiktok.js6
-rw-r--r--src/assets/javascripts/translate/translate.js10
-rw-r--r--src/assets/javascripts/twitter.js30
-rw-r--r--src/assets/javascripts/utils.js60
-rw-r--r--src/assets/javascripts/wikipedia.js6
-rw-r--r--src/assets/javascripts/youtube/youtube.js3
-rw-r--r--src/manifest.json2
9 files changed, 128 insertions, 113 deletions
diff --git a/src/assets/javascripts/reddit.js b/src/assets/javascripts/reddit.js
index 53651048..4b9ee721 100644
--- a/src/assets/javascripts/reddit.js
+++ b/src/assets/javascripts/reddit.js
@@ -126,18 +126,16 @@ function setLibredditCookies() {
let checkedInstances;
if (redditProtocol == 'normal') checkedInstances = [...libredditNormalRedirectsChecks, ...libredditNormalCustomRedirects]
else if (redditProtocol == 'tor') checkedInstances = [...libredditTorRedirectsChecks, ...libredditTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('libreddit', to, "theme");
- utils.getCookiesFromStorage('libreddit', to, "front_page");
- utils.getCookiesFromStorage('libreddit', to, "layout");
- utils.getCookiesFromStorage('libreddit', to, "wide");
- utils.getCookiesFromStorage('libreddit', to, "post_sort");
- utils.getCookiesFromStorage('libreddit', to, "comment_sort");
- utils.getCookiesFromStorage('libreddit', to, "show_nsfw");
- utils.getCookiesFromStorage('libreddit', to, "autoplay_videos");
- utils.getCookiesFromStorage('libreddit', to, "use_hls");
- utils.getCookiesFromStorage('libreddit', to, "hide_hls_notification");
- }
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "theme");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "front_page");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "layout");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "wide");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "post_sort");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "comment_sort");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "show_nsfw");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "autoplay_videos");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "use_hls");
+ utils.getCookiesFromStorage('libreddit', checkedInstances, "hide_hls_notification");
resolve();
})
}
@@ -181,20 +179,18 @@ function setTedditCookies() {
let checkedInstances;
if (redditProtocol == 'normal') checkedInstances = [...tedditNormalRedirectsChecks, ...tedditNormalCustomRedirects]
else if (redditProtocol == 'tor') checkedInstances = [...tedditTorRedirectsChecks, ...tedditTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('teddit', to, 'collapse_child_comments')
- utils.getCookiesFromStorage('teddit', to, 'domain_instagram')
- utils.getCookiesFromStorage('teddit', to, 'domain_twitter')
- utils.getCookiesFromStorage('teddit', to, 'domain_youtube')
- utils.getCookiesFromStorage('teddit', to, 'flairs')
- utils.getCookiesFromStorage('teddit', to, 'highlight_controversial')
- utils.getCookiesFromStorage('teddit', to, 'nsfw_enabled')
- utils.getCookiesFromStorage('teddit', to, 'post_media_max_height')
- utils.getCookiesFromStorage('teddit', to, 'show_upvoted_percentage')
- utils.getCookiesFromStorage('teddit', to, 'show_upvotes')
- utils.getCookiesFromStorage('teddit', to, 'theme')
- utils.getCookiesFromStorage('teddit', to, 'videos_muted')
- }
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'collapse_child_comments')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'domain_instagram')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'domain_twitter')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'domain_youtube')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'flairs')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'highlight_controversial')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'nsfw_enabled')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'post_media_max_height')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'show_upvoted_percentage')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'show_upvotes')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'theme')
+ utils.getCookiesFromStorage('teddit', checkedInstances, 'videos_muted')
resolve();
})
}
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index cb4c54fd..76d50161 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -182,25 +182,23 @@ function setSearxCookies() {
let checkedInstances;
if (searchProtocol == 'normal') checkedInstances = [...searxNormalRedirectsChecks, ...searxNormalCustomRedirects]
else if (searchProtocol == 'tor') checkedInstances = [...searxTorRedirectsChecks, ...searxTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('searx', to, 'advanced_search');
- utils.getCookiesFromStorage('searx', to, 'autocomplete');
- utils.getCookiesFromStorage('searx', to, 'categories');
- utils.getCookiesFromStorage('searx', to, 'disabled_engines');
- utils.getCookiesFromStorage('searx', to, 'disabled_plugins');
- utils.getCookiesFromStorage('searx', to, 'doi_resolver');
- utils.getCookiesFromStorage('searx', to, 'enabled_engines');
- utils.getCookiesFromStorage('searx', to, 'enabled_plugins');
- utils.getCookiesFromStorage('searx', to, 'image_proxy');
- utils.getCookiesFromStorage('searx', to, 'language');
- utils.getCookiesFromStorage('searx', to, 'locale');
- utils.getCookiesFromStorage('searx', to, 'method');
- utils.getCookiesFromStorage('searx', to, 'oscar-style');
- utils.getCookiesFromStorage('searx', to, 'results_on_new_tab');
- utils.getCookiesFromStorage('searx', to, 'safesearch');
- utils.getCookiesFromStorage('searx', to, 'theme');
- utils.getCookiesFromStorage('searx', to, 'tokens');
- }
+ utils.getCookiesFromStorage('searx', checkedInstances, 'advanced_search');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'autocomplete');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'categories');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'disabled_engines');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'disabled_plugins');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'doi_resolver');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'enabled_engines');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'enabled_plugins');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'image_proxy');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'language');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'locale');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'method');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'oscar-style');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'results_on_new_tab');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'safesearch');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'theme');
+ utils.getCookiesFromStorage('searx', checkedInstances, 'tokens');
resolve();
})
}
@@ -254,27 +252,25 @@ function setSearxngCookies() {
let checkedInstances;
if (searchProtocol == 'normal') checkedInstances = [...searxngNormalRedirectsChecks, ...searxngNormalCustomRedirects]
else if (searchProtocol == 'tor') checkedInstances = [...searxngTorRedirectsChecks, ...searxngTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('searxng', to, 'autocomplete');
- utils.getCookiesFromStorage('searxng', to, 'categories');
- utils.getCookiesFromStorage('searxng', to, 'disabled_engines');
- utils.getCookiesFromStorage('searxng', to, 'disabled_plugins');
- utils.getCookiesFromStorage('searxng', to, 'doi_resolver');
- utils.getCookiesFromStorage('searxng', to, 'enabled_plugins');
- utils.getCookiesFromStorage('searxng', to, 'enabled_engines');
- utils.getCookiesFromStorage('searxng', to, 'image_proxy');
- utils.getCookiesFromStorage('searxng', to, 'infinite_scroll');
- utils.getCookiesFromStorage('searxng', to, 'language');
- utils.getCookiesFromStorage('searxng', to, 'locale');
- utils.getCookiesFromStorage('searxng', to, 'maintab');
- utils.getCookiesFromStorage('searxng', to, 'method');
- utils.getCookiesFromStorage('searxng', to, 'query_in_title');
- utils.getCookiesFromStorage('searxng', to, 'results_on_new_tab');
- utils.getCookiesFromStorage('searxng', to, 'safesearch');
- utils.getCookiesFromStorage('searxng', to, 'simple_style');
- utils.getCookiesFromStorage('searxng', to, 'theme');
- utils.getCookiesFromStorage('searxng', to, 'tokens');
- }
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'autocomplete');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'categories');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'disabled_engines');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'disabled_plugins');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'doi_resolver');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'enabled_plugins');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'enabled_engines');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'image_proxy');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'infinite_scroll');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'language');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'locale');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'maintab');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'method');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'query_in_title');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'results_on_new_tab');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'safesearch');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'simple_style');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'theme');
+ utils.getCookiesFromStorage('searxng', checkedInstances, 'tokens');
resolve();
})
}
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index d36c47b0..39245ec4 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.js
@@ -56,10 +56,8 @@ function setProxiTokCookies() {
let checkedInstances;
if (tiktokProtocol == 'normal') checkedInstances = [...proxiTokNormalRedirectsChecks, ...proxiTokNormalCustomRedirects]
else if (tiktokProtocol == 'tor') checkedInstances = [...proxiTokTorRedirectsChecks, ...proxiTokTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('proxitok', to, 'theme');
- utils.getCookiesFromStorage('proxitok', to, 'api-legacy');
- }
+ utils.getCookiesFromStorage('proxitok', checkedInstances, 'theme');
+ utils.getCookiesFromStorage('proxitok', checkedInstances, 'api-legacy');
resolve();
})
}
diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js
index cc7a8c02..bc93ec6c 100644
--- a/src/assets/javascripts/translate/translate.js
+++ b/src/assets/javascripts/translate/translate.js
@@ -160,12 +160,10 @@ function setSimplyTranslateCookies() {
let checkedInstances;
if (translateProtocol == 'normal') checkedInstances = [...simplyTranslateNormalRedirectsChecks, ...simplyTranslateNormalCustomRedirects]
else if (translateProtocol == 'tor') checkedInstances = [...simplyTranslateTorRedirectsChecks, ...simplyTranslateTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('simplyTranslate', to, 'from_lang');
- utils.getCookiesFromStorage('simplyTranslate', to, 'to_lang');
- utils.getCookiesFromStorage('simplyTranslate', to, 'tts_enabled');
- utils.getCookiesFromStorage('simplyTranslate', to, 'use_text_fields');
- }
+ utils.getCookiesFromStorage('simplyTranslate', checkedInstances, 'from_lang');
+ utils.getCookiesFromStorage('simplyTranslate', checkedInstances, 'to_lang');
+ utils.getCookiesFromStorage('simplyTranslate', checkedInstances, 'tts_enabled');
+ utils.getCookiesFromStorage('simplyTranslate', checkedInstances, 'use_text_fields');
resolve();
}
)
diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js
index 3d110ae4..eb969739 100644
--- a/src/assets/javascripts/twitter.js
+++ b/src/assets/javascripts/twitter.js
@@ -177,22 +177,20 @@ function setNitterCookies() {
let checkedInstances;
if (twitterProtocol == 'normal') checkedInstances = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects]
else if (twitterProtocol == 'tor') checkedInstances = [...nitterTorRedirectsChecks, ...nitterTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('nitter', to, 'theme');
- utils.getCookiesFromStorage('nitter', to, 'infiniteScroll');
- utils.getCookiesFromStorage('nitter', to, 'stickyProfile');
- utils.getCookiesFromStorage('nitter', to, 'bidiSupport');
- utils.getCookiesFromStorage('nitter', to, 'hideTweetStats');
- utils.getCookiesFromStorage('nitter', to, 'hideBanner');
- utils.getCookiesFromStorage('nitter', to, 'hidePins');
- utils.getCookiesFromStorage('nitter', to, 'hideReplies');
- utils.getCookiesFromStorage('nitter', to, 'squareAvatars');
- utils.getCookiesFromStorage('nitter', to, 'mp4Playback');
- utils.getCookiesFromStorage('nitter', to, 'hlsPlayback');
- utils.getCookiesFromStorage('nitter', to, 'proxyVideos');
- utils.getCookiesFromStorage('nitter', to, 'muteVideos');
- utils.getCookiesFromStorage('nitter', to, 'autoplayGifs');
- }
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'theme');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'infiniteScroll');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'stickyProfile');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'bidiSupport');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'hideTweetStats');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'hideBanner');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'hidePins');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'hideReplies');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'squareAvatars');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'mp4Playback');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'hlsPlayback');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'proxyVideos');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'muteVideos');
+ utils.getCookiesFromStorage('nitter', checkedInstances, 'autoplayGifs');
resolve();
}
)
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 4dbeb6db..a957121b 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -282,28 +282,58 @@ async function testLatency(element, instances) {
function copyCookie(frontend, targetUrl, urls, name) {
return new Promise(resolve => {
- browser.cookies.get(
- { url: protocolHost(targetUrl), name: name },
- async r => {
- function setCookies(url, name, value) {
- return new Promise(resolve => browser.cookies.set({ url: url, name: name, value: value }, () => resolve()))
- }
- if (r) {
- console.log(name, r.value);
- for (const url of urls) await setCookies(url, name, r.value)
- browser.storage.local.set({ [`${frontend}_${name}`]: r.value }, () => resolve())
- } else resolve();
- }
- )
+ browser.cookies.getAll(
+ { url: protocolHost(targetUrl), name: name, firstPartyDomain: null },
+ cookies => {
+ browser.privacy.websites.firstPartyIsolate.get({},
+ async firstPartyIsolate => {
+ function setCookie(url, name, value, expirationDate) {
+ console.log('firstPartyDomain', firstPartyIsolate.value ? new URL(url).hostname : '')
+ return new Promise(resolve =>
+ browser.cookies.set(
+ {
+ url: url,
+ name: name,
+ value: value,
+ firstPartyDomain: firstPartyIsolate.value ? new URL(url).hostname : '',
+ expirationDate: expirationDate,
+ },
+ () => resolve()
+ )
+ )
+ }
+ for (const cookie of cookies)
+ if (cookie.name == name) {
+ console.log('cookie', cookie);
+ for (const url of urls) await setCookie(url, cookie.name, cookie.value, cookie.expirationDate)
+ browser.storage.local.set({ [`${frontend}_${name}`]: cookie }, () => resolve())
+ break;
+ }
+ resolve();
+ }
+ )
+ });
})
}
-function getCookiesFromStorage(frontend, to, name) {
+function getCookiesFromStorage(frontend, urls, name) {
let key = `${frontend}_${name}`;
browser.storage.local.get(
key,
r => {
- if (r[key] !== undefined) browser.cookies.set({ url: to, name: name, value: r[key] })
+ const cookie = r[key];
+ if (cookie !== undefined)
+ browser.privacy.websites.firstPartyIsolate.get({},
+ firstPartyIsolate => {
+ for (const url of urls)
+ browser.cookies.set({
+ url: url,
+ name: cookie.name,
+ value: cookie.value,
+ expirationDate: cookie.expirationDate,
+ firstPartyDomain: firstPartyIsolate.value ? new URL(url).hostname : '',
+ })
+ })
}
)
}
diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js
index dc7af0af..dc71fad5 100644
--- a/src/assets/javascripts/wikipedia.js
+++ b/src/assets/javascripts/wikipedia.js
@@ -104,10 +104,8 @@ function setWikilessCookies() {
let checkedInstances;
if (wikipediaProtocol == 'normal') checkedInstances = [...wikilessNormalRedirectsChecks, ...wikilessNormalCustomRedirects]
else if (wikipediaProtocol == 'tor') checkedInstances = [...wikilessTorRedirectsChecks, ...wikilessTorCustomRedirects]
- for (const to of checkedInstances) {
- utils.getCookiesFromStorage('wikiless', to, 'theme');
- utils.getCookiesFromStorage('wikiless', to, 'default_lang');
- }
+ utils.getCookiesFromStorage('wikiless', checkedInstances, 'theme');
+ utils.getCookiesFromStorage('wikiless', checkedInstances, 'default_lang');
resolve();
})
}
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index dfd644ae..cbdb0c6b 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -328,8 +328,7 @@ function setInvidiousCookies() {
let checkedInstances;
if (youtubeProtocol == 'normal') checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
else if (youtubeProtocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
- for (const to of checkedInstances)
- utils.getCookiesFromStorage('invidious', to, 'PREFS');
+ utils.getCookiesFromStorage('invidious', checkedInstances, 'PREFS');
resolve();
})
}
diff --git a/src/manifest.json b/src/manifest.json
index fffffb38..a887eb1e 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -25,6 +25,8 @@
"storage",
"unlimitedStorage",
"cookies",
+ "browserSettings",
+ "privacy",
"contextMenus",
"<all_urls>"
],