diff --git a/dialog.js b/dialog.js index eee5e3f..19e5773 100644 --- a/dialog.js +++ b/dialog.js @@ -3,6 +3,13 @@ if (window.browser === undefined) { window.browser = window.chrome; } +function errorLogger(action) { + function log(error) { + console.log(`Error: ${action}:`, error); + } + return log; +} + function createRedirect(id, from, transform) { return { id: id, @@ -32,7 +39,7 @@ function updateRedirects(settings) { redirects.push(createRedirect(1, '||twitter.com', transform)); redirects.push(createRedirect(2, '||x.com', transform)); } - browser.declarativeNetRequest.updateDynamicRules({ + return browser.declarativeNetRequest.updateDynamicRules({ addRules: redirects, removeRuleIds: [1, 2], }); @@ -55,8 +62,11 @@ function setupSettingsForm(settings) { settings.instance = instance.value; settings.username = username.value; settings.password = password.value; - browser.storage.local.set(settings); - updateRedirects(settings); + browser.storage.local.set(settings) + .then( + () => updateRedirects(settings), + errorLogger('browser.storage.local.set') + ).catch(errorLogger('updateRedirects')); }); } } @@ -66,4 +76,4 @@ browser.storage.local.get({ instance: '', username: '', password: '', -}).then(setupSettingsForm); +}).then(setupSettingsForm, errorLogger('browser.storage.local.get'));