diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-07-18 14:15:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-18 14:15:36 -0400 |
commit | dac33e696145ad3c2cfe076a7fadc82c05732102 (patch) | |
tree | 06dff8bd7dd2d8ebad5a025cf71e2910b2af80d4 /ext/mixed | |
parent | f9c76efea00ff62021119c4d0fcf414e8988be1d (diff) |
Extension unload indication fix (#662)
* Remove unused function
* Rename field
* Change extensionUnloaded trigger function
* Update how extension unloaded content is shown
* Ignore certain errors caused by extension unload
* Add _showExtensionUnloaded function
* Wrap internals of updateOptions
* Suppress errors caued by extension unload
* Make the frontend trigger the popup's extensionUnloaded event
Diffstat (limited to 'ext/mixed')
-rw-r--r-- | ext/mixed/js/display.js | 15 | ||||
-rw-r--r-- | ext/mixed/js/yomichan.js | 12 |
2 files changed, 13 insertions, 14 deletions
diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 7dc63e65..bf3e3eae 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -97,14 +97,12 @@ class Display { this._setInteractive(true); await yomichan.ready(); await this._displayGenerator.prepare(); + yomichan.on('extensionUnloaded', this._onExtensionUnloaded.bind(this)); } onError(error) { - if (yomichan.isExtensionUnloaded) { - this.setContent('extensionUnloaded'); - } else { - yomichan.logError(error); - } + if (yomichan.isExtensionUnloaded) { return; } + yomichan.logError(error); } onEscape() { @@ -176,9 +174,6 @@ class Display { case 'kanji': await this._setContentKanji(details.definitions, details.context, token); break; - case 'extensionUnloaded': - this._setContentExtensionUnloaded(); - break; } } catch (e) { this.onError(e); @@ -236,6 +231,10 @@ class Display { // Private + _onExtensionUnloaded() { + this._setContentExtensionUnloaded(); + } + _onSourceTermView(e) { e.preventDefault(); this._sourceTermView(); diff --git a/ext/mixed/js/yomichan.js b/ext/mixed/js/yomichan.js index 7fffbaa6..33870658 100644 --- a/ext/mixed/js/yomichan.js +++ b/ext/mixed/js/yomichan.js @@ -196,7 +196,7 @@ const yomichan = (() => { try { return chrome.runtime.sendMessage(...args); } catch (e) { - this._onExtensionUnloaded(e); + this.triggerExtensionUnloaded(); throw e; } } @@ -205,7 +205,7 @@ const yomichan = (() => { try { return chrome.runtime.connect(...args); } catch (e) { - this._onExtensionUnloaded(e); + this.triggerExtensionUnloaded(); throw e; } } @@ -247,13 +247,13 @@ const yomichan = (() => { } } - // Private - - _onExtensionUnloaded(error) { + triggerExtensionUnloaded() { this._isExtensionUnloaded = true; - this.trigger('extensionUnloaded', {error}); + this.trigger('extensionUnloaded'); } + // Private + _getUrl() { return (typeof window === 'object' && window !== null ? window.location.href : ''); } |