diff --git a/ext/fg/js/frontend-initialize.js b/ext/fg/js/frontend-initialize.js index ce1a6bf6..34be6bc6 100644 --- a/ext/fg/js/frontend-initialize.js +++ b/ext/fg/js/frontend-initialize.js @@ -73,8 +73,6 @@ async function main() { const isIframe = !proxy && (window !== window.parent); - const initEventDispatcher = new EventDispatcher(); - const popups = { iframe: null, proxy: null, @@ -99,18 +97,18 @@ async function main() { popups.normal = popup; } - if (isSearchPage) { - const disabled = !options.scanning.enableOnSearchPage; - initEventDispatcher.trigger('setDisabledOverride', {disabled}); - } - - if (isIframe) { - initEventDispatcher.trigger('popupChange', {popup}); - } - if (frontend === null) { - frontend = new Frontend(popup, initEventDispatcher); + frontend = new Frontend(popup); await frontend.prepare(); + } else { + if (isSearchPage) { + const disabled = !options.scanning.enableOnSearchPage; + frontend.setDisabledOverride(disabled); + } + + if (isIframe) { + await frontend.setPopup(popup); + } } }; diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index cd811115..288d3589 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -26,7 +26,7 @@ */ class Frontend extends TextScanner { - constructor(popup, initEventDispatcher=null) { + constructor(popup) { super( window, () => this.popup.isProxy() ? [] : [this.popup.getContainer()], @@ -35,7 +35,6 @@ class Frontend extends TextScanner { ); this.popup = popup; - this.initEventDispatcher = initEventDispatcher; this._disabledOverride = false; @@ -77,11 +76,6 @@ class Frontend extends TextScanner { window.visualViewport.addEventListener('resize', this.onVisualViewportResize.bind(this)); } - if (this.initEventDispatcher !== null) { - this.initEventDispatcher.on('setDisabledOverride', this.onSetDisabledOverride.bind(this)); - this.initEventDispatcher.on('popupChange', this.onPopupChange.bind(this)); - } - yomichan.on('orphaned', this.onOrphaned.bind(this)); yomichan.on('optionsUpdated', this.updateOptions.bind(this)); yomichan.on('zoomChanged', this.onZoomChanged.bind(this)); @@ -142,6 +136,20 @@ class Frontend extends TextScanner { ]; } + setDisabledOverride(disabled) { + this._disabledOverride = disabled; + // other cases handed by regular options update + if (disabled && this.enabled) { + this.setEnabled(false); + } + } + + async setPopup(popup) { + this.onSearchClear(true); + this.popup = popup; + await popup.setOptions(this.options); + } + async updateOptions() { this.setOptions(await apiOptionsGet(this.getOptionsContext())); @@ -237,20 +245,6 @@ class Frontend extends TextScanner { super.onSearchClear(changeFocus); } - onSetDisabledOverride({disabled}) { - this._disabledOverride = disabled; - // other cases handed by regular options update - if (disabled && this.enabled) { - this.setEnabled(false); - } - } - - async onPopupChange({popup}) { - this.onSearchClear(true); - this.popup = popup; - await popup.setOptions(this.options); - } - getOptionsContext() { this.optionsContext.url = this.popup.url; return this.optionsContext;