diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-07-18 14:18:10 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-18 14:18:10 -0400 | 
| commit | c6c0126394f4bf5862061aaa5be7f941ff957a07 (patch) | |
| tree | 7fab40bbb647d2cfc8819e05ad9175f70c8db036 /ext/mixed/js | |
| parent | ffc0b6588e9f95d873fe87db6ba647a27c0a8b3d (diff) | |
Content script ready checks (#670)
* Move ready checkout of Display
* Add function to wait until if a tab's content script is ready
Diffstat (limited to 'ext/mixed/js')
| -rw-r--r-- | ext/mixed/js/display.js | 1 | ||||
| -rw-r--r-- | ext/mixed/js/yomichan.js | 7 | 
2 files changed, 7 insertions, 1 deletions
| diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index bf3e3eae..82e77353 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -95,7 +95,6 @@ class Display {      async prepare() {          this._setInteractive(true); -        await yomichan.ready();          await this._displayGenerator.prepare();          yomichan.on('extensionUnloaded', this._onExtensionUnloaded.bind(this));      } diff --git a/ext/mixed/js/yomichan.js b/ext/mixed/js/yomichan.js index 33870658..3ae905c3 100644 --- a/ext/mixed/js/yomichan.js +++ b/ext/mixed/js/yomichan.js @@ -48,12 +48,14 @@ const yomichan = (() => {              }              this._isExtensionUnloaded = false; +            this._isReady = false;              const {promise, resolve} = deferPromise();              this._isBackendPreparedPromise = promise;              this._isBackendPreparedPromiseResolve = resolve;              this._messageHandlers = new Map([ +                ['isReady',         {async: false, handler: this._onMessageIsReady.bind(this)}],                  ['backendPrepared', {async: false, handler: this._onMessageBackendPrepared.bind(this)}],                  ['getUrl',          {async: false, handler: this._onMessageGetUrl.bind(this)}],                  ['optionsUpdated',  {async: false, handler: this._onMessageOptionsUpdated.bind(this)}], @@ -72,6 +74,7 @@ const yomichan = (() => {          }          ready() { +            this._isReady = true;              this.sendMessage({action: 'yomichanCoreReady'});              return this._isBackendPreparedPromise;          } @@ -268,6 +271,10 @@ const yomichan = (() => {              return this.invokeMessageHandler(messageHandler, params, callback, sender);          } +        _onMessageIsReady() { +            return this._isReady; +        } +          _onMessageBackendPrepared() {              if (this._isBackendPreparedPromiseResolve === null) { return; }              this._isBackendPreparedPromiseResolve(); |