diff options
| -rw-r--r-- | ext/bg/js/translator.js | 6 | ||||
| -rw-r--r-- | ext/fg/js/client.js | 6 | ||||
| -rw-r--r-- | ext/fg/js/frame.js | 10 | ||||
| -rw-r--r-- | ext/fg/js/popup.js | 2 | ||||
| -rw-r--r-- | ext/fg/js/util.js | 12 | 
5 files changed, 20 insertions, 16 deletions
| diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index 2331bde7..e534e0cb 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -54,10 +54,10 @@ class Translator {                      percent += banks[url].loaded / banks[url].total;                  } -                percent /= 3; +                percent /= 3.0;                  if (callback) { -                    callback({state: 'update', progress: Math.ceil(100 * percent)}); +                    callback({state: 'update', progress: Math.ceil(100.0 * percent)});                  }              }; @@ -69,7 +69,7 @@ class Translator {                  return this.dictionary.sealDb();              }).then(() => {                  if (callback) { -                    callback({state: 'end', progress: 100}); +                    callback({state: 'end', progress: 100.0});                  }              });          }).then(() => { diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index daeabf99..717b5873 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -116,7 +116,7 @@ class Client {                      return canAddDefinitions(definitions, ['term_kanji', 'term_kana']);                  }).then(states => {                      if (states !== null) { -                        states.forEach((state, index) => this.popup.sendMessage('setActionState', {index, state, sequence })); +                        states.forEach((state, index) => this.popup.invokeApi('setActionState', {index, state, sequence}));                      }                  });              } @@ -158,7 +158,7 @@ class Client {          const state = {[mode]: false};          addDefinition(this.definitions[index], mode).then(success => {              if (success) { -                this.popup.sendMessage('setActionState', {index, state, sequence: this.sequence}); +                this.popup.invokeApi('setActionState', {index, state, sequence: this.sequence});              } else {                  alert('Note could not be added');              } @@ -195,7 +195,7 @@ class Client {                  return canAddDefinitions(definitions, ['kanji']);              }).then(states => {                  if (states !== null) { -                    states.forEach((state, index) => this.popup.sendMessage('setActionState', {index, state, sequence})); +                    states.forEach((state, index) => this.popup.invokeApi('setActionState', {index, state, sequence}));                  }              });          }); diff --git a/ext/fg/js/frame.js b/ext/fg/js/frame.js index 590646d5..8a99a405 100644 --- a/ext/fg/js/frame.js +++ b/ext/fg/js/frame.js @@ -17,11 +17,15 @@   */ +function invokeApi(action, params, target) { +    target.postMessage({action, params}, '*'); +} +  function registerKanjiLinks() {      for (const link of Array.from(document.getElementsByClassName('kanji-link'))) {          link.addEventListener('click', e => {              e.preventDefault(); -            window.parent.postMessage({action: 'displayKanji', params: e.target.innerHTML}, '*'); +            invokeApi('displayKanji', e.target.innerHTML, window.parent);          });      }  } @@ -31,7 +35,7 @@ function registerAddNoteLinks() {          link.addEventListener('click', e => {              e.preventDefault();              const ds = e.currentTarget.dataset; -            window.parent.postMessage({action: 'addNote', params: {index: ds.index, mode: ds.mode}}, '*'); +            invokeApi('addNote', {index: ds.index, mode: ds.mode}, window.parent);          });      }  } @@ -41,7 +45,7 @@ function registerAudioLinks() {          link.addEventListener('click', e => {              e.preventDefault();              const ds = e.currentTarget.dataset; -            window.parent.postMessage({action: 'playAudio', params: ds.index}, '*'); +            invokeApi('playAudio', ds.index, window.parent);          });      }  } diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index 930df18d..88b8e4e3 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -68,7 +68,7 @@ class Popup {          doc.close();      } -    sendMessage(action, params, callback) { +    invokeApi(action, params) {          if (this.popup !== null) {              this.popup.contentWindow.postMessage({action, params}, '*');          } diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js index 176765fc..c24ad885 100644 --- a/ext/fg/js/util.js +++ b/ext/fg/js/util.js @@ -17,28 +17,28 @@   */ -function sendMessage(action, params) { +function invokeApiBg(action, params) {      return new Promise((resolve, reject) => chrome.runtime.sendMessage({action, params}, resolve));  }  function findTerm(text) { -    return sendMessage('findTerm', {text}); +    return invokeApiBg('findTerm', {text});  }  function findKanji(text) { -    return sendMessage('findKanji', {text}); +    return invokeApiBg('findKanji', {text});  }  function renderText(data, template) { -    return sendMessage('renderText', {data, template}); +    return invokeApiBg('renderText', {data, template});  }  function canAddDefinitions(definitions, modes) { -    return sendMessage('canAddDefinitions', {definitions, modes}); +    return invokeApiBg('canAddDefinitions', {definitions, modes});  }  function addDefinition(definition, mode) { -    return sendMessage('addDefinition', {definition, mode}); +    return invokeApiBg('addDefinition', {definition, mode});  }  function textSourceFromPoint(point) { |