diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2014-07-10 23:10:27 -0400 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2014-07-10 23:10:27 -0400 |
| commit | 839b1245a2137fc3c4474b4ed8d04590b4245611 (patch) | |
| tree | 02e125523ed235bd5f4ee5fb086dc8e4fd89d41e | |
| parent | e53a6e3c651a3191e24b05ff9d69e871632ddbf8 (diff) | |
| download | browsing-activity-tracker-839b1245a2137fc3c4474b4ed8d04590b4245611.tar.gz | |
[Chrome extension] Add option handling
| -rw-r--r-- | chrome-extension/bg.js | 16 | ||||
| -rw-r--r-- | chrome-extension/manifest.json | 6 | ||||
| -rw-r--r-- | chrome-extension/options.html | 24 | ||||
| -rw-r--r-- | chrome-extension/options.js | 19 |
4 files changed, 61 insertions, 4 deletions
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 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Webpage Logger Options</title> + <style> + body { + margin-left: 2em; + font-family: sans-serif + } + </style> +</head> +<body> + <h2>Webpage Logger</h2> + <label> + Callback URL: <input id="callback" type="text"> + </label> + <br> + <label> + Browser Key: <input id="key" type="text"> + </label> + <script src='options.js'></script> +</body> +</html> 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); |
