From 749bd515e839758559173ad16e248822202dd80e Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Fri, 28 Feb 2020 17:15:18 -0500 Subject: Add context menu item to open a link in the Wayback Machine --- background.js | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'background.js') diff --git a/background.js b/background.js index 4494843..04b8117 100644 --- a/background.js +++ b/background.js @@ -12,7 +12,9 @@ // License for the specific language governing permissions and limitations under // the License. -chrome.pageAction.onClicked.addListener(function(tab) { +const MENU_ITEM_OPEN_LINK = 'openLink'; + +function open(url) { chrome.storage.sync.get({ clickBehavior: 'search', }, function(items) { @@ -20,8 +22,18 @@ chrome.pageAction.onClicked.addListener(function(tab) { if (items.clickBehavior == 'direct') { waybackStem = 'https://web.archive.org/web/'; } - chrome.tabs.update(null, {url: waybackStem + tab.url}); + chrome.tabs.update(null, {url: waybackStem + url}); }); +} + +chrome.pageAction.onClicked.addListener(function(tab) { + open(tab.url); +}); + +chrome.contextMenus.onClicked.addListener(function(info, tab) { + if (info.menuItemId == MENU_ITEM_OPEN_LINK) { + open(info.linkUrl); + } }); chrome.runtime.onInstalled.addListener(function() { @@ -36,4 +48,11 @@ chrome.runtime.onInstalled.addListener(function() { }, ]); }); + + chrome.contextMenus.create({ + 'id': MENU_ITEM_OPEN_LINK, + 'title': 'Open link in the Wayback Machine', + 'contexts': ['link'], + 'targetUrlPatterns': ['ftp://*/*', 'http://*/*', 'https://*/*'], + }); }); -- cgit v1.2.3