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 +++++++++++++++++++++-- manifest.json | 5 +++-- options.html | 6 +++--- 3 files changed, 27 insertions(+), 7 deletions(-) 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://*/*'], + }); }); diff --git a/manifest.json b/manifest.json index 7985aeb..b8a3c08 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Wayback Machine Lookup", - "version": "1.1.0", + "version": "1.2.0", "description": "Reopen the current tab in the Wayback Machine", "icons": { "16": "icon16.png", @@ -16,13 +16,14 @@ "persistent": false, "scripts": ["background.js"] }, - "minimum_chrome_version": "33", + "minimum_chrome_version": "35", "options_ui": { "chrome_style": true, "page": "options.html" }, "permissions": [ "activeTab", + "contextMenus", "declarativeContent", "storage" ] diff --git a/options.html b/options.html index 1ea1d58..47042af 100644 --- a/options.html +++ b/options.html @@ -14,8 +14,8 @@ the License. --> Wayback Machine Lookup
- Clicking the button:
-
- + When searching the Wayback Machine:
+
+
-- cgit v1.2.3