]>
Commit | Line | Data |
---|---|---|
dc7033a8 | 1 | // Written by Mike Frysinger <vapier@gmail.com>. Released into the public domain. |
a98f3ef6 MF |
2 | |
3 | function update_settings() { | |
3a003566 MF |
4 | var url = document.getElementById('url').value + '/*'; |
5 | var msg = document.getElementById('msg'); | |
6 | ||
7 | console.log('requesting access to', url); | |
8 | chrome.permissions.request({ | |
9 | origins: [url] | |
10 | }, function(granted) { | |
11 | if (granted) { | |
12 | msg.innerText = 'Saved!'; | |
13 | ||
14 | // Sync all of the settings to storage first. | |
15 | var settings = {} | |
16 | settings_keys.forEach(function(key) { | |
17 | var field = document.getElementById(key); | |
18 | settings[field.id] = field.value; | |
19 | }); | |
20 | storage.set(settings); | |
21 | ||
22 | // Then revoke existing perms that the user gave us. | |
23 | chrome.permissions.getAll(function(perms) { | |
24 | perms.origins.forEach(function(key) { | |
25 | if (key == url) | |
26 | return; | |
27 | ||
28 | console.log('revoking access to', key); | |
29 | chrome.permissions.remove({ | |
30 | origins: [key], | |
31 | }); | |
32 | }); | |
33 | }); | |
34 | } else { | |
35 | msg.innerText = 'You must grant permission in order to save!'; | |
36 | } | |
37 | }); | |
38 | ||
39 | msg.timeout = setTimeout(function() { | |
d5664f4c MF |
40 | // Can't leave this blank or Chrome will resize the options page. |
41 | msg.innerHTML = ' '; | |
3a003566 | 42 | }, 5000); |
a98f3ef6 MF |
43 | } |
44 | ||
d5664f4c MF |
45 | function keydown(e) { |
46 | if (e.key == 'Enter') { | |
47 | update_settings(); | |
48 | } | |
49 | } | |
50 | ||
e09bdd59 MF |
51 | function toggle_visible_pass() { |
52 | const ele = document.getElementById('pass'); | |
53 | ele.type = (ele.type == 'password') ? 'text' : 'password'; | |
54 | // Disable form submission. | |
55 | return false; | |
56 | } | |
57 | ||
a98f3ef6 MF |
58 | window.onload = function() { |
59 | storage.get(settings_keys, function(settings) { | |
3a003566 MF |
60 | var field = document.getElementById('save'); |
61 | field.onclick = update_settings; | |
62 | ||
a98f3ef6 MF |
63 | settings_keys.forEach(function(key) { |
64 | var field = document.getElementById(key); | |
65 | field.value = settings[key] || settings_defaults[key]; | |
d5664f4c | 66 | field.onkeydown = keydown; |
a98f3ef6 MF |
67 | }); |
68 | }); | |
e09bdd59 | 69 | document.getElementById('show-pass').onclick = toggle_visible_pass; |
a98f3ef6 | 70 | }; |