aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Benjamin Barenblat <bbaren@google.com>2020-02-28 17:15:18 -0500
committerGravatar Benjamin Barenblat <bbaren@google.com>2020-03-03 11:11:15 -0500
commit749bd515e839758559173ad16e248822202dd80e (patch)
tree66638b305ef124c6bef84a6c137dce9b9bcdc7a0
parent1277f853696c26dba7960462ee49c5d9d39eab47 (diff)
Add context menu item to open a link in the Wayback Machinev1.2.0
-rw-r--r--background.js23
-rw-r--r--manifest.json5
-rw-r--r--options.html6
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. -->
<!DOCTYPE html>
<title>Wayback Machine Lookup</title>
<form id="clickBehavior">
- Clicking the button:<br>
- <label><input type="radio" name="clickBehavior" value="search"> Searches for the page in the Wayback Machine.</label><br>
- <label><input type="radio" name="clickBehavior" value="direct"> Opens the most recent capture of the page.</label>
+ When searching the Wayback Machine:<br>
+ <label><input type="radio" name="clickBehavior" value="search"> Show all search results.</label><br>
+ <label><input type="radio" name="clickBehavior" value="direct"> Automatically open the most recent capture.</label>
</form>
<script src="options.js"></script>