diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 8e93575..6b76177 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -166,4 +166,49 @@ browser.tabs.onUpdated.addListener( if (translateHelper.isTranslateRedirects(url, 'main_frame', 'lingva')) translateHelper.initLingvaLocalStorage(tabId); if (instagramHelper.isBibliogram(url)) instagramHelper.initBibliogramCookies(url); // if (changeInfo.url && youtubeHelper.isPipedorInvidious(url, 'main_frame', 'pipedMaterial')) youtubeHelper.initPipedMaterialLocalStorage(tabId); - }); \ No newline at end of file + + if (changeWholeInstance(url)) + browser.tabs.executeScript( + tabId, + { + file: "/pages/background/shortcuts.js", + runAt: "document_start" + } + ); + }); + +function changeWholeInstance(url) { + let newUrl = youtubeHelper.changeInstance(url); + + if (!newUrl) newUrl = twitterHelper.changeInstance(url); + + if (!newUrl) newUrl = instagramHelper.changeInstance(url); + + if (!newUrl) newUrl = redditHelper.changeInstance(url); + + if (!newUrl) newUrl = searchHelper.changeInstance(url); + + if (!newUrl) newUrl = translateHelper.changeInstance(url); + + if (!newUrl) newUrl = mediumHelper.changeInstance(url); + + if (!newUrl) newUrl = sendTargetsHelper.changeInstance(url); + + if (!newUrl) newUrl = peertubeHelper.changeInstance(url); + + if (!newUrl) newUrl = imgurHelper.changeInstance(url); + + if (!newUrl) newUrl = wikipediaHelper.changeInstance(url); + + return newUrl; +} + +browser.runtime.onMessage.addListener( + message => { + if (message.function === 'changeInstance') { + const url = new URL(message.url); + let newUrl = changeWholeInstance(url); + if (newUrl) browser.tabs.update({ url: newUrl }); + } + } +) \ No newline at end of file diff --git a/src/pages/background/shortcuts.js b/src/pages/background/shortcuts.js new file mode 100644 index 0000000..1288547 --- /dev/null +++ b/src/pages/background/shortcuts.js @@ -0,0 +1,13 @@ +"use strict"; + +window.browser = window.browser || window.chrome; + +document.addEventListener('keydown', + e => { + if (e.code === 'KeyL' && e.shiftKey && e.altKey) + browser.runtime.sendMessage({ + function: "changeInstance", + url: window.location.href, + }); + } +) \ No newline at end of file