- storage.get(settings_keys, function(settings) {
- url_base = settings['url'] || settings_defaults['url'];
- user = settings['user'] || settings_defaults['user'];
- pass = settings['pass'] || settings_defaults['pass'];
- fetchpage('index.htm', initpopup);
+ storage.get(settings_keys, function(settings_storage) {
+ const settings = Object.assign({}, settings_defaults, settings_storage);
+ url_base = settings['url'];
+ user = settings['user'];
+ pass = settings['pass'];
+ chrome.permissions.contains({
+ origins: [url_base + '/*']
+ }, function(granted) {
+ if (granted) {
+ fetchpage('index.htm', initpopup);
+ } else {
+ setstatus(
+ 'Missing permissions;<br>please visit the ' +
+ '<a id="open-settings" href="">settings page</a>' +
+ '<br>to grant access.<br>' +
+ '<center><input id=retry type=submit value=Retry></center>'
+ );
+ 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);
+ };
+ }
+ });