diff options
Diffstat (limited to 'src/assets/javascripts')
-rw-r--r-- | src/assets/javascripts/helpers/reddit.js | 83 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/search.js | 121 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/tiktok.js | 18 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/translate/translate.js | 141 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/twitter.js | 41 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/utils.js | 93 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/wikipedia.js | 27 | ||||
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 131 |
8 files changed, 322 insertions, 333 deletions
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js index 9617d921..e768b205 100644 --- a/src/assets/javascripts/helpers/reddit.js +++ b/src/assets/javascripts/helpers/reddit.js @@ -54,17 +54,14 @@ function setTedditRedirects(val) { browser.storage.local.set({ tedditTorRedirectsChecks }) } -let libredditNormalRedirectsChecks; -let libredditTorRedirectsChecks; -let libredditNormalCustomRedirects = []; -let libredditTorCustomRedirects = []; +let + libredditNormalRedirectsChecks, + libredditTorRedirectsChecks, -let tedditNormalRedirectsChecks; -let tedditTorRedirectsChecks; -let tedditNormalCustomRedirects = []; -let tedditTorCustomRedirects = []; + tedditNormalRedirectsChecks, + tedditTorRedirectsChecks; -function initLibredditCookies(from) { +function initLibredditCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -81,22 +78,24 @@ function initLibredditCookies(from) { ...r.libredditTorRedirectsChecks, ...r.libredditNormalCustomRedirects, ...r.libredditTorCustomRedirects, - ].includes(protocolHost)) resolve(); + ].includes(protocolHost)) { resolve(); return; } - let checkedInstances; - if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects]; - else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects]; - for (const to of checkedInstances) { - utils.copyCookie('libreddit', from, to, "theme"); - utils.copyCookie('libreddit', from, to, "front_page"); - utils.copyCookie('libreddit', from, to, "layout"); - utils.copyCookie('libreddit', from, to, "wide"); - utils.copyCookie('libreddit', from, to, "post_sort"); - utils.copyCookie('libreddit', from, to, "comment_sort"); - utils.copyCookie('libreddit', from, to, "show_nsfw"); - utils.copyCookie('libreddit', from, to, "autoplay_videos"); - utils.copyCookie('libreddit', from, to, "use_hls"); - utils.copyCookie('libreddit', from, to, "hide_hls_notification"); + if (!test) { + let checkedInstances; + if (r.redditProtocol == 'normal') checkedInstances = [...r.libredditNormalRedirectsChecks, ...r.libredditNormalCustomRedirects]; + else if (r.redditProtocol == 'tor') checkedInstances = [...r.libredditTorRedirectsChecks, ...r.libredditTorCustomRedirects]; + for (const to of checkedInstances) { + utils.copyCookie('libreddit', from, to, "theme"); + utils.copyCookie('libreddit', from, to, "front_page"); + utils.copyCookie('libreddit', from, to, "layout"); + utils.copyCookie('libreddit', from, to, "wide"); + utils.copyCookie('libreddit', from, to, "post_sort"); + utils.copyCookie('libreddit', from, to, "comment_sort"); + utils.copyCookie('libreddit', from, to, "show_nsfw"); + utils.copyCookie('libreddit', from, to, "autoplay_videos"); + utils.copyCookie('libreddit', from, to, "use_hls"); + utils.copyCookie('libreddit', from, to, "hide_hls_notification"); + } } resolve(true); } @@ -137,7 +136,7 @@ function setLibredditCookies() { ) } -function initTedditCookies(from) { +function initTedditCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -156,22 +155,24 @@ function initTedditCookies(from) { ...r.tedditTorCustomRedirects, ].includes(protocolHost)) resolve(); - let checkedInstances; - if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects] - else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects] - for (const to of checkedInstances) { - utils.copyCookie('teddit', from, to, 'collapse_child_comments') - utils.copyCookie('teddit', from, to, 'domain_instagram') - utils.copyCookie('teddit', from, to, 'domain_twitter') - utils.copyCookie('teddit', from, to, 'domain_youtube') - utils.copyCookie('teddit', from, to, 'flairs') - utils.copyCookie('teddit', from, to, 'highlight_controversial') - utils.copyCookie('teddit', from, to, 'nsfw_enabled') - utils.copyCookie('teddit', from, to, 'post_media_max_height') - utils.copyCookie('teddit', from, to, 'show_upvoted_percentage') - utils.copyCookie('teddit', from, to, 'show_upvotes') - utils.copyCookie('teddit', from, to, 'theme') - utils.copyCookie('teddit', from, to, 'videos_muted') + if (!test) { + let checkedInstances; + if (r.redditProtocol == 'normal') checkedInstances = [...r.tedditNormalRedirectsChecks, ...r.tedditNormalCustomRedirects] + else if (r.redditProtocol == 'tor') checkedInstances = [...r.tedditTorRedirectsChecks, ...r.tedditTorCustomRedirects] + for (const to of checkedInstances) { + utils.copyCookie('teddit', from, to, 'collapse_child_comments') + utils.copyCookie('teddit', from, to, 'domain_instagram') + utils.copyCookie('teddit', from, to, 'domain_twitter') + utils.copyCookie('teddit', from, to, 'domain_youtube') + utils.copyCookie('teddit', from, to, 'flairs') + utils.copyCookie('teddit', from, to, 'highlight_controversial') + utils.copyCookie('teddit', from, to, 'nsfw_enabled') + utils.copyCookie('teddit', from, to, 'post_media_max_height') + utils.copyCookie('teddit', from, to, 'show_upvoted_percentage') + utils.copyCookie('teddit', from, to, 'show_upvotes') + utils.copyCookie('teddit', from, to, 'theme') + utils.copyCookie('teddit', from, to, 'videos_muted') + } } resolve(true); } diff --git a/src/assets/javascripts/helpers/search.js b/src/assets/javascripts/helpers/search.js index 37bcdf72..56f0f025 100644 --- a/src/assets/javascripts/helpers/search.js +++ b/src/assets/javascripts/helpers/search.js @@ -102,31 +102,15 @@ let searxI2pRedirectsChecks, searxTorRedirectsChecks, - searxNormalCustomRedirects, - searxTorCustomRedirects, - searxI2pCustomRedirects, - searxngNormalRedirectsChecks, searxngI2pRedirectsChecks, searxngTorRedirectsChecks, - searxngNormalCustomRedirects, - searxngTorCustomRedirects, - searxngI2pCustomRedirects, - whoogleNormalRedirectsChecks, whoogleI2pRedirectsChecks, - whoogleTorRedirectsChecks, - - whoogleNormalCustomRedirects, - whoogleTorCustomRedirects, - whoogleI2pCustomRedirects; + whoogleTorRedirectsChecks; -let disable, // disableSearch - frontend, // searchFrontend - protocol; // searchProtocol - -function initSearxCookies(from) { +function initSearxCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -149,29 +133,30 @@ function initSearxCookies(from) { ...r.searxI2pCustomRedirects, ].includes(protocolHost)) return; - - let checkedInstances; - if (protocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects]; - else if (protocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects]; - else if (protocol == 'i2p') checkedInstances = [...r.searxI2pRedirectsChecks, ...r.searxI2pCustomRedirects]; - for (const to of checkedInstances) { - utils.copyCookie('searx', from, to, 'advanced_search'); - utils.copyCookie('searx', from, to, 'autocomplete'); - utils.copyCookie('searx', from, to, 'categories'); - utils.copyCookie('searx', from, to, 'disabled_engines'); - utils.copyCookie('searx', from, to, 'disabled_plugins'); - utils.copyCookie('searx', from, to, 'doi_resolver'); - utils.copyCookie('searx', from, to, 'enabled_engines'); - utils.copyCookie('searx', from, to, 'enabled_plugins'); - utils.copyCookie('searx', from, to, 'image_proxy'); - utils.copyCookie('searx', from, to, 'language'); - utils.copyCookie('searx', from, to, 'locale'); - utils.copyCookie('searx', from, to, 'method'); - utils.copyCookie('searx', from, to, 'oscar-style'); - utils.copyCookie('searx', from, to, 'results_on_new_tab'); - utils.copyCookie('searx', from, to, 'safesearch'); - utils.copyCookie('searx', from, to, 'theme'); - utils.copyCookie('searx', from, to, 'tokens'); + if (!test) { + let checkedInstances; + if (r.searchProtocol == 'normal') checkedInstances = [...r.searxNormalRedirectsChecks, ...r.searxNormalCustomRedirects]; + else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxTorRedirectsChecks, ...r.searxTorCustomRedirects]; + else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxI2pRedirectsChecks, ...r.searxI2pCustomRedirects]; + for (const to of checkedInstances) { + utils.copyCookie('searx', from, to, 'advanced_search'); + utils.copyCookie('searx', from, to, 'autocomplete'); + utils.copyCookie('searx', from, to, 'categories'); + utils.copyCookie('searx', from, to, 'disabled_engines'); + utils.copyCookie('searx', from, to, 'disabled_plugins'); + utils.copyCookie('searx', from, to, 'doi_resolver'); + utils.copyCookie('searx', from, to, 'enabled_engines'); + utils.copyCookie('searx', from, to, 'enabled_plugins'); + utils.copyCookie('searx', from, to, 'image_proxy'); + utils.copyCookie('searx', from, to, 'language'); + utils.copyCookie('searx', from, to, 'locale'); + utils.copyCookie('searx', from, to, 'method'); + utils.copyCookie('searx', from, to, 'oscar-style'); + utils.copyCookie('searx', from, to, 'results_on_new_tab'); + utils.copyCookie('searx', from, to, 'safesearch'); + utils.copyCookie('searx', from, to, 'theme'); + utils.copyCookie('searx', from, to, 'tokens'); + } } resolve(true); } @@ -218,7 +203,7 @@ function setSearxCookies() { ) } -function initSearxngCookies(from) { +function initSearxngCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -241,30 +226,32 @@ function initSearxngCookies(from) { ...r.searxngI2pCustomRedirects, ].includes(protocolHost)) return; - let checkedInstances; - if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects]; - else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects]; - else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxngI2pRedirectsChecks, ...r.searxngI2pCustomRedirects]; - for (const to of checkedInstances) { - utils.copyCookie('searxng', from, to, 'autocomplete'); - utils.copyCookie('searxng', from, to, 'categories'); - utils.copyCookie('searxng', from, to, 'disabled_engines'); - utils.copyCookie('searxng', from, to, 'disabled_plugins'); - utils.copyCookie('searxng', from, to, 'doi_resolver'); - utils.copyCookie('searxng', from, to, 'enabled_plugins'); - utils.copyCookie('searxng', from, to, 'enabled_engines'); - utils.copyCookie('searxng', from, to, 'image_proxy'); - utils.copyCookie('searxng', from, to, 'infinite_scroll'); - utils.copyCookie('searxng', from, to, 'language'); - utils.copyCookie('searxng', from, to, 'locale'); - utils.copyCookie('searxng', from, to, 'maintab'); - utils.copyCookie('searxng', from, to, 'method'); - utils.copyCookie('searxng', from, to, 'query_in_title'); - utils.copyCookie('searxng', from, to, 'results_on_new_tab'); - utils.copyCookie('searxng', from, to, 'safesearch'); - utils.copyCookie('searxng', from, to, 'simple_style'); - utils.copyCookie('searxng', from, to, 'theme'); - utils.copyCookie('searxng', from, to, 'tokens'); + if (!test) { + let checkedInstances; + if (r.searchProtocol == 'normal') checkedInstances = [...r.searxngNormalRedirectsChecks, ...r.searxngNormalCustomRedirects]; + else if (r.searchProtocol == 'tor') checkedInstances = [...r.searxngTorRedirectsChecks, ...r.searxngTorCustomRedirects]; + else if (r.searchProtocol == 'i2p') checkedInstances = [...r.searxngI2pRedirectsChecks, ...r.searxngI2pCustomRedirects]; + for (const to of checkedInstances) { + utils.copyCookie('searxng', from, to, 'autocomplete'); + utils.copyCookie('searxng', from, to, 'categories'); + utils.copyCookie('searxng', from, to, 'disabled_engines'); + utils.copyCookie('searxng', from, to, 'disabled_plugins'); + utils.copyCookie('searxng', from, to, 'doi_resolver'); + utils.copyCookie('searxng', from, to, 'enabled_plugins'); + utils.copyCookie('searxng', from, to, 'enabled_engines'); + utils.copyCookie('searxng', from, to, 'image_proxy'); + utils.copyCookie('searxng', from, to, 'infinite_scroll'); + utils.copyCookie('searxng', from, to, 'language'); + utils.copyCookie('searxng', from, to, 'locale'); + utils.copyCookie('searxng', from, to, 'maintab'); + utils.copyCookie('searxng', from, to, 'method'); + utils.copyCookie('searxng', from, to, 'query_in_title'); + utils.copyCookie('searxng', from, to, 'results_on_new_tab'); + utils.copyCookie('searxng', from, to, 'safesearch'); + utils.copyCookie('searxng', from, to, 'simple_style'); + utils.copyCookie('searxng', from, to, 'theme'); + utils.copyCookie('searxng', from, to, 'tokens'); + } } resolve(true); } @@ -350,7 +337,7 @@ function redirect(url) { "searxngI2pCustomRedirects", ], r => { - if (disable) { resolve(); return; } + if (r.disableSearch) { resolve(); return; } if (!targets.some(rx => rx.test(url.href))) { resolve(); return; } if (url.searchParams.has('tbm')) { resolve(); return; } if (url.hostname.includes('google') && !url.searchParams.has('q') && url.pathname != '/') { resolve(); return; } diff --git a/src/assets/javascripts/helpers/tiktok.js b/src/assets/javascripts/helpers/tiktok.js index 590fca1a..f85b9986 100644 --- a/src/assets/javascripts/helpers/tiktok.js +++ b/src/assets/javascripts/helpers/tiktok.js @@ -39,7 +39,7 @@ let proxiTokTorCustomRedirects = []; let disable; // disableTiktok let protocol; -function initProxiTokCookies(from) { +function initProxiTokCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -57,13 +57,15 @@ function initProxiTokCookies(from) { ...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects, ].includes(protocolHost)) resolve(); - - let checkedInstances; - if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects] - else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects] - for (const to of checkedInstances) { - utils.copyCookie('proxitok', from, to, 'theme'); - utils.copyCookie('proxitok', from, to, 'api-legacy'); + + if (!test) { + let checkedInstances; + if (r.tiktokProtocol == 'normal') checkedInstances = [...r.proxiTokNormalRedirectsChecks, ...r.proxiTokNormalCustomRedirects] + else if (r.tiktokProtocol == 'tor') checkedInstances = [...r.proxiTokTorRedirectsChecks, ...r.proxiTokTorCustomRedirects] + for (const to of checkedInstances) { + utils.copyCookie('proxitok', from, to, 'theme'); + utils.copyCookie('proxitok', from, to, 'api-legacy'); + } } resolve(true); } diff --git a/src/assets/javascripts/helpers/translate/translate.js b/src/assets/javascripts/helpers/translate/translate.js index d78a66b2..8ce8a2c2 100644 --- a/src/assets/javascripts/helpers/translate/translate.js +++ b/src/assets/javascripts/helpers/translate/translate.js @@ -17,6 +17,10 @@ let redirects = { } }; +let + simplyTranslateNormalRedirectsChecks, + lingvaNormalRedirectsChecks; + function setRedirects(val) { browser.storage.local.get('cloudflareList', async r => { redirects = val; @@ -24,11 +28,11 @@ function setRedirects(val) { lingvaNormalRedirectsChecks = [...redirects.lingva.normal] for (const instance of r.cloudflareList) { let i; - i = simplyTranslateNormalRedirectsChecks.indexOf(instance); - if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1); + const a = simplyTranslateNormalRedirectsChecks.indexOf(instance); + if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1); - i = lingvaNormalRedirectsChecks.indexOf(instance); - if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1); + const b = lingvaNormalRedirectsChecks.indexOf(instance); + if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1); } browser.storage.local.set({ translateRedirects: redirects, @@ -40,11 +44,7 @@ function setRedirects(val) { }) } -let - simplyTranslateNormalRedirectsChecks, - lingvaNormalRedirectsChecks; - -function initLingvaLocalStorage(url, tabId) { +function initLingvaLocalStorage(test, url, tabId) { return new Promise(resolve => { browser.storage.local.get( [ @@ -61,13 +61,15 @@ function initLingvaLocalStorage(url, tabId) { ...r.lingvaNormalCustomRedirects, ...r.lingvaTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js", - runAt: "document_start" - } - ); + + if (!test) + browser.tabs.executeScript( + tabId, + { + file: "/assets/javascripts/helpers/translate/get_lingva_preferences.js", + runAt: "document_start" + } + ); resolve(true); } ) @@ -106,7 +108,7 @@ function setLingvaLocalStorage(url, tabId) { }) } -function initSimplyTranslateCookies(from) { +function initSimplyTranslateCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -128,16 +130,17 @@ function initSimplyTranslateCookies(from) { ...r.simplyTranslateI2pRedirectsChecks, ...r.simplyTranslateI2pCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - - let checkedInstances; - if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects] - else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects] - else if (r.translateProtocol == 'i2p') checkedInstances = [...r.simplyTranslateI2pRedirectsChecks, ...r.simplyTranslateI2pCustomRedirects] - for (const to of checkedInstances) { - utils.copyCookie('simplyTranslate', from, to, 'from_lang'); - utils.copyCookie('simplyTranslate', from, to, 'to_lang'); - utils.copyCookie('simplyTranslate', from, to, 'tts_enabled'); - utils.copyCookie('simplyTranslate', from, to, 'use_text_fields'); + if (!test) { + let checkedInstances; + if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects] + else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects] + else if (r.translateProtocol == 'i2p') checkedInstances = [...r.simplyTranslateI2pRedirectsChecks, ...r.simplyTranslateI2pCustomRedirects] + for (const to of checkedInstances) { + utils.copyCookie('simplyTranslate', from, to, 'from_lang'); + utils.copyCookie('simplyTranslate', from, to, 'to_lang'); + utils.copyCookie('simplyTranslate', from, to, 'tts_enabled'); + utils.copyCookie('simplyTranslate', from, to, 'use_text_fields'); + } } resolve(true); } @@ -157,7 +160,7 @@ function setSimplyTranslateCookies() { "simplyTranslateTorCustomRedirects", ], r => { - if (r.translateDisable || r.translateFrontend != 'simplyTranslate' || r.translateProtocol === undefined) return; + if (r.translateDisable || r.translateFrontend != 'simplyTranslate') return; let checkedInstances; if (r.translateProtocol == 'normal') checkedInstances = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects] else if (r.translateProtocol == 'tor') checkedInstances = [...r.simplyTranslateTorRedirectsChecks, ...r.simplyTranslateTorCustomRedirects] @@ -201,26 +204,24 @@ function redirect(url) { if (instancesList.length === 0) { resolve(); return; }; let randomInstance = utils.getRandomInstance(instancesList) - console.log(`${randomInstance}/${url.search}`); resolve(`${randomInstance}/${url.search}`); - } else if (r.translateFrontend == 'lingva') { let params_arr = url.search.split('&'); params_arr[0] = params_arr[0].substring(1); - let myMap = {}; + let params = {}; for (let i = 0; i < params_arr.length; i++) { let pair = params_arr[i].split('='); - myMap[pair[0]] = pair[1]; + params[pair[0]] = pair[1]; } let instancesList; if (r.translateProtocol == 'normal') instancesList = [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects]; if (r.translateProtocol == 'tor') instancesList = [...r.lingvaTorRedirectsChecks, ...r.lingvaTorCustomRedirects]; if (instancesList.length === 0) { resolve(); return; } - let randomInstance = utils.getRandomInstance(instancesList) - if (myMap.sl && myMap.tl && myMap.text) { - resolve(`${randomInstance}/${myMap.sl}/${myMap.tl}/${myMap.text}`); return; + let randomInstance = utils.getRandomInstance(instancesList) + if (params.sl && params.tl && params.text) { + resolve(`${randomInstance}/${params.sl}/${params.tl}/${params.text}`); return; } resolve(randomInstance); } @@ -248,9 +249,8 @@ function switchInstance(url) { "lingvaTorCustomRedirects", ], r => { - let protocolHost = utils.protocolHost(url); - - let translateList = [ + const protocolHost = utils.protocolHost(url); + if (![ ...r.translateRedirects.simplyTranslate.normal, ...r.translateRedirects.simplyTranslate.tor, @@ -262,12 +262,9 @@ function switchInstance(url) { ...r.lingvaNormalCustomRedirects, ...r.lingvaTorCustomRedirects, - ] - - if (!translateList.includes(protocolHost)) { resolve(); return; } + ].includes(protocolHost)) { resolve(); return; } let instancesList; - if (r.translateProtocol == 'normal') { if (r.translateFrontend == 'simplyTranslate') instancesList = [...r.simplyTranslateNormalRedirectsChecks, ...r.simplyTranslateNormalCustomRedirects]; else if (r.translateFrontend == 'lingva') [...r.lingvaNormalRedirectsChecks, ...r.lingvaNormalCustomRedirects]; @@ -282,45 +279,45 @@ function switchInstance(url) { if (instancesList.length === 0) { resolve(); return; } let randomInstance = utils.getRandomInstance(instancesList); - return `${randomInstance}${url.pathname}${url.search}`; + resolve(`${randomInstance}${url.pathname}${url.search}`); }) }) } function initDefaults() { - fetch('/instances/data.json').then(response => response.text()).then(async data => { + fetch('/instances/data.json').then(response => response.text()).then(data => { let dataJson = JSON.parse(data); redirects.simplyTranslate = dataJson.simplyTranslate; redirects.lingva = dataJson.lingva; - browser.storage.local.get('cloudflareList', async r => { - simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]; - lingvaNormalRedirectsChecks = [...redirects.lingva.normal] - for (const instance of r.cloudflareList) { - let i; - - i = simplyTranslateNormalRedirectsChecks.indexOf(instance); - if (i > -1) simplyTranslateNormalRedirectsChecks.splice(i, 1); - - i = lingvaNormalRedirectsChecks.indexOf(instance); - if (i > -1) lingvaNormalRedirectsChecks.splice(i, 1); - } - await browser.storage.local.set({ - translateDisable: false, - translateFrontend: "simplyTranslate", - translateProtocol: 'normal', - translateRedirects: redirects, - - simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks, - simplyTranslateNormalCustomRedirects: [], - simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor], - simplyTranslateTorCustomRedirects: [], - - lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks, - lingvaNormalCustomRedirects: [], - lingvaTorRedirectsChecks: [...redirects.lingva.tor], - lingvaTorCustomRedirects: [], + browser.storage.local.get( + 'cloudflareList', + r => { + simplyTranslateNormalRedirectsChecks = [...redirects.simplyTranslate.normal]; + lingvaNormalRedirectsChecks = [...redirects.lingva.normal] + for (const instance of r.cloudflareList) { + const a = simplyTranslateNormalRedirectsChecks.indexOf(instance); + if (a > -1) simplyTranslateNormalRedirectsChecks.splice(a, 1); + + const b = lingvaNormalRedirectsChecks.indexOf(instance); + if (b > -1) lingvaNormalRedirectsChecks.splice(b, 1); + } + browser.storage.local.set({ + translateDisable: false, + translateFrontend: "simplyTranslate", + translateProtocol: 'normal', + translateRedirects: redirects, + + simplyTranslateNormalRedirectsChecks: simplyTranslateNormalRedirectsChecks, + simplyTranslateNormalCustomRedirects: [], + simplyTranslateTorRedirectsChecks: [...redirects.simplyTranslate.tor], + simplyTranslateTorCustomRedirects: [], + + lingvaNormalRedirectsChecks: lingvaNormalRedirectsChecks, + lingvaNormalCustomRedirects: [], + lingvaTorRedirectsChecks: [...redirects.lingva.tor], + lingvaTorCustomRedirects: [], + }) }) - }) }) } diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 2660299c..811edc1d 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -180,7 +180,7 @@ function removeXFrameOptions(e) { }) } -function initNitterCookies(from) { +function initNitterCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -201,25 +201,26 @@ function initNitterCookies(from) { ].includes(protocolHost) ) { resolve(); return; } - let checkedInstances; - if (r.twitterProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects] - else if (r.twitterProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects] - - for (const to of checkedInstances) { - utils.copyCookie('nitter', from, to, 'theme'); - utils.copyCookie('nitter', from, to, 'infiniteScroll'); - utils.copyCookie('nitter', from, to, 'stickyProfile'); - utils.copyCookie('nitter', from, to, 'bidiSupport'); - utils.copyCookie('nitter', from, to, 'hideTweetStats'); - utils.copyCookie('nitter', from, to, 'hideBanner'); - utils.copyCookie('nitter', from, to, 'hidePins'); - utils.copyCookie('nitter', from, to, 'hideReplies'); - utils.copyCookie('nitter', from, to, 'squareAvatars'); - utils.copyCookie('nitter', from, to, 'mp4Playback'); - utils.copyCookie('nitter', from, to, 'hlsPlayback'); - utils.copyCookie('nitter', from, to, 'proxyVideos'); - utils.copyCookie('nitter', from, to, 'muteVideos'); - utils.copyCookie('nitter', from, to, 'autoplayGifs'); + if (!test) { + let checkedInstances; + if (r.twitterProtocol == 'normal') checkedInstances = [...r.nitterNormalRedirectsChecks, ...r.nitterNormalCustomRedirects] + else if (r.twitterProtocol == 'tor') checkedInstances = [...r.nitterTorRedirectsChecks, ...r.nitterTorCustomRedirects] + for (const to of checkedInstances) { + utils.copyCookie('nitter', from, to, 'theme'); + utils.copyCookie('nitter', from, to, 'infiniteScroll'); + utils.copyCookie('nitter', from, to, 'stickyProfile'); + utils.copyCookie('nitter', from, to, 'bidiSupport'); + utils.copyCookie('nitter', from, to, 'hideTweetStats'); + utils.copyCookie('nitter', from, to, 'hideBanner'); + utils.copyCookie('nitter', from, to, 'hidePins'); + utils.copyCookie('nitter', from, to, 'hideReplies'); + utils.copyCookie('nitter', from, to, 'squareAvatars'); + utils.copyCookie('nitter', from, to, 'mp4Playback'); + utils.copyCookie('nitter', from, to, 'hlsPlayback'); + utils.copyCookie('nitter', from, to, 'proxyVideos'); + utils.copyCookie('nitter', from, to, 'muteVideos'); + utils.copyCookie('nitter', from, to, 'autoplayGifs'); + } } resolve(true); }) diff --git a/src/assets/javascripts/helpers/utils.js b/src/assets/javascripts/helpers/utils.js index f864f90b..59fff19e 100644 --- a/src/assets/javascripts/helpers/utils.js +++ b/src/assets/javascripts/helpers/utils.js @@ -370,7 +370,7 @@ function copyRaw(test, copyRawElement) { }) } -function unify(unifyElement) { +function unify(test, unifyElement) { return new Promise(resolve => { browser.tabs.query( { active: true, currentWindow: true }, @@ -378,35 +378,36 @@ function unify(unifyElement) { let currTab = tabs[0] if (currTab) { let url; - try { - url = new URL(currTab.url); - } catch { resolve(); return; } + try { url = new URL(currTab.url); } + catch { resolve(); return; } - let result = await youtubeHelper.initInvidiousCookies(url); - if (!result) result = await youtubeHelper.initPipedLocalStorage(url, currTab.id); - if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(url, currTab.id); + let result = await youtubeHelper.initInvidiousCookies(test, url); + if (!result) result = await youtubeHelper.initPipedLocalStorage(test, url, currTab.id); + if (!result) result = await youtubeHelper.initPipedMaterialLocalStorage(test, url, currTab.id); - if (!result) result = await twitterHelper.initNitterCookies(url); + if (!result) result = await twitterHelper.initNitterCookies(test, url); - if (!result) result = await redditHelper.initLibredditCookies(url); - if (!result) result = await redditHelper.initTedditCookies(url); + if (!result) result = await redditHelper.initLibredditCookies(test, url); + if (!result) result = await redditHelper.initTedditCookies(test, url); - if (!result) result = await searchHelper.initSearxCookies(url); - if (!result) result = await searchHelper.initSearxngCookies(url); + if (!result) result = await searchHelper.initSearxCookies(test, url); + if (!result) result = await searchHelper.initSearxngCookies(test, url); - if (!result) result = await tiktokHelper.initProxiTokCookies(url); + if (!result) result = await tiktokHelper.initProxiTokCookies(test, url); - if (!result) result = await wikipediaHelper.initWikilessCookies(url); + if (!result) result = await wikipediaHelper.initWikilessCookies(test, url); - if (!result) result = await translateHelper.initSimplyTranslateCookies(url); - if (!result) result = await translateHelper.initLingvaLocalStorage(url); + if (!result) result = await translateHelper.initSimplyTranslateCookies(test, url); + if (!result) result = await translateHelper.initLingvaLocalStorage(test, url); if (result) { + if (!test) { + const textElement = unifyElement.getElementsByTagName('h4')[0] + const oldHtml = textElement.innerHTML; + textElement.innerHTML = 'Unified'; + setTimeout(() => textElement.innerHTML = oldHtml, 1000); + } resolve(true); - const textElement = unifyElement.getElementsByTagName('h4')[0] - const oldHtml = textElement.innerHTML; - textElement.innerHTML = 'Unified'; - setTimeout(() => textElement.innerHTML = oldHtml, 1000); } else resolve() } } @@ -414,30 +415,36 @@ function unify(unifyElement) { }) } -function switchInstance() { - browser.tabs.query({ active: true, currentWindow: true }, async tabs => { - let currTab = tabs[0]; - if (currTab) { - let url = new URL(currTab.url); - let newUrl; - newUrl = await youtubeHelper.switchInstance(url); - if (!newUrl) newUrl = await twitterHelper.switchInstance(url); - if (!newUrl) newUrl = await instagramHelper.switchInstance(url); - if (!newUrl) newUrl = await redditHelper.switchInstance(url); - if (!newUrl) newUrl = await searchHelper.switchInstance(url); - if (!newUrl) newUrl = await translateHelper.switchInstance(url); - if (!newUrl) newUrl = await mediumHelper.switchInstance(url); - if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url); - if (!newUrl) newUrl = await peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = await lbryHelper.switchInstance(url); - if (!newUrl) newUrl = await imgurHelper.switchInstance(url); - if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url); - - if (newUrl) { - browser.tabs.update({ url: newUrl }); - return true; +function switchInstance(test) { + return new Promise(resolve => { + browser.tabs.query({ active: true, currentWindow: true }, async tabs => { + let currTab = tabs[0]; + if (currTab) { + let url; + try { url = new URL(currTab.url); } + catch { resolve(); return }; + let newUrl = await youtubeHelper.switchInstance(url); + if (!newUrl) newUrl = await twitterHelper.switchInstance(url); + if (!newUrl) newUrl = await instagramHelper.switchInstance(url); + if (!newUrl) newUrl = await redditHelper.switchInstance(url); + if (!newUrl) newUrl = await searchHelper.switchInstance(url); + if (!newUrl) newUrl = await translateHelper.switchInstance(url); + if (!newUrl) newUrl = await mediumHelper.switchInstance(url); + if (!newUrl) newUrl = await sendTargetsHelper.switchInstance(url); + if (!newUrl) newUrl = await peertubeHelper.switchInstance(url); + if (!newUrl) newUrl = await lbryHelper.switchInstance(url); + if (!newUrl) newUrl = await imgurHelper.switchInstance(url); + if (!newUrl) newUrl = await wikipediaHelper.switchInstance(url); + + console.log('newUrl', newUrl); + console.log('test'); + if (newUrl) { + if (!test) + browser.tabs.update({ url: newUrl }); + resolve(true) + } else resolve() } - } + }) }) return false; } diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js index 4bfdc2dc..81324221 100644 --- a/src/assets/javascripts/helpers/wikipedia.js +++ b/src/assets/javascripts/helpers/wikipedia.js @@ -38,18 +38,11 @@ function setRedirects(val) { } let - disable, // disableWikipedia - protocol; // wikipediaProtocol - -let wikilessNormalRedirectsChecks, wikilessTorRedirectsChecks, - wikilessI2pRedirectsChecks, - wikilessNormalCustomRedirects, - wikilessTorCustomRedirects, - wikilessI2pCustomRedirects; + wikilessI2pRedirectsChecks; -function initWikilessCookies(from) { +function initWikilessCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -72,14 +65,16 @@ function initWikilessCookies(from) { ...r.wikilessI2pCustomRedirects, ].includes(protocolHost)) resolve(); - let checkedInstances; - if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects] - else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects] - else if (r.wikipediaProtocol == 'i2p') checkedInstances = [...r.wikilessI2pRedirectsChecks, ...r.wikilessI2pCustomRedirects] + if (!test) { + let checkedInstances; + if (r.wikipediaProtocol == 'normal') checkedInstances = [...r.wikilessNormalRedirectsChecks, ...r.wikilessNormalCustomRedirects] + else if (r.wikipediaProtocol == 'tor') checkedInstances = [...r.wikilessTorRedirectsChecks, ...r.wikilessTorCustomRedirects] + else if (r.wikipediaProtocol == 'i2p') checkedInstances = [...r.wikilessI2pRedirectsChecks, ...r.wikilessI2pCustomRedirects] - for (const to of checkedInstances) { - utils.copyCookie('wikiless', from, to, 'theme'); - utils.copyCookie('wikiless', from, to, 'default_lang'); + for (const to of checkedInstances) { + utils.copyCookie('wikiless', from, to, 'theme'); + utils.copyCookie('wikiless', from, to, 'default_lang'); + } } resolve(true); } diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js index 835a5f81..dce03680 100644 --- a/src/assets/javascripts/helpers/youtube/youtube.js +++ b/src/assets/javascripts/helpers/youtube/youtube.js @@ -33,24 +33,19 @@ let redirects = { "tor": [] } }; - function setRedirects(val) { - browser.storage.local.get('cloudflareList', async r => { + browser.storage.local.get('cloudflareList', r => { redirects.invidious = val.invidious; redirects.piped = val.piped; invidiousNormalRedirectsChecks = [...redirects.invidious.normal]; pipedNormalRedirectsChecks = [...redirects.piped.normal]; - for (const instance of r.cloudflareList) { - let i; + const a = invidiousNormalRedirectsChecks.indexOf(instance); + if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1); - i = invidiousNormalRedirectsChecks.indexOf(instance); - if (i > -1) invidiousNormalRedirectsChecks.splice(i, 1); - - i = pipedNormalRedirectsChecks.indexOf(instance); - if (i > -1) pipedNormalRedirectsChecks.splice(i, 1); + const b = pipedNormalRedirectsChecks.indexOf(instance); + if (b > -1) pipedNormalRedirectsChecks.splice(b, 1); } - browser.storage.local.set({ youtubeRedirects: redirects, invidiousNormalRedirectsChecks, @@ -63,21 +58,13 @@ function setRedirects(val) { let invidiousNormalRedirectsChecks, - invidiousNormalCustomRedirects, invidiousTorRedirectsChecks, - invidiousTorCustomRedirects; -let pipedNormalRedirectsChecks, - pipedNormalCustomRedirects, pipedTorRedirectsChecks, - pipedTorCustomRedirects; -let pipedMaterialNormalRedirectsChecks, - pipedMaterialNormalCustomRedirects, - pipedMaterialTorRedirectsChecks, - pipedMaterialTorCustomRedirects; + pipedMaterialTorRedirectsChecks; function redirect(url, details, initiator) { return new Promise(resolve => { @@ -129,27 +116,38 @@ function redirect(url, details, initiator) { ) ) { resolve('BYPASSTAB'); return; } + const isInvidious = r.youtubeFrontend == 'invidious'; + const isPiped = r.youtubeFrontend == 'piped'; + const isPipedMaterial = r.youtubeFrontend == 'pipedMaterial' + const isFreetube = r.youtubeFrontend == 'freetube'; + const isYatte = r.youtubeFrontend == 'yatte'; + + const isFrontendYoutube = r.youtubeEmbedFrontend == "youtube"; + const isFrontendInvidious = r.youtubeEmbedFrontend == 'invidious'; + const isFrontendPiped = r.youtubeEmbedFrontend == 'piped'; + const isFrontendPipedMaterial = r.youtubeEmbedFrontend == 'pipedMaterial'; + + const isOnlyEmbeddedVideo = r.OnlyEmbeddedVideo == 'onlyNotEmbedded'; + const isOnlyNotEmbedded = r.OnlyEmbeddedVideo == 'onlyNotEmbedded' + + const is_main_frame = details.type === "main_frame"; + const is_sub_frame = details.type === "sub_frame"; + if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) { resolve(); return; } // Don't redirect YouTube Player API. - if (r.youtubeFrontend == 'yatte' && details.type === "main_frame") + if (r.youtubeFrontend == 'yatte' && is_main_frame) resolve(url.href.replace(/^https?:\/{2}/, 'yattee://')); - else if (r.youtubeFrontend == 'freetube' && details.type === "main_frame") + else if (isFreetube && is_main_frame) resolve(`freetube://https:${url.pathname}${url.search}`); - else if (r.youtubeFrontend == 'freetube' && details.type !== "main_frame" && r.youtubeEmbedFrontend == "youtube") + else if (isFreetube && params && isFrontendYoutube) resolve(); - else if ( - r.youtubeFrontend == 'invidious' || - ((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'invidious' && details.type == "sub_frame") - ) { + else if (isInvidious || ((isFreetube || isYatte) && isFrontendInvidious && is_sub_frame)) { - if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; } - if ( - r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" && - !((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'invidious' && details.type === "sub_frame") - ) { resolve(); return; } + if (isOnlyEmbeddedVideo && !is_sub_frame) { resolve(); return; } + if (isOnlyNotEmbedded && params && !((isFreetube || isYatte) && isFrontendInvidious && is_sub_frame)) { resolve(); return; } let instancesList; if (r.youtubeProtocol == 'normal') instancesList = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects]; @@ -158,16 +156,12 @@ function redirect(url, details, initiator) { let randomInstance = utils.getRandomInstance(instancesList); resolve(`${randomInstance}${url.pathname}${url.search}`); + } else if (isPiped || ((isFreetube || isYatte) && isFrontendPiped && is_sub_frame)) { - } else if ( - r.youtubeFrontend == 'piped' || - ((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'piped' && details.type === "sub_frame") - ) { - - if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; } + if (isOnlyEmbeddedVideo && !is_sub_frame) { resolve(); return; } if ( - r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" && - !((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'piped' && details.type == "sub_frame") + isOnlyNotEmbedded && params && + !((isFreetube || isYatte) && isFrontendPiped && is_sub_frame) ) { resolve(); return; } let instancesList; @@ -178,12 +172,11 @@ function redirect(url, details, initiator) { resolve(`${randomInstance}${url.pathname}${url.search}`) } - else if (r.youtubeFrontend == 'pipedMaterial' || - ((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'pipedMaterial' && details.type === "sub_frame")) { - if (r.OnlyEmbeddedVideo == 'onlyEmbedded' && details.type !== "sub_frame") { resolve(); return; } + else if (isPipedMaterial || ((isFreetube || isYatte) && isFrontendPipedMaterial && is_sub_frame)) { + if (isOnlyEmbeddedVideo && details.type !== "sub_frame") { resolve(); return; } if ( - r.OnlyEmbeddedVideo == 'onlyNotEmbedded' && details.type !== "main_frame" && - !((r.youtubeFrontend == 'freetube' || r.youtubeFrontend == 'yatte') && r.youtubeEmbedFrontend == 'pipedMaterial' && details.type == "sub_frame") + isOnlyNotEmbedded && params && + !((isFreetube || isYatte) && isFrontendPipedMaterial && is_sub_frame) ) { resolve(); return; } let instancesList; @@ -371,7 +364,7 @@ function initDefaults() { }) } -function initInvidiousCookies(from) { +function initInvidiousCookies(test, from) { return new Promise(resolve => { browser.storage.local.get( [ @@ -389,11 +382,13 @@ function initInvidiousCookies(from) { ...r.invidiousNormalCustomRedirects, ...r.invidiousTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - let checkedInstances; - if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects] - else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects] - for (const to of checkedInstances) - utils.copyCookie('invidious', from, to, 'PREFS'); + if (!test) { + let checkedInstances; + if (r.youtubeProtocol == 'normal') checkedInstances = [...r.invidiousNormalRedirectsChecks, ...r.invidiousNormalCustomRedirects] + else if (r.youtubeProtocol == 'tor') checkedInstances = [...r.invidiousTorRedirectsChecks, ...r.invidiousTorCustomRedirects] + for (const to of checkedInstances) + utils.copyCookie('invidious', from, to, 'PREFS'); + } resolve(true); } ) @@ -422,7 +417,7 @@ function setInvidiousCookies() { ) } -function initPipedLocalStorage(url, tabId) { +function initPipedLocalStorage(test, url, tabId) { return new Promise(resolve => { browser.storage.local.get( [ @@ -439,13 +434,15 @@ function initPipedLocalStorage(url, tabId) { ...r.pipedTorRedirectsChecks, ...r.pipedTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/get_piped_settings.js", - runAt: "document_start" - } - ); + + if (!test) + browser.tabs.executeScript( + tabId, + { + file: "/assets/javascripts/helpers/youtube/get_piped_settings.js", + runAt: "document_start" + } + ); resolve(true); } ) @@ -485,7 +482,7 @@ function setPipedLocalStorage(url, tabId) { }) } -function initPipedMaterialLocalStorage(url, tabId) { +function initPipedMaterialLocalStorage(test, url, tabId,) { return new Promise(resolve => { browser.storage.local.get( [ @@ -502,13 +499,15 @@ function initPipedMaterialLocalStorage(url, tabId) { ...r.pipedMaterialTorRedirectsChecks, ...r.pipedMaterialTorCustomRedirects, ].includes(protocolHost)) { resolve(); return; } - browser.tabs.executeScript( - tabId, - { - file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js", - runAt: "document_start" - } - ); + + if (!test) + browser.tabs.executeScript( + tabId, + { + file: "/assets/javascripts/helpers/youtube/get_pipedMaterial_preferences.js", + runAt: "document_start" + } + ); resolve(true); } ) |