diff --git a/src/assets/javascripts/helpers/translate/set_lingva_preferences.js b/src/assets/javascripts/helpers/translate/set_lingva_preferences.js index 7380fa3..d40f28e 100644 --- a/src/assets/javascripts/helpers/translate/set_lingva_preferences.js +++ b/src/assets/javascripts/helpers/translate/set_lingva_preferences.js @@ -12,5 +12,7 @@ browser.storage.local.get( if (r.lingva_isauto !== undefined) localStorage.setItem('isauto', r.lingva_isauto); if (r.lingva_source !== undefined) localStorage.setItem('source', r.lingva_source); if (r.lingva_target !== undefined) localStorage.setItem('target', r.lingva_target); + + window.close(); } ) diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js index 996f0ee..3e85316 100644 --- a/src/assets/javascripts/helpers/translate/translate.js +++ b/src/assets/javascripts/helpers/translate/translate.js @@ -47,66 +47,48 @@ function initLingvaLocalStorage(test, url, tabId) { return new Promise(resolve => { browser.storage.local.get( [ + "translateDisable", + "translateProtocol", + "translateFrontend", "lingvaNormalRedirectsChecks", "lingvaNormalCustomRedirects", "lingvaTorRedirectsChecks", "lingvaTorCustomRedirects", ], r => { - let protocolHost = utils.protocolHost(url); + if (r.translateDisable || r.translateFrontend != 'lingva') { resolve(); return; } + const protocolHost = utils.protocolHost(url); if (![ ...r.lingvaNormalRedirectsChecks, - ...r.lingvaTorRedirectsChecks, ...r.lingvaNormalCustomRedirects, + ...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - if (!test) + if (!test) { browser.tabs.executeScript( tabId, - { - file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js", - runAt: "document_start" - } + { file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js", runAt: "document_start" } ); + + let checkedInstances; + if (r.translateProtocol == 'normal') checkedInstances = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects]; + if (r.translateProtocol == 'tor') checkedInstances = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects]; + const i = checkedInstances.indexOf(protocolHost); + if (i !== -1) checkedInstances.splice(i, 1); + if (checkedInstances.length === 0) { resolve(); return; } + for (const to of checkedInstances) + browser.tabs.create( + { url: to }, + tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/translate/set_lingva_preferences.js", runAt: "document_start" }) + ); + } resolve(true); } ) }) } -function setLingvaLocalStorage(url, tabId) { - return new Promise(resolve => { - browser.storage.local.get( - [ - "disableYoutube", - "youtubeFrontend", - "lingvaNormalRedirectsChecks", - "lingvaNormalCustomRedirects", - "lingvaTorRedirectsChecks", - "lingvaTorCustomRedirects", - ], - r => { - if (r.disableYoutube || r.youtubeFrontend != 'lingva') { resolve(); return; } - let protocolHost = utils.protocolHost(url); - if (![ - ...r.lingvaNormalRedirectsChecks, - ...r.lingvaTorRedirectsChecks, - ...r.lingvaNormalCustomRedirects, - ...r.lingvaTorCustomRedirects, - ].includes(protocolHost)) { resolve(); return; } - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/set_lingva_preferences.js", - runAt: "document_start" - } - ); - resolve(true); - }) - }) -} - function initSimplyTranslateCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( @@ -233,6 +215,7 @@ function switchInstance(url) { return new Promise(resolve => { browser.storage.local.get( [ + "translateDisable", "translateFrontend", "translateProtocol", "translateRedirects", @@ -248,6 +231,7 @@ function switchInstance(url) { "lingvaTorCustomRedirects", ], r => { + if (r.translateDisable) { resolve(); return; }; const protocolHost = utils.protocolHost(url); if (![ ...r.translateRedirects.simplyTranslate.normal, @@ -266,14 +250,14 @@ function switchInstance(url) { let instancesList; if (r.translateProtocol == 'normal') { if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]; - else if (r.translateFrontend == 'lingva') [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects]; + else if (r.translateFrontend == 'lingva') instancesList = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects]; } else if (r.translateProtocol == 'tor') { if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects]; else if (r.translateFrontend == 'lingva') instancesList = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects]; } - let index = instancesList.indexOf(protocolHost); + const index = instancesList.indexOf(protocolHost); if (index > -1) instancesList.splice(index, 1); if (instancesList.length === 0) { resolve(); return; } @@ -326,7 +310,6 @@ export default { initSimplyTranslateCookies, setSimplyTranslateCookies, initLingvaLocalStorage, - setLingvaLocalStorage, setRedirects, diff --git a/src/assets/javascripts/helpers/youtube/get_piped_preferences.js b/src/assets/javascripts/helpers/youtube/get_piped_preferences.js index 7f090ff..417d64d 100644 --- a/src/assets/javascripts/helpers/youtube/get_piped_preferences.js +++ b/src/assets/javascripts/helpers/youtube/get_piped_preferences.js @@ -1,7 +1,5 @@ window.browser = window.browser || window.chrome; -console.log('unifying piped'); - browser.storage.local.set( { 'piped_bufferGoal': localStorage.getItem("bufferGoal"), diff --git a/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js b/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js index 7e12fe2..7415255 100644 --- a/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js +++ b/src/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js @@ -4,5 +4,7 @@ browser.storage.local.get( "pipedMaterial_PREFERENCES", r => { if (r.pipedMaterial_PREFERENCES !== undefined) localStorage.setItem("PREFERENCES", r.pipedMaterial_PREFERENCES) + + window.close(); } ) \ No newline at end of file diff --git a/src/assets/javascripts/helpers/youtube/set_piped_preferences.js b/src/assets/javascripts/helpers/youtube/set_piped_preferences.js index b0aa223..d5ce49f 100644 --- a/src/assets/javascripts/helpers/youtube/set_piped_preferences.js +++ b/src/assets/javascripts/helpers/youtube/set_piped_preferences.js @@ -38,5 +38,7 @@ browser.storage.local.get( if (r.piped_theme !== undefined) localStorage.setItem("theme", r.piped_theme); if (r.piped_volume !== undefined) localStorage.setItem("volume", r.piped_volume); if (r.piped_watchHistory !== undefined) localStorage.setItem("watchHistory", r.piped_watchHistory); + + window.close(); } ) \ No newline at end of file diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index fc75a11..989e3f6 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -368,14 +368,17 @@ function initInvidiousCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ + "disableYoutube", "youtubeProtocol", + "youtubeFrontend", "invidiousNormalRedirectsChecks", "invidiousNormalCustomRedirects", "invidiousTorRedirectsChecks", "invidiousTorCustomRedirects", ], r => { - let protocolHost = utils.protocolHost(from); + if (r.disableYoutube || r.youtubeFrontend != 'invidious') { resolve(); return; } + const protocolHost = utils.protocolHost(from); if (![ ...r.invidiousNormalRedirectsChecks, ...r.invidiousTorRedirectsChecks, @@ -386,6 +389,8 @@ function initInvidiousCookies(test, from) { let checkedInstances; if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects] else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects] + const i = checkedInstances.indexOf(protocolHost); + if (i !== -1) checkedInstances.splice(i, 1); for (const to of checkedInstances) utils.copyCookie('invidious', from, to, 'PREFS'); } @@ -408,7 +413,7 @@ function setInvidiousCookies() { "invidiousTorCustomRedirects", ], r => { - if (r.disableYoutube || r.youtubeFrontend != 'invidious' || r.youtubeProtocol === undefined) { resolve(); return; } + if (r.disableYoutube || r.youtubeFrontend != 'invidious') { resolve(); return; } let checkedInstances; if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects] else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects] @@ -421,42 +426,11 @@ function setInvidiousCookies() { } function initPipedLocalStorage(test, url, tabId) { - return new Promise(resolve => { - browser.storage.local.get( - [ - "pipedNormalRedirectsChecks", - "pipedNormalCustomRedirects", - "pipedTorRedirectsChecks", - "pipedTorCustomRedirects", - ], - r => { - let protocolHost = utils.protocolHost(url); - if (![ - ...r.pipedNormalCustomRedirects, - ...r.pipedNormalRedirectsChecks, - ...r.pipedTorRedirectsChecks, - ...r.pipedTorCustomRedirects, - ].includes(protocolHost)) { resolve(); return; } - - if (!test) - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/get_piped_preferences.js", - runAt: "document_start" - } - ); - resolve(true); - } - ) - }) -} - -function setPipedLocalStorage(url, tabId) { return new Promise(resolve => { browser.storage.local.get( [ "disableYoutube", + "youtubeProtocol", "youtubeFrontend", "pipedNormalRedirectsChecks", "pipedNormalCustomRedirects", @@ -464,21 +438,29 @@ function setPipedLocalStorage(url, tabId) { "pipedTorCustomRedirects", ], r => { - if (!r.disableYoutube && r.youtubeFrontend == 'pipedMaterial') { resolve(); return; } - let protocolHost = utils.protocolHost(url); + if (r.disableYoutube || r.youtubeFrontend != 'piped') { resolve(); return; } + const protocolHost = utils.protocolHost(url); if (![ + ...r.pipedNormalCustomRedirects, ...r.pipedNormalRedirectsChecks, ...r.pipedTorRedirectsChecks, - ...r.pipedNormalCustomRedirects, ...r.pipedTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js", - runAt: "document_start" - } - ); + + if (!test) { + browser.tabs.executeScript(tabId, { file: "/assets/javascripts/helpers/youtube/get_piped_preferences.js", runAt: "document_start" }); + + let checkedInstances; + if (r.youtubeProtocol == 'normal') checkedInstances = [...r.pipedNormalCustomRedirects, ...r.pipedNormalRedirectsChecks] + else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.pipedTorRedirectsChecks, ...r.pipedTorCustomRedirects] + const i = checkedInstances.indexOf(protocolHost); + if (i !== -1) checkedInstances.splice(i, 1); + for (const to of checkedInstances) + browser.tabs.create( + { url: to }, + tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/youtube/set_piped_preferences.js", runAt: "document_start" }) + ); + } resolve(true); } ) @@ -486,46 +468,15 @@ function setPipedLocalStorage(url, tabId) { } function initPipedMaterialLocalStorage(test, url, tabId,) { - return new Promise(resolve => { - browser.storage.local.get( - [ - "pipedMaterialNormalRedirectsChecks", - "pipedMaterialNormalCustomRedirects", - "pipedMaterialTorRedirectsChecks", - "pipedMaterialTorCustomRedirects", - ], - r => { - const protocolHost = utils.protocolHost(url); - if (![ - ...r.pipedMaterialNormalCustomRedirects, - ...r.pipedMaterialNormalRedirectsChecks, - ...r.pipedMaterialTorRedirectsChecks, - ...r.pipedMaterialTorCustomRedirects, - ].includes(protocolHost)) { resolve(); return; } - - if (!test) - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js", - runAt: "document_start" - } - ); - resolve(true); - } - ) - }) -} - -function setPipedMaterialLocalStorage(url, tabId) { return new Promise(resolve => { browser.storage.local.get( [ "disableYoutube", + "youtubeProtocol", "youtubeFrontend", "pipedMaterialNormalRedirectsChecks", - "pipedMaterialTorRedirectsChecks", "pipedMaterialNormalCustomRedirects", + "pipedMaterialTorRedirectsChecks", "pipedMaterialTorCustomRedirects", ], r => { @@ -533,17 +484,25 @@ function setPipedMaterialLocalStorage(url, tabId) { const protocolHost = utils.protocolHost(url); if (![ ...r.pipedMaterialNormalRedirectsChecks, - ...r.pipedMaterialTorRedirectsChecks, ...r.pipedMaterialNormalCustomRedirects, + ...r.pipedMaterialTorRedirectsChecks, ...r.pipedMaterialTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js", - runAt: "document_start" - } - ); + + if (!test) { + browser.tabs.executeScript(tabId, { file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js", runAt: "document_start" }); + + let checkedInstances; + if (r.youtubeProtocol == 'normal') checkedInstances = [...r.pipedMaterialNormalRedirectsChecks, ...r.pipedMaterialNormalCustomRedirects] + else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.pipedMaterialTorRedirectsChecks, ...r.pipedMaterialTorCustomRedirects] + const i = checkedInstances.indexOf(protocolHost); + if (i !== -1) checkedInstances.splice(i, 1); + for (const to of checkedInstances) + browser.tabs.create( + { url: to }, + tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/helpers/youtube/set_pipedMaterial_preferences.js", runAt: "document_start" }) + ); + } resolve(true); } ) @@ -555,15 +514,19 @@ function removeXFrameOptions(e) { browser.storage.local.get( [ "youtubeRedirects", - "pipedMaterialNormalRedirectsChecks", - "pipedMaterialTorRedirectsChecks", "invidiousNormalCustomRedirects", "invidiousTorCustomRedirects", + + "pipedNormalCustomRedirects", + "pipedTorCustomRedirects", + + "pipedMaterialNormalCustomRedirects", + "pipedMaterialTorCustomRedirects", ], r => { const url = new URL(e.url); let protocolHost = utils.protocolHost(url); - const list = [ + if (![ ...r.youtubeRedirects.invidious.normal, ...r.youtubeRedirects.invidious.tor, ...r.youtubeRedirects.piped.normal, @@ -573,14 +536,17 @@ function removeXFrameOptions(e) { ...r.invidiousTorCustomRedirects, ...r.pipedNormalCustomRedirects, - ...r.pipedTorCustomRedirects - ]; - if (!list.includes(protocolHost) || e.type != 'sub_frame') { resolve(); return; } + ...r.pipedTorCustomRedirects, + + ...r.pipedMaterialNormalCustomRedirects, + ...r.pipedMaterialTorCustomRedirects, + ].includes(protocolHost) || e.type != 'sub_frame') { resolve(); return; } let isChanged = false; - for (const i in e.responseHeaders) if (e.responseHeaders[i].name == 'x-frame-options') { - e.responseHeaders.splice(i, 1); - isChanged = true; - } + for (const i in e.responseHeaders) + if (e.responseHeaders[i].name == 'x-frame-options') { + e.responseHeaders.splice(i, 1); + isChanged = true; + } if (isChanged) resolve({ responseHeaders: e.responseHeaders }); }) }) @@ -589,8 +555,6 @@ function removeXFrameOptions(e) { export default { setRedirects, initPipedMaterialLocalStorage, - setPipedLocalStorage, - setPipedMaterialLocalStorage, initInvidiousCookies, setInvidiousCookies, diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 5a6dc82..211ecf9 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -216,20 +216,6 @@ browser.webRequest.onErrorOccurred.addListener( { urls: [""], } ) -browser.tabs.onUpdated.addListener( - async (tabId, changeInfo, _) => { - await wholeInit(); - let url; - try { url = new URL(changeInfo.url); } - catch (_) { return } - let result = await youtubeHelper.setPipedLocalStorage(url, tabId); - if (!result) result = await youtubeHelper.setPipedMaterialLocalStorage(url, tabId); - if (!result) result = await translateHelper.initLingvaLocalStorage(url, tabId); - } -); - - - browser.commands.onCommand.addListener( command => { if (command === 'switchInstance') utils.switchInstance(); diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js index f269020..c943ddd 100644 --- a/src/pages/options/general/general.js +++ b/src/pages/options/general/general.js @@ -80,10 +80,8 @@ function importError() { setTimeout(() => importSettingsElementText.innerHTML = oldHTML, 1000); } -let resetSettingsElement = document.getElementById("reset-settings"); -resetSettingsElement.addEventListener("click", +document.getElementById("reset-settings").addEventListener("click", async () => { - console.log("reset"); await browser.storage.local.clear(); fetch('/instances/blocklist.json').then(response => response.text()).then(async data => { await browser.storage.local.set({ cloudflareList: JSON.parse(data) }) diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 58d45d6..824f178 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -94,7 +94,6 @@ utils.unify(true).then(r => { if (!r) document.getElementById('unify_div').style.display = 'none'; else { const unify = document.getElementById('unify'); - console.log('addlistner'); unify.addEventListener("click", () => utils.unify(false, unify)); } })