diff options
| -rw-r--r-- | ext/bg/background.html | 1 | ||||
| -rw-r--r-- | ext/bg/js/anki-note-builder.js | 2 | ||||
| -rw-r--r-- | ext/bg/js/backend.js | 22 | ||||
| -rw-r--r-- | ext/bg/js/background-main.js | 7 | ||||
| -rw-r--r-- | ext/bg/js/database.js | 2 | ||||
| -rw-r--r-- | ext/mixed/js/core.js | 20 | 
6 files changed, 29 insertions, 25 deletions
| diff --git a/ext/bg/background.html b/ext/bg/background.html index ca35a3c6..53e8b140 100644 --- a/ext/bg/background.html +++ b/ext/bg/background.html @@ -20,7 +20,6 @@          <script src="/mixed/lib/wanakana.min.js"></script>          <script src="/mixed/js/core.js"></script> -        <script src="/mixed/js/dom.js"></script>          <script src="/mixed/js/environment.js"></script>          <script src="/mixed/js/japanese.js"></script> diff --git a/ext/bg/js/anki-note-builder.js b/ext/bg/js/anki-note-builder.js index 76199db7..31e67394 100644 --- a/ext/bg/js/anki-note-builder.js +++ b/ext/bg/js/anki-note-builder.js @@ -155,7 +155,7 @@ class AnkiNoteBuilder {      }      static arrayBufferToBase64(arrayBuffer) { -        return window.btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); +        return btoa(String.fromCharCode(...new Uint8Array(arrayBuffer)));      }      static stringReplaceAsync(str, regex, replacer) { diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index 90895737..80b00d5f 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -65,12 +65,14 @@ class Backend {              renderTemplate: this._renderTemplate.bind(this)          }); -        this.optionsContext = { -            depth: 0, -            url: window.location.href -        }; +        const url = (typeof window === 'object' && window !== null ? window.location.href : ''); +        this.optionsContext = {depth: 0, url}; -        this.clipboardPasteTarget = document.querySelector('#clipboard-paste-target'); +        this.clipboardPasteTarget = ( +            typeof document === 'object' && document !== null ? +            document.querySelector('#clipboard-paste-target') : +            null +        );          this.popupWindow = null; @@ -704,6 +706,9 @@ class Backend {              return await navigator.clipboard.readText();          } else {              const clipboardPasteTarget = this.clipboardPasteTarget; +            if (clipboardPasteTarget === null) { +                throw new Error('Reading the clipboard is not supported in this context'); +            }              clipboardPasteTarget.value = '';              clipboardPasteTarget.focus();              document.execCommand('paste'); @@ -1005,13 +1010,8 @@ class Backend {      }      async _onCommandToggle() { -        const optionsContext = { -            depth: 0, -            url: window.location.href -        };          const source = 'popup'; - -        const options = this.getOptions(optionsContext); +        const options = this.getOptions(this.optionsContext);          options.general.enable = !options.general.enable;          await this._onApiOptionsSave({source});      } diff --git a/ext/bg/js/background-main.js b/ext/bg/js/background-main.js index 24117f4e..345b4a77 100644 --- a/ext/bg/js/background-main.js +++ b/ext/bg/js/background-main.js @@ -20,6 +20,9 @@   */  (async () => { -    window.yomichanBackend = new Backend(); -    await window.yomichanBackend.prepare(); +    const backend = new Backend(); +    if (typeof window === 'object' && window !== null) { +        window.yomichanBackend = backend; +    } +    await backend.prepare();  })(); diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js index 930cd0d0..65e267ab 100644 --- a/ext/bg/js/database.js +++ b/ext/bg/js/database.js @@ -596,7 +596,7 @@ class Database {      static _open(name, version, onUpgradeNeeded) {          return new Promise((resolve, reject) => { -            const request = window.indexedDB.open(name, version * 10); +            const request = indexedDB.open(name, version * 10);              request.onupgradeneeded = (event) => {                  try { diff --git a/ext/mixed/js/core.js b/ext/mixed/js/core.js index 257c7edf..bf877e72 100644 --- a/ext/mixed/js/core.js +++ b/ext/mixed/js/core.js @@ -177,7 +177,7 @@ function promiseTimeout(delay, resolveValue) {      const complete = (callback, value) => {          if (callback === null) { return; }          if (timer !== null) { -            window.clearTimeout(timer); +            clearTimeout(timer);              timer = null;          }          promiseResolve = null; @@ -192,7 +192,7 @@ function promiseTimeout(delay, resolveValue) {          promiseResolve = resolve2;          promiseReject = reject2;      }); -    timer = window.setTimeout(() => { +    timer = setTimeout(() => {          timer = null;          resolve(resolveValue);      }, delay); @@ -331,7 +331,7 @@ const yomichan = (() => {          generateId(length) {              const array = new Uint8Array(length); -            window.crypto.getRandomValues(array); +            crypto.getRandomValues(array);              let id = '';              for (const value of array) {                  id += value.toString(16).padStart(2, '0'); @@ -364,7 +364,7 @@ const yomichan = (() => {                  const runtimeMessageCallback = ({action, params}, sender, sendResponse) => {                      let timeoutId = null;                      if (timeout !== null) { -                        timeoutId = window.setTimeout(() => { +                        timeoutId = setTimeout(() => {                              timeoutId = null;                              eventHandler.removeListener(runtimeMessageCallback);                              reject(new Error(`Listener timed out in ${timeout} ms`)); @@ -373,7 +373,7 @@ const yomichan = (() => {                      const cleanupResolve = (value) => {                          if (timeoutId !== null) { -                            window.clearTimeout(timeoutId); +                            clearTimeout(timeoutId);                              timeoutId = null;                          }                          eventHandler.removeListener(runtimeMessageCallback); @@ -453,10 +453,12 @@ const yomichan = (() => {          // Private +        _getUrl() { +            return (typeof window === 'object' && window !== null ? window.location.href : ''); +        } +          _getLogContext() { -            return { -                url: window.location.href -            }; +            return {url: this._getUrl()};          }          _onMessage({action, params}, sender, callback) { @@ -469,7 +471,7 @@ const yomichan = (() => {          }          _onMessageGetUrl() { -            return {url: window.location.href}; +            return {url: this._getUrl()};          }          _onMessageOptionsUpdated({source}) { |