summaryrefslogtreecommitdiffstats
path: root/chrome-extension
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2014-07-10 23:10:27 -0400
committerThibaut Horel <thibaut.horel@gmail.com>2014-07-10 23:10:27 -0400
commit78b5f6a8b869de9a15352ab35d5c40e440a3c141 (patch)
treea15dd9b92a22e302a4be639c9198ebb07ff78166 /chrome-extension
parent7adefa273b5d04c8e499c1be59081d35722baf65 (diff)
downloadtracker-78b5f6a8b869de9a15352ab35d5c40e440a3c141.tar.gz
[Chrome extension] Add option handling
Diffstat (limited to 'chrome-extension')
-rw-r--r--chrome-extension/bg.js16
-rw-r--r--chrome-extension/manifest.json6
-rw-r--r--chrome-extension/options.html24
-rw-r--r--chrome-extension/options.js19
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);