X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=popup.js;h=22c31604dccc3be9d89a189555ed4f36a887c637;hb=cbf343ff26dde4a002f876276aa6c9df45885322;hp=ee8659a379a048c2c4eb4742bd7ef5af6c7b942c;hpb=ecc284d8a4bb5b0e267b80b3ed6e3cc6f6cf418f;p=chrome-ext%2Fweb-power-switch.git diff --git a/popup.js b/popup.js index ee8659a..22c3160 100644 --- a/popup.js +++ b/popup.js @@ -14,8 +14,11 @@ function fetchpage(url, callback) { callback(xhr, state); } else { xhr.setstatus = true; - setstatus('Could not connect;
check your ' + - 'settings'); + setstatus( + 'Could not connect;
check your ' + + 'settings' + ); + document.getElementById('open-settings').onclick = open_settings_page; console.log('connect error', state); } } @@ -161,6 +164,10 @@ function setstatus(msg) { status.style.position = msg ? '' : 'absolute'; } +function open_settings_page() { + chrome.runtime.openOptionsPage(); +} + document.addEventListener('DOMContentLoaded', function() { storage.get(settings_keys, function(settings) { url_base = settings['url'] || settings_defaults['url']; @@ -169,12 +176,22 @@ document.addEventListener('DOMContentLoaded', function() { chrome.permissions.contains({ origins: [url_base + '/*'] }, function(granted) { - if (granted) + if (granted) { fetchpage('index.htm', initpopup); - else - setstatus('Missing permissions;
please visit the ' + - 'settings page' + - '
to grant access.'); + } else { + setstatus( + 'Missing permissions;
please visit the ' + + 'settings page' + + '
to grant access.
' + + '
' + ); + document.getElementById('open-settings').onclick = open_settings_page; + // Work around http://crbug.com/125706. + document.getElementById('retry').onclick = function() { + chrome.permissions.request({origins: [url_base + '/*']}); + fetchpage('index.htm', initpopup); + }; + } }); }); });