diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-08-16 16:16:18 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-16 16:16:18 -0400 | 
| commit | c26c4ae0cb2e8516d79e827e7f76a5974fffdae4 (patch) | |
| tree | f4762afe8ac9d5ffc7ada531d8b788274d683ab7 /ext/fg/js | |
| parent | 90d694429029d804740d2af384ad903be48b040e (diff) | |
Frontend initialization refactor (#737)
* Fix incorrect popup depth reassignment
* Rename variable
* Rename property
* Use explicit parameter values
* Refactor setupNestedPopups
* Refactor frontend initialization
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/content-script-main.js | 11 | ||||
| -rw-r--r-- | ext/fg/js/float.js | 13 | ||||
| -rw-r--r-- | ext/fg/js/frontend.js | 25 | 
3 files changed, 26 insertions, 23 deletions
| diff --git a/ext/fg/js/content-script-main.js b/ext/fg/js/content-script-main.js index 4db41cb9..84e78392 100644 --- a/ext/fg/js/content-script-main.js +++ b/ext/fg/js/content-script-main.js @@ -34,11 +34,16 @@          const popupFactory = new PopupFactory(frameId);          popupFactory.prepare(); -        const frontend = new Frontend( +        const frontend = new Frontend({              frameId,              popupFactory, -            {} -        ); +            depth: 0, +            parentPopupId: null, +            parentFrameId: null, +            useProxyPopup: false, +            isSearchPage: false, +            allowRootFramePopupProxy: true +        });          await frontend.prepare();          yomichan.ready(); diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index 8a17a437..8526c9c1 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -105,8 +105,8 @@ class DisplayFloat extends Display {          await this.updateOptions();          if (childrenSupported && !this._nestedPopupsPrepared) { -            const {depth, url} = optionsContext; -            this._prepareNestedPopups(popupId, depth, frameId, url); +            const {depth} = optionsContext; +            this._prepareNestedPopups(depth + 1, popupId, frameId);              this._nestedPopupsPrepared = true;          } @@ -168,13 +168,13 @@ class DisplayFloat extends Display {          body.style.fontSize = `${scale}em`;      } -    async _prepareNestedPopups(id, depth, parentFrameId, url) { +    async _prepareNestedPopups(depth, parentPopupId, parentFrameId) {          let complete = false;          const onOptionsUpdated = async () => {              const optionsContext = this.getOptionsContext();              const options = await api.optionsGet(optionsContext); -            const maxPopupDepthExceeded = !(typeof depth === 'number' && depth < options.scanning.popupNestingMaxDepth); +            const maxPopupDepthExceeded = !(typeof depth === 'number' && depth <= options.scanning.popupNestingMaxDepth);              if (maxPopupDepthExceeded || complete) { return; }              complete = true; @@ -182,11 +182,10 @@ class DisplayFloat extends Display {              try {                  await this.setupNestedPopups({ -                    id,                      depth, +                    parentPopupId,                      parentFrameId, -                    url, -                    proxy: true +                    useProxyPopup: true                  });              } catch (e) {                  yomichan.logError(e); diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 21fbc718..36b1898b 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -25,7 +25,16 @@   */  class Frontend { -    constructor(frameId, popupFactory, frontendInitializationData) { +    constructor({ +        frameId, +        popupFactory, +        depth, +        parentPopupId, +        parentFrameId, +        useProxyPopup, +        isSearchPage, +        allowRootFramePopupProxy +    }) {          this._id = yomichan.generateId(16);          this._popup = null;          this._disabledOverride = false; @@ -43,16 +52,7 @@ class Frontend {              search: this._search.bind(this),              documentUtil: this._documentUtil          }); - -        const { -            depth=0, -            id: proxyPopupId, -            parentFrameId, -            proxy: useProxyPopup=false, -            isSearchPage=false, -            allowRootFramePopupProxy=true -        } = frontendInitializationData; -        this._proxyPopupId = proxyPopupId; +        this._parentPopupId = parentPopupId;          this._parentFrameId = parentFrameId;          this._useProxyPopup = useProxyPopup;          this._isSearchPage = isSearchPage; @@ -320,7 +320,6 @@ class Frontend {          this._textScanner.clearSelection(true);          this._popup = popup; -        this._depth = popup.depth;      }      async _getDefaultPopup() { @@ -328,7 +327,7 @@ class Frontend {      }      async _getProxyPopup() { -        const popup = new PopupProxy(null, this._depth + 1, this._proxyPopupId, this._parentFrameId, this._frameId); +        const popup = new PopupProxy(null, this._depth, this._parentPopupId, this._parentFrameId, this._frameId);          await popup.prepare();          return popup;      } |