summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/fg/js/frontend-initialize.js22
-rw-r--r--ext/fg/js/frontend.js36
2 files changed, 25 insertions, 33 deletions
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;