diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-05-24 14:01:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-24 14:01:21 -0400 |
commit | 6dd6af05e1ed3e0da4091af073c38e1d8ec0268d (patch) | |
tree | 7262add632fac645ca0481abbb63efb3b8291bb8 /ext/bg/js/backend.js | |
parent | 3c4c82dcfc66a1b24a3df3d4b15283235c72cf66 (diff) |
Update background global object usage (#556)
* Omit global window object for scripts used on the background page
* Validate document exists before using
* Remove dom.js from background.html
Diffstat (limited to 'ext/bg/js/backend.js')
-rw-r--r-- | ext/bg/js/backend.js | 22 |
1 files changed, 11 insertions, 11 deletions
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}); } |