diff options
Diffstat (limited to 'ext/js/background/backend.js')
| -rw-r--r-- | ext/js/background/backend.js | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 698724fc..d88c5853 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -307,7 +307,7 @@ class Backend {              }          } -        return yomichan.invokeMessageHandler(messageHandler, params, callback, sender); +        return invokeMessageHandler(messageHandler, params, callback, sender);      }      _onConnect(port) { @@ -1563,7 +1563,7 @@ class Backend {          return new Promise((resolve, reject) => {              const callback = (response) => {                  try { -                    resolve(yomichan.getMessageResponseResult(response)); +                    resolve(this._getMessageResponseResult(response));                  } catch (error) {                      reject(error);                  } @@ -1573,6 +1573,21 @@ class Backend {          });      } +    _getMessageResponseResult(response) { +        let error = chrome.runtime.lastError; +        if (error) { +            throw new Error(error.message); +        } +        if (!isObject(response)) { +            throw new Error('Tab did not respond'); +        } +        error = response.error; +        if (error) { +            throw deserializeError(error); +        } +        return response.result; +    } +      async _checkTabUrl(tabId, urlPredicate) {          let tab;          try { |