From 78dcb3671064eec9ddbe770688fcc31dd30a8091 Mon Sep 17 00:00:00 2001
From: ManeraKai
Date: Sun, 5 Jun 2022 15:54:13 +0300
Subject: Fixing bugs. Preparing for release
---
src/assets/javascripts/general.js | 42 +++++++------
src/assets/javascripts/imgur.js | 11 ++--
src/assets/javascripts/lbry.js | 6 +-
src/assets/javascripts/maps.js | 17 ++---
src/assets/javascripts/medium.js | 5 +-
src/assets/javascripts/peertube.js | 5 +-
src/assets/javascripts/reddit.js | 5 +-
src/assets/javascripts/search.js | 5 +-
src/assets/javascripts/sendTargets.js | 5 +-
src/assets/javascripts/tiktok.js | 5 +-
src/assets/javascripts/translate/translate.js | 9 ++-
src/assets/javascripts/twitter.js | 7 +--
src/assets/javascripts/utils.js | 19 +++---
src/assets/javascripts/wikipedia.js | 5 +-
src/assets/javascripts/youtube/youtube.js | 5 +-
src/assets/javascripts/youtubeMusic.js | 16 ++---
src/manifest.json | 3 +-
src/pages/background/background.js | 63 ++++++++++++-------
src/pages/background/reset_warning.html | 13 ++++
src/pages/background/reset_warning.js | 11 ++++
src/pages/options/index.js | 9 +++
src/pages/options/widgets/general.js | 89 +++++++++++++++------------
src/pages/popup/popup.js | 1 -
23 files changed, 207 insertions(+), 149 deletions(-)
create mode 100644 src/pages/background/reset_warning.js
diff --git a/src/assets/javascripts/general.js b/src/assets/javascripts/general.js
index 199d884c..d85f308a 100644
--- a/src/assets/javascripts/general.js
+++ b/src/assets/javascripts/general.js
@@ -24,26 +24,28 @@ init();
browser.storage.onChanged.addListener(init)
async function initDefaults() {
- await browser.storage.local.set({
- exceptions: {
- "url": [],
- "regex": [],
- },
- theme: "DEFAULT",
- popupFrontends: [
- "youtube",
- "twitter",
- "instagram",
- "tikTok",
- "imgur",
- "reddit",
- "search",
- "medium",
- "translate",
- "maps",
- ],
- autoRedirect: false,
- })
+ return new Promise(resolve =>
+ browser.storage.local.set({
+ exceptions: {
+ "url": [],
+ "regex": [],
+ },
+ theme: "DEFAULT",
+ popupFrontends: [
+ "youtube",
+ "twitter",
+ "instagram",
+ "tikTok",
+ "imgur",
+ "reddit",
+ "search",
+ "medium",
+ "translate",
+ "maps",
+ ],
+ autoRedirect: false,
+ }, () => resolve())
+ )
}
const allPopupFrontends = [
diff --git a/src/assets/javascripts/imgur.js b/src/assets/javascripts/imgur.js
index d22430ee..e6097a67 100644
--- a/src/assets/javascripts/imgur.js
+++ b/src/assets/javascripts/imgur.js
@@ -32,14 +32,12 @@ function setRedirects() {
if (c > -1) rimgoI2pRedirectsChecks.splice(c, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
imgurRedirects: redirects,
rimgoNormalRedirectsChecks,
rimgoTorRedirectsChecks,
rimgoI2pRedirectsChecks,
- });
-
- resolve();
+ }, () => resolve());
})
})
}
@@ -162,7 +160,7 @@ function initDefaults() {
const i = rimgoNormalRedirectsChecks.indexOf(instance);
if (i > -1) rimgoNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableImgur: false,
imgurProtocol: 'normal',
imgurRedirects: redirects,
@@ -175,8 +173,7 @@ function initDefaults() {
rimgoI2pRedirectsChecks: [...redirects.rimgo.i2p],
rimgoI2pCustomRedirects: [],
- });
- resolve();
+ }, () => resolve());
});
});
});
diff --git a/src/assets/javascripts/lbry.js b/src/assets/javascripts/lbry.js
index d4f4359a..281ab2e5 100644
--- a/src/assets/javascripts/lbry.js
+++ b/src/assets/javascripts/lbry.js
@@ -129,7 +129,7 @@ function initDefaults() {
i = librarianNormalRedirectsChecks.indexOf(instance);
if (i > -1) librarianNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableLbryTargets: true,
lbryTargetsRedirects: {
'librarian': redirects.librarian
@@ -142,8 +142,8 @@ function initDefaults() {
librarianTorCustomRedirects: [],
lbryTargetsProtocol: "normal",
- })
- resolve();
+ }, () => resolve())
+
})
})
}
diff --git a/src/assets/javascripts/maps.js b/src/assets/javascripts/maps.js
index 3ab5e2b6..245a5f85 100644
--- a/src/assets/javascripts/maps.js
+++ b/src/assets/javascripts/maps.js
@@ -197,13 +197,16 @@ function redirect(url, initiator) {
}
async function initDefaults() {
- await browser.storage.local.set({
- disableMaps: false,
- mapsFrontend: 'osm',
- mapsRedirects: redirects,
- facilNormalRedirectsChecks: [...redirects.facil.normal],
- facilNormalCustomRedirects: [],
- })
+ return new Promise(resolve =>
+ browser.storage.local.set({
+ disableMaps: false,
+ mapsFrontend: 'osm',
+ mapsRedirects: redirects,
+ facilNormalRedirectsChecks: [...redirects.facil.normal],
+ facilNormalCustomRedirects: [],
+ }, () => resolve())
+ )
+
}
export default {
diff --git a/src/assets/javascripts/medium.js b/src/assets/javascripts/medium.js
index 06abd64e..7a926793 100644
--- a/src/assets/javascripts/medium.js
+++ b/src/assets/javascripts/medium.js
@@ -148,7 +148,7 @@ function initDefaults() {
let i = scribeNormalRedirectsChecks.indexOf(instance);
if (i > -1) scribeNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableMedium: false,
mediumRedirects: redirects,
@@ -159,8 +159,7 @@ function initDefaults() {
scribeTorCustomRedirects: [],
mediumProtocol: "normal",
- })
- resolve();
+ }, () => resolve())
})
})
})
diff --git a/src/assets/javascripts/peertube.js b/src/assets/javascripts/peertube.js
index d1c06bf2..900048f7 100644
--- a/src/assets/javascripts/peertube.js
+++ b/src/assets/javascripts/peertube.js
@@ -128,7 +128,7 @@ function initDefaults() {
let i = simpleertubeNormalRedirectsChecks.indexOf(instance);
if (i > -1) simpleertubeNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
peerTubeTargets: ['https://search.joinpeertube.org', ...dataJson.peertube],
disablePeertubeTargets: true,
peertubeRedirects: redirects,
@@ -140,8 +140,7 @@ function initDefaults() {
simpleertubeTorCustomRedirects: [],
peertubeTargetsProtocol: "normal",
- })
- resolve();
+ }, () => resolve());
})
})
})
diff --git a/src/assets/javascripts/reddit.js b/src/assets/javascripts/reddit.js
index c10ebe2f..58ed813a 100644
--- a/src/assets/javascripts/reddit.js
+++ b/src/assets/javascripts/reddit.js
@@ -334,7 +334,7 @@ function initDefaults() {
i = tedditNormalRedirectsChecks.indexOf(instance);
if (i > -1) tedditNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableReddit: false,
redditProtocol: 'normal',
redditFrontend: 'libreddit',
@@ -351,8 +351,7 @@ function initDefaults() {
tedditTorRedirectsChecks: [...redirects.teddit.tor],
tedditTorCustomRedirects: [],
- });
- resolve();
+ }, () => resolve());
});
});
});
diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js
index 6d6fd365..ded0ceef 100644
--- a/src/assets/javascripts/search.js
+++ b/src/assets/javascripts/search.js
@@ -410,7 +410,7 @@ function initDefaults() {
i = searxngNormalRedirectsChecks.indexOf(instance);
if (i > -1) searxngNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableSearch: false,
searchFrontend: 'searxng',
searchRedirects: redirects,
@@ -443,8 +443,7 @@ function initDefaults() {
searxngI2pRedirectsChecks: [...redirects.searxng.i2p],
searxngI2pCustomRedirects: [],
- })
- resolve();
+ }, () => resolve())
})
})
})
diff --git a/src/assets/javascripts/sendTargets.js b/src/assets/javascripts/sendTargets.js
index 72a153ec..dcc17b21 100644
--- a/src/assets/javascripts/sendTargets.js
+++ b/src/assets/javascripts/sendTargets.js
@@ -123,7 +123,7 @@ function initDefaults() {
let i = sendNormalRedirectsChecks.indexOf(instance);
if (i > -1) sendNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableSendTarget: false,
sendTargetsRedirects: redirects,
@@ -134,8 +134,7 @@ function initDefaults() {
sendTorCustomRedirects: [],
sendTargetsProtocol: "normal",
- })
- resolve();
+ }, () => resolve())
})
})
})
diff --git a/src/assets/javascripts/tiktok.js b/src/assets/javascripts/tiktok.js
index a462cec4..50347a93 100644
--- a/src/assets/javascripts/tiktok.js
+++ b/src/assets/javascripts/tiktok.js
@@ -142,7 +142,7 @@ function initDefaults() {
fetch('/instances/data.json').then(response => response.text()).then(async data => {
let dataJson = JSON.parse(data);
redirects.proxiTok = dataJson.proxiTok;
- await browser.storage.local.set({
+ browser.storage.local.set({
disableTiktok: false,
tiktokProtocol: "normal",
@@ -153,8 +153,7 @@ function initDefaults() {
proxiTokTorRedirectsChecks: [...redirects.proxiTok.tor],
proxiTokTorCustomRedirects: [],
- });
- resolve();
+ }, () => resolve());
});
})
}
diff --git a/src/assets/javascripts/translate/translate.js b/src/assets/javascripts/translate/translate.js
index efb42313..79fab753 100644
--- a/src/assets/javascripts/translate/translate.js
+++ b/src/assets/javascripts/translate/translate.js
@@ -264,14 +264,14 @@ function initDefaults() {
const i = lingvaNormalRedirectsChecks.indexOf(instance);
if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
translateDisable: false,
translateFrontend: "simplyTranslate",
translateProtocol: 'normal',
translateRedirects: redirects,
- simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks,
- simplyTranslateNormalCustomRedirects: [...redirects.simplyTranslate.normal],
+ simplyTranslateNormalRedirectsChecks: [...redirects.simplyTranslate.normal],
+ simplyTranslateNormalCustomRedirects: [],
simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor],
simplyTranslateTorCustomRedirects: [],
@@ -279,8 +279,7 @@ function initDefaults() {
lingvaNormalCustomRedirects: [],
lingvaTorRedirectsChecks: [...redirects.lingva.tor],
lingvaTorCustomRedirects: [],
- })
- resolve();
+ }, () => resolve())
})
})
})
diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js
index 81a4513f..1ee7f755 100644
--- a/src/assets/javascripts/twitter.js
+++ b/src/assets/javascripts/twitter.js
@@ -210,18 +210,17 @@ function initDefaults() {
let i = nitterNormalRedirectsChecks.indexOf(instance);
if (i > -1) nitterNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableTwitter: false,
twitterRedirects: redirects,
twitterProtocol: "normal",
- nitterNormalRedirectsChecks,
+ nitterNormalRedirectsChecks: nitterNormalRedirectsChecks,
nitterNormalCustomRedirects: [],
nitterTorRedirectsChecks: [...redirects.nitter.tor],
nitterTorCustomRedirects: [],
- })
- resolve();
+ }, () => resolve());
})
})
})
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 44247d96..a25bdc5a 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -69,7 +69,6 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
}
let latencyKey = `${name}Latency`;
let instancesLatency;
- await browser.storage.local.get(latencyKey, r => instancesLatency = r[latencyKey] ?? []);
let nameProtocolElement = document.getElementById(name).getElementsByClassName(protocol)[0];
let nameCustomInstances = [];
@@ -77,7 +76,6 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
await initcloudflareBlackList();
-
let nameDefaultRedirects;
let redirectsChecks = `${name}${camelCase(protocol)}RedirectsChecks`;
@@ -92,11 +90,13 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
[
redirectsChecks,
customRedirects,
- redirectsKey
+ redirectsKey,
+ latencyKey
],
r => {
nameDefaultRedirects = r[redirectsChecks];
nameCustomInstances = r[customRedirects];
+ instancesLatency = r[latencyKey] ?? [];
redirects = r[redirectsKey];
resolve();
}
@@ -155,7 +155,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
else
nameDefaultRedirects = [];
- await browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
+ browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
calcNameCheckBoxes();
});
@@ -168,7 +168,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
let index = nameDefaultRedirects.indexOf(element.className);
if (index > -1) nameDefaultRedirects.splice(index, 1);
}
- await browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
+ browser.storage.local.set({ [redirectsChecks]: nameDefaultRedirects });
calcNameCheckBoxes();
});
}
@@ -191,7 +191,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
nameProtocolElement.getElementsByClassName(`clear-${item}`)[0].addEventListener("click", async () => {
let index = nameCustomInstances.indexOf(item);
if (index > -1) nameCustomInstances.splice(index, 1);
- await browser.storage.local.set({ [customRedirects]: nameCustomInstances });
+ browser.storage.local.set({ [customRedirects]: nameCustomInstances });
calcNameCustomInstances();
});
}
@@ -205,7 +205,7 @@ async function processDefaultCustomInstances(target, name, protocol, document) {
if (nameCustomInstanceInput.validity.valid && !redirects[name][protocol].includes(protocolHostVar)) {
if (!nameCustomInstances.includes(protocolHostVar)) {
nameCustomInstances.push(protocolHostVar)
- await browser.storage.local.set({ [customRedirects]: nameCustomInstances });
+ browser.storage.local.set({ [customRedirects]: nameCustomInstances });
nameCustomInstanceInput.value = '';
}
calcNameCustomInstances();
@@ -292,7 +292,6 @@ function copyCookie(frontend, targetUrl, urls, name) {
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(
{
@@ -300,7 +299,7 @@ function copyCookie(frontend, targetUrl, urls, name) {
name: name,
value: value,
firstPartyDomain: firstPartyIsolate.value ? new URL(url).hostname : '',
- expirationDate: expirationDate,
+ expirationDate: firstPartyIsolate.value ? null : expirationDate,
},
() => resolve()
)
@@ -334,7 +333,7 @@ function getCookiesFromStorage(frontend, urls, name) {
url: url,
name: cookie.name,
value: cookie.value,
- expirationDate: cookie.expirationDate,
+ expirationDate: firstPartyIsolate.value ? null : cookie.expirationDate,
firstPartyDomain: firstPartyIsolate.value ? new URL(url).hostname : '',
})
})
diff --git a/src/assets/javascripts/wikipedia.js b/src/assets/javascripts/wikipedia.js
index db7bf20b..d211656b 100644
--- a/src/assets/javascripts/wikipedia.js
+++ b/src/assets/javascripts/wikipedia.js
@@ -186,7 +186,7 @@ function initDefaults() {
let i = wikilessNormalRedirectsChecks.indexOf(instance);
if (i > -1) wikilessNormalRedirectsChecks.splice(i, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableWikipedia: true,
wikipediaRedirects: redirects,
wikipediaProtocol: "normal",
@@ -196,8 +196,7 @@ function initDefaults() {
wikilessNormalCustomRedirects: [],
wikilessTorCustomRedirects: [],
wikilessI2pCustomRedirects: [],
- })
- resolve();
+ }, () => resolve());
})
})
})
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index 468c4792..6f022e21 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -262,7 +262,7 @@ function initDefaults() {
if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1);
}
- await browser.storage.local.set({
+ browser.storage.local.set({
disableYoutube: false,
enableYoutubeCustomSettings: false,
onlyEmbeddedVideo: 'both',
@@ -291,8 +291,7 @@ function initDefaults() {
youtubeEmbedFrontend: 'invidious',
youtubeProtocol: 'normal',
- })
- resolve();
+ }, () => resolve())
})
})
})
diff --git a/src/assets/javascripts/youtubeMusic.js b/src/assets/javascripts/youtubeMusic.js
index 90a02ecf..8d007e39 100644
--- a/src/assets/javascripts/youtubeMusic.js
+++ b/src/assets/javascripts/youtubeMusic.js
@@ -80,13 +80,15 @@ function redirect(url) {
}
async function initDefaults() {
- await browser.storage.local.set({
- disableYoutubeMusic: true,
- youtubeMusicRedirects: redirects,
-
- beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
- beatbumpNormalCustomRedirects: [],
- })
+ return new Promise(resolve =>
+ browser.storage.local.set({
+ disableYoutubeMusic: true,
+ youtubeMusicRedirects: redirects,
+
+ beatbumpNormalRedirectsChecks: [...redirects.beatbump.normal],
+ beatbumpNormalCustomRedirects: [],
+ }, () => resolve())
+ )
}
export default {
diff --git a/src/manifest.json b/src/manifest.json
index a887eb1e..052d992f 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -1,7 +1,7 @@
{
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDescription__",
- "version": "2.0.0",
+ "version": "2.1.0",
"manifest_version": 2,
"browser_specific_settings": {
"gecko": {
@@ -25,7 +25,6 @@
"storage",
"unlimitedStorage",
"cookies",
- "browserSettings",
"privacy",
"contextMenus",
""
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index b8787f34..afb63c51 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -21,38 +21,59 @@ import lbryHelper from "../../assets/javascripts/lbry.js";
window.browser = window.browser || window.chrome;
+function openResetWarning() {
+ return new Promise(resolve => {
+ browser.storage.local.get(null, r => {
+ const old = encodeURIComponent(JSON.stringify(r))
+ browser.tabs.create({ url: browser.runtime.getURL(`/pages/background/reset_warning.html?data=${old}`) });
+ resolve();
+ })
+ })
+}
+
+
browser.runtime.onInstalled.addListener(
async details => {
// if (details.reason == 'install') {
- if (details.reason == 'install' || details.reason == "update") {
- if (details.reason == "update") browser.tabs.create({ url: browser.runtime.getURL("/pages/background/reset_warning.html") });
+ if (details.reason == 'install' || (details.reason == "update" && details.previousVersion != browser.runtime.getManifest().version)) {
+ if (details.reason == "update") await openResetWarning();
fetch('/instances/blacklist.json').then(response => response.text()).then(async data => {
- await browser.storage.local.clear();
- await browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare })
- await browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate })
- generalHelper.initDefaults();
- youtubeHelper.initDefaults();
- youtubeMusicHelper.initDefaults();
- twitterHelper.initDefaults();
- instagramHelper.initDefaults();
- mapsHelper.initDefaults();
- searchHelper.initDefaults();
- translateHelper.initDefaults();
- mediumHelper.initDefaults();
- redditHelper.initDefaults();
- wikipediaHelper.initDefaults();
- imgurHelper.initDefaults();
- tiktokHelper.initDefaults();
- sendTargetsHelper.initDefaults();
- peertubeHelper.initDefaults();
- lbryHelper.initDefaults();
+ browser.storage.local.clear(
+ () => {
+ browser.storage.local.set({ cloudflareBlackList: JSON.parse(data).cloudflare },
+ () => {
+ browser.storage.local.set({ authenticateBlackList: JSON.parse(data).authenticate },
+ () => {
+ generalHelper.initDefaults();
+ youtubeHelper.initDefaults();
+ youtubeMusicHelper.initDefaults();
+ twitterHelper.initDefaults();
+ instagramHelper.initDefaults();
+ mapsHelper.initDefaults();
+ searchHelper.initDefaults();
+ translateHelper.initDefaults();
+ mediumHelper.initDefaults();
+ redditHelper.initDefaults();
+ wikipediaHelper.initDefaults();
+ imgurHelper.initDefaults();
+ tiktokHelper.initDefaults();
+ sendTargetsHelper.initDefaults();
+ peertubeHelper.initDefaults();
+ lbryHelper.initDefaults();
+ })
+ })
+ });
+
})
}
}
)
youtubeHelper.pasteInvidiousCookies();
+youtubeHelper.pastePipedLocalStorage();
+youtubeHelper.pastePipedMaterialLocalStorage();
translateHelper.pasteSimplyTranslateCookies();
+translateHelper.pasteLingvaLocalStorage();
twitterHelper.pasteNitterCookies();
wikipediaHelper.pasteWikilessCookies();
searchHelper.pasteSearxCookies();
diff --git a/src/pages/background/reset_warning.html b/src/pages/background/reset_warning.html
index a3feee72..d2d493e0 100644
--- a/src/pages/background/reset_warning.html
+++ b/src/pages/background/reset_warning.html
@@ -47,7 +47,20 @@
previous version.
Sorry for the inconvenience, but we're going in a fast development process and can't
support nor convert older settings. It will reach a stable plateau though.
+
+
+
+
+
+
+
+
+ Export Settings
+