diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-03-19 01:19:46 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-03-19 01:19:46 +0300 |
commit | d333b966021ec5b8c201884c78d1588fc0ebeec7 (patch) | |
tree | 7de85ab9d2ba1a7bb92e71ee9b34918e69e63040 /src/pages/background | |
parent | Restricted auto redirection to only 503, 504. Added a 'Cancel Redirection' btn (diff) | |
download | libredirect-d333b966021ec5b8c201884c78d1588fc0ebeec7.zip |
Added buttons to the browser_action menu
Diffstat (limited to 'src/pages/background')
-rw-r--r-- | src/pages/background/background.js | 74 |
1 files changed, 49 insertions, 25 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 4a48a15f..867f3271 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -137,28 +137,28 @@ browser.webRequest.onResponseStarted.addListener( const url = new URL(details.url); let newUrl; - newUrl = youtubeHelper.changeInstance(url); - if (!newUrl) newUrl = twitterHelper.changeInstance(url); + newUrl = youtubeHelper.switchInstance(url); + if (!newUrl) newUrl = twitterHelper.switchInstance(url); - if (!newUrl) newUrl = instagramHelper.changeInstance(url); + if (!newUrl) newUrl = instagramHelper.switchInstance(url); - if (!newUrl) newUrl = redditHelper.changeInstance(url); + if (!newUrl) newUrl = redditHelper.switchInstance(url); - if (!newUrl) newUrl = searchHelper.changeInstance(url); + if (!newUrl) newUrl = searchHelper.switchInstance(url); - if (!newUrl) newUrl = translateHelper.changeInstance(url); + if (!newUrl) newUrl = translateHelper.switchInstance(url); - if (!newUrl) newUrl = mediumHelper.changeInstance(url); + if (!newUrl) newUrl = mediumHelper.switchInstance(url); - if (!newUrl) newUrl = imgurHelper.changeInstance(url); + if (!newUrl) newUrl = imgurHelper.switchInstance(url); - if (!newUrl) newUrl = wikipediaHelper.changeInstance(url); + if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); - if (!newUrl) newUrl = peertubeHelper.changeInstance(url); + if (!newUrl) newUrl = peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = lbryHelper.changeInstance(url); + if (!newUrl) newUrl = lbryHelper.switchInstance(url); - // if (!newUrl) newUrl = spotifyHelper.changeInstance(url); + // if (!newUrl) newUrl = spotifyHelper.switchInstance(url); if (newUrl) browser.tabs.update(details.tabId, { url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}` }); @@ -181,34 +181,34 @@ browser.tabs.onUpdated.addListener( }); function changeWholeInstance(url) { - let newUrl = youtubeHelper.changeInstance(url); + let newUrl = youtubeHelper.switchInstance(url); - if (!newUrl) newUrl = twitterHelper.changeInstance(url); + if (!newUrl) newUrl = twitterHelper.switchInstance(url); - if (!newUrl) newUrl = instagramHelper.changeInstance(url); + if (!newUrl) newUrl = instagramHelper.switchInstance(url); - if (!newUrl) newUrl = redditHelper.changeInstance(url); + if (!newUrl) newUrl = redditHelper.switchInstance(url); - if (!newUrl) newUrl = searchHelper.changeInstance(url); + if (!newUrl) newUrl = searchHelper.switchInstance(url); - if (!newUrl) newUrl = translateHelper.changeInstance(url); + if (!newUrl) newUrl = translateHelper.switchInstance(url); - if (!newUrl) newUrl = mediumHelper.changeInstance(url); + if (!newUrl) newUrl = mediumHelper.switchInstance(url); - if (!newUrl) newUrl = sendTargetsHelper.changeInstance(url); + if (!newUrl) newUrl = sendTargetsHelper.switchInstance(url); - if (!newUrl) newUrl = peertubeHelper.changeInstance(url); + if (!newUrl) newUrl = peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = imgurHelper.changeInstance(url); + if (!newUrl) newUrl = imgurHelper.switchInstance(url); - if (!newUrl) newUrl = wikipediaHelper.changeInstance(url); + if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); return newUrl; } browser.commands.onCommand.addListener( command => { - if (command === 'changeInstance') + if (command === 'switchInstance') chrome.tabs.query( { active: true, currentWindow: true }, tabs => { @@ -220,4 +220,28 @@ browser.commands.onCommand.addListener( } ); } -) \ No newline at end of file +) + +browser.menus.create({ + id: "settings", + title: "Settings", + contexts: ["browser_action"] +}); + +browser.menus.create({ + id: "switchInstance", + title: "Switch Instance", + contexts: ["browser_action"] +}); + +browser.menus.onClicked.addListener((info, tab) => { + if (info.menuItemId == 'switchInstance') { + let url; + try { url = new URL(tab.url); } + catch (_) { return } + let newUrl = changeWholeInstance(url); + if (newUrl) browser.tabs.update({ url: newUrl }); + } + else if (info.menuItemId == 'settings') + browser.runtime.openOptionsPage() +}); \ No newline at end of file |