diff --git a/ext/bg/js/settings/popup-preview-frame.js b/ext/bg/js/settings/popup-preview-frame.js index cabadced..53077a83 100644 --- a/ext/bg/js/settings/popup-preview-frame.js +++ b/ext/bg/js/settings/popup-preview-frame.js @@ -47,14 +47,15 @@ class SettingsPopupPreview { window.apiOptionsGet = (...args) => this.apiOptionsGet(...args); // Overwrite frontend - this.frontend = Frontend.create(); + const popup = PopupProxyHost.instance.createPopup(null, 0); + popup.setChildrenSupported(false); + + this.frontend = new Frontend(popup); this.frontend.setEnabled = function () {}; this.frontend.searchClear = function () {}; - this.frontend.popup.setChildrenSupported(false); - - await this.frontend.isPrepared(); + await this.frontend.prepare(); // Overwrite popup Popup.injectOuterStylesheet = (...args) => this.popupInjectOuterStylesheet(...args); diff --git a/ext/fg/js/frontend-initialize.js b/ext/fg/js/frontend-initialize.js index 8ffdf528..4fef3a2e 100644 --- a/ext/fg/js/frontend-initialize.js +++ b/ext/fg/js/frontend-initialize.js @@ -17,4 +17,13 @@ */ -Frontend.create(); +async function main() { + const data = window.frontendInitializationData || {}; + const {id, depth=0, parentFrameId, ignoreNodes, url, proxy=false} = data; + + const popup = proxy ? new PopupProxy(depth + 1, id, parentFrameId, url) : PopupProxyHost.instance.createPopup(null, depth); + const frontend = new Frontend(popup, ignoreNodes); + await frontend.prepare(); +} + +main(); diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 6b41138f..6239a057 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -34,23 +34,10 @@ class Frontend extends TextScanner { url: popup.url }; - this.isPreparedPromiseResolve = null; - this.isPreparedPromise = new Promise((resolve) => { this.isPreparedPromiseResolve = resolve; }); - this._orphaned = true; this._lastShowPromise = Promise.resolve(); } - static create() { - const data = window.frontendInitializationData || {}; - const {id, depth=0, parentFrameId, ignoreNodes, url, proxy=false} = data; - - const popup = proxy ? new PopupProxy(depth + 1, id, parentFrameId, url) : PopupProxyHost.instance.createPopup(null, depth); - const frontend = new Frontend(popup, ignoreNodes); - frontend.prepare(); - return frontend; - } - async prepare() { try { await this.updateOptions(); @@ -58,16 +45,11 @@ class Frontend extends TextScanner { yomichan.on('orphaned', () => this.onOrphaned()); yomichan.on('optionsUpdate', () => this.updateOptions()); chrome.runtime.onMessage.addListener(this.onRuntimeMessage.bind(this)); - this.isPreparedPromiseResolve(); } catch (e) { this.onError(e); } } - isPrepared() { - return this.isPreparedPromise; - } - async onResize() { const textSource = this.textSourceCurrent; if (textSource !== null && await this.popup.isVisible()) {