From 1277f853696c26dba7960462ee49c5d9d39eab47 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Thu, 9 May 2019 16:34:32 -0400 Subject: Add option to go directly to the latest capture --- Makefile | 2 +- background.js | 10 +++++++++- manifest.json | 9 +++++++-- options.html | 21 +++++++++++++++++++++ options.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 options.html create mode 100644 options.js diff --git a/Makefile b/Makefile index f09e03c..6aa480a 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ NAME = wayback_machine_button -FILES = background.js manifest.json $(ICONS) +FILES = background.js manifest.json options.html options.js $(ICONS) ICONS = icon128.png icon16.png icon48.png .PHONY: all diff --git a/background.js b/background.js index 6beab65..4494843 100644 --- a/background.js +++ b/background.js @@ -13,7 +13,15 @@ // the License. chrome.pageAction.onClicked.addListener(function(tab) { - chrome.tabs.update(null, {url: 'https://web.archive.org/web/*/' + tab.url}); + chrome.storage.sync.get({ + clickBehavior: 'search', + }, function(items) { + let waybackStem = 'https://web.archive.org/web/*/'; + if (items.clickBehavior == 'direct') { + waybackStem = 'https://web.archive.org/web/'; + } + chrome.tabs.update(null, {url: waybackStem + tab.url}); + }); }); chrome.runtime.onInstalled.addListener(function() { diff --git a/manifest.json b/manifest.json index 586022a..7985aeb 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Wayback Machine Lookup", - "version": "1.0.1", + "version": "1.1.0", "description": "Reopen the current tab in the Wayback Machine", "icons": { "16": "icon16.png", @@ -17,8 +17,13 @@ "scripts": ["background.js"] }, "minimum_chrome_version": "33", + "options_ui": { + "chrome_style": true, + "page": "options.html" + }, "permissions": [ "activeTab", - "declarativeContent" + "declarativeContent", + "storage" ] } diff --git a/options.html b/options.html new file mode 100644 index 0000000..1ea1d58 --- /dev/null +++ b/options.html @@ -0,0 +1,21 @@ + + +Wayback Machine Lookup +
+ Clicking the button:
+
+ +
+ diff --git a/options.js b/options.js new file mode 100644 index 0000000..b456900 --- /dev/null +++ b/options.js @@ -0,0 +1,47 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy of +// the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. + +const DEFAULT_OPTIONS = { + clickBehavior: 'search', +}; + +document.addEventListener('DOMContentLoaded', function() { + chrome.storage.sync.get(DEFAULT_OPTIONS, function(items) { + for (let button of document.forms.clickBehavior) { + if (button.value == items.clickBehavior) { + button.checked = true; + break; + } + } + }); +}); + +function saveOptions() { + let clickBehavior = DEFAULT_OPTIONS.clickBehavior; + for (let button of document.forms.clickBehavior) { + if (button.checked) { + clickBehavior = button.value; + break; + } + } + chrome.storage.sync.set({ + clickBehavior: clickBehavior, + }); +} + +for (let button of document.forms.clickBehavior) { + button.addEventListener('change', function(event) { + saveOptions(); + }); +} -- cgit v1.2.3