From 78b5f6a8b869de9a15352ab35d5c40e440a3c141 Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Thu, 10 Jul 2014 23:10:27 -0400 Subject: [Chrome extension] Add option handling --- chrome-extension/bg.js | 16 ++++++++++++++-- chrome-extension/manifest.json | 6 ++++-- chrome-extension/options.html | 24 ++++++++++++++++++++++++ chrome-extension/options.js | 19 +++++++++++++++++++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 chrome-extension/options.html create mode 100644 chrome-extension/options.js diff --git a/chrome-extension/bg.js b/chrome-extension/bg.js index 8a74e89..f0cd265 100644 --- a/chrome-extension/bg.js +++ b/chrome-extension/bg.js @@ -1,10 +1,20 @@ +var options = {}; + +chrome.storage.local.get({callback: 'http://localhost:8080', key: 'chrome'}, function(o) { options = o; }); + +chrome.storage.onChanged.addListener(function(changes) { + for (key in changes) { + options[key] = changes[key].newValue; + } +}); + function log(url, title){ var xhr = new XMLHttpRequest(); - xhr.open("POST", "http://localhost:8080"); + xhr.open("POST", options.callback); var data = "url=" + encodeURIComponent(url); data += "&time=" + Date.now(); data += "&title=" + encodeURIComponent(title); - data += "&key=" + "chromium"; + data += "&key=" + options.key; xhr.send(data); } @@ -33,3 +43,5 @@ chrome.windows.onFocusChanged.addListener(function (windowId) { }); } }); + + diff --git a/chrome-extension/manifest.json b/chrome-extension/manifest.json index fc29fa6..a8ebd0a 100644 --- a/chrome-extension/manifest.json +++ b/chrome-extension/manifest.json @@ -7,6 +7,8 @@ "scripts": ["bg.js"] }, "permissions": [ - "tabs" - ] + "tabs", + "storage" + ], + "options_page": "options.html" } diff --git a/chrome-extension/options.html b/chrome-extension/options.html new file mode 100644 index 0000000..b09837d --- /dev/null +++ b/chrome-extension/options.html @@ -0,0 +1,24 @@ + + + + + Webpage Logger Options + + + +

Webpage Logger

+ +
+ + + + diff --git a/chrome-extension/options.js b/chrome-extension/options.js new file mode 100644 index 0000000..6f8a780 --- /dev/null +++ b/chrome-extension/options.js @@ -0,0 +1,19 @@ +function save() { + var data = {}; + data[this.id] = this.value; + chrome.storage.local.set(data); +} + +function restore_options() { + chrome.storage.local.get({ + callback: 'http://localhost:8080', + key: 'chrome' + }, function(options) { + document.getElementById('callback').value = options.callback; + document.getElementById('key').value = options.key; + }); +} + +document.getElementById('callback').addEventListener('change', save); +document.getElementById('key').addEventListener('change', save); +document.addEventListener('DOMContentLoaded', restore_options); -- cgit v1.2.3-70-g09d2