X-Git-Url: https://git.wh0rd.org/?p=chrome-ext%2Fweb-power-switch.git;a=blobdiff_plain;f=options.js;fp=options.js;h=b017cd8087c240d7aaf1d1f4e7f0d21f66fca40e;hp=3464826d014e1819c1004ce991a3bed3f350fd26;hb=3a003566115fa1f778c77f3e3812494ad5ba6688;hpb=8191f7e7ff96c3ce118c29d285f89fc9835ad281 diff --git a/options.js b/options.js index 3464826..b017cd8 100644 --- a/options.js +++ b/options.js @@ -1,17 +1,54 @@ // Written by Mike Frysinger . Released into the public domain. Suck it. function update_settings() { - var setting = {}; - setting[this.id] = this.value; - storage.set(setting); + var url = document.getElementById('url').value + '/*'; + var msg = document.getElementById('msg'); + + console.log('requesting access to', url); + chrome.permissions.request({ + origins: [url] + }, function(granted) { + if (granted) { + msg.innerText = 'Saved!'; + + // Sync all of the settings to storage first. + var settings = {} + settings_keys.forEach(function(key) { + var field = document.getElementById(key); + settings[field.id] = field.value; + }); + storage.set(settings); + + // Then revoke existing perms that the user gave us. + chrome.permissions.getAll(function(perms) { + perms.origins.forEach(function(key) { + if (key == url) + return; + + console.log('revoking access to', key); + chrome.permissions.remove({ + origins: [key], + }); + }); + }); + } else { + msg.innerText = 'You must grant permission in order to save!'; + } + }); + + msg.timeout = setTimeout(function() { + msg.innerText = ''; + }, 5000); } window.onload = function() { storage.get(settings_keys, function(settings) { + var field = document.getElementById('save'); + field.onclick = update_settings; + settings_keys.forEach(function(key) { var field = document.getElementById(key); field.value = settings[key] || settings_defaults[key]; - field.oninput = update_settings; }); }); };