diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/bg/js/backend.js | 6 | ||||
| -rw-r--r-- | ext/bg/js/search-query-parser.js | 6 | ||||
| -rw-r--r-- | ext/fg/js/frontend-api-sender.js | 3 | 
3 files changed, 11 insertions, 4 deletions
| diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index 3226dd9c..04bf240d 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -120,7 +120,8 @@ class Backend {          this.clipboardMonitor.on('change', this._onClipboardText.bind(this));          this._sendMessageAllTabs('backendPrepared'); -        chrome.runtime.sendMessage({action: 'backendPrepared'}); +        const callback = () => this.checkLastError(chrome.runtime.lastError); +        chrome.runtime.sendMessage({action: 'backendPrepared'}, callback);      }      _sendMessageAllTabs(action, params={}) { @@ -281,7 +282,8 @@ class Backend {      _onApiYomichanCoreReady(_params, sender) {          // tab ID isn't set in background (e.g. browser_action)          if (typeof sender.tab === 'undefined') { -            chrome.runtime.sendMessage({action: 'backendPrepared'}); +            const callback = () => this.checkLastError(chrome.runtime.lastError); +            chrome.runtime.sendMessage({action: 'backendPrepared'}, callback);              return Promise.resolve();          } diff --git a/ext/bg/js/search-query-parser.js b/ext/bg/js/search-query-parser.js index 11c7baa2..c64d0fea 100644 --- a/ext/bg/js/search-query-parser.js +++ b/ext/bg/js/search-query-parser.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -/*global apiTermsFind, apiOptionsSet, apiTextParse, apiTextParseMecab, TextScanner, QueryParserGenerator*/ +/*global apiTermsFind, apiOptionsSet, apiTextParse, apiTextParseMecab, TextScanner, QueryParserGenerator, docSentenceExtract*/  class QueryParser extends TextScanner {      constructor(search) { @@ -55,12 +55,14 @@ class QueryParser extends TextScanner {          const {definitions, length} = await apiTermsFind(searchText, {}, this.search.getOptionsContext());          if (definitions.length === 0) { return null; } +        const sentence = docSentenceExtract(textSource, this.search.options.anki.sentenceExt); +          textSource.setEndOffset(length);          this.search.setContent('terms', {definitions, context: {              focus: false,              disableHistory: cause === 'mouse', -            sentence: {text: searchText, offset: 0}, +            sentence,              url: window.location.href          }}); diff --git a/ext/fg/js/frontend-api-sender.js b/ext/fg/js/frontend-api-sender.js index 8dc6aaf3..4431df61 100644 --- a/ext/fg/js/frontend-api-sender.js +++ b/ext/fg/js/frontend-api-sender.js @@ -31,6 +31,8 @@ class FrontendApiSender {      invoke(action, params, target) {          if (this.disconnected) { +            // attempt to reconnect the next time +            this.disconnected = false;              return Promise.reject(new Error('Disconnected'));          } @@ -70,6 +72,7 @@ class FrontendApiSender {      onDisconnect() {          this.disconnected = true; +        this.port = null;          for (const id of this.callbacks.keys()) {              this.onError(id, 'Disconnected'); |