diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-02-19 22:49:25 -0500 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-05-04 13:02:56 -0400 | 
| commit | 769dc205fb56fa8f9442f68907eb9598caea52bd (patch) | |
| tree | e710f06e91d913cd5531bfd0807a8326a7e88363 | |
| parent | d49cbf12eae40e1a898c619ed092af560aa91bc6 (diff) | |
Make extension badge and onCommand optional
| -rw-r--r-- | ext/bg/js/backend.js | 26 | 
1 files changed, 20 insertions, 6 deletions
| diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index 01340419..c191a150 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -28,7 +28,9 @@ class Backend {          await this.translator.prepare();          await apiOptionsSet(await optionsLoad()); -        chrome.commands.onCommand.addListener(this.onCommand.bind(this)); +        if (chrome.commands !== null && typeof chrome.commands === 'object') { +            chrome.commands.onCommand.addListener(this.onCommand.bind(this)); +        }          chrome.runtime.onMessage.addListener(this.onMessage.bind(this));          if (this.options.general.showGuide) { @@ -40,13 +42,13 @@ class Backend {          this.options = utilIsolate(options);          if (!options.general.enable) { -            chrome.browserAction.setBadgeBackgroundColor({color: '#555555'}); -            chrome.browserAction.setBadgeText({text: 'off'}); +            this.setExtensionBadgeBackgroundColor('#555555'); +            this.setExtensionBadgeText('off');          } else if (!dictConfigured(options)) { -            chrome.browserAction.setBadgeBackgroundColor({color: '#f0ad4e'}); -            chrome.browserAction.setBadgeText({text: '!'}); +            this.setExtensionBadgeBackgroundColor('#f0ad4e'); +            this.setExtensionBadgeText('!');          } else { -            chrome.browserAction.setBadgeText({text: ''}); +            this.setExtensionBadgeText('');          }          if (options.anki.enable) { @@ -125,6 +127,18 @@ class Backend {          return true;      } + +    setExtensionBadgeBackgroundColor(color) { +        if (typeof chrome.browserAction.setBadgeBackgroundColor === 'function') { +            chrome.browserAction.setBadgeBackgroundColor({color}); +        } +    } +     +    setExtensionBadgeText(text) { +        if (typeof chrome.browserAction.setBadgeText === 'function') { +            chrome.browserAction.setBadgeText({text}); +        } +    }  }  window.yomichan_backend = new Backend(); |