aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/float.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-11-22 11:19:21 -0500
committerGitHub <noreply@github.com>2020-11-22 11:19:21 -0500
commit7234cce4ae528db3e6177da1dbd499abd3c83837 (patch)
treeee70e6d7819a6de2d549e44c6319705117545f1c /ext/fg/js/float.js
parent7b6a4c4e36ce65af376cd87f5f9e7c657ef2a12c (diff)
Refactor nested popup/frontend setup (#1052)
Diffstat (limited to 'ext/fg/js/float.js')
-rw-r--r--ext/fg/js/float.js60
1 files changed, 1 insertions, 59 deletions
diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js
index bc555ffd..195861a3 100644
--- a/ext/fg/js/float.js
+++ b/ext/fg/js/float.js
@@ -23,8 +23,7 @@
class DisplayFloat extends Display {
constructor() {
- super();
- this._nestedPopupsPrepared = false;
+ super('popup');
this._frameEndpoint = new FrameEndpoint();
this._windowMessageHandlers = new Map([
['extensionUnloaded', {async: false, handler: this._onMessageExtensionUnloaded.bind(this)}]
@@ -48,10 +47,6 @@ class DisplayFloat extends Display {
const {browser} = await api.getEnvironmentInfo();
this._browser = browser;
- this.registerDirectMessageHandlers([
- ['configure', {async: true, handler: this._onMessageConfigure.bind(this)}],
- ['setContentScale', {async: false, handler: this._onMessageSetContentScale.bind(this)}]
- ]);
window.addEventListener('message', this._onWindowMessage.bind(this), false);
document.documentElement.addEventListener('mouseup', this._onMouseUp.bind(this), false);
document.documentElement.addEventListener('click', this._onClick.bind(this), false);
@@ -101,23 +96,6 @@ class DisplayFloat extends Display {
yomichan.invokeMessageHandler(messageHandler, params, callback);
}
- async _onMessageConfigure({frameId, ownerFrameId, popupId, optionsContext, childrenSupported, scale}) {
- this.ownerFrameId = ownerFrameId;
- await this.setOptionsContext(optionsContext);
-
- if (childrenSupported && !this._nestedPopupsPrepared) {
- const {depth} = optionsContext;
- this._prepareNestedPopups(depth + 1, popupId, frameId);
- this._nestedPopupsPrepared = true;
- }
-
- this._setContentScale(scale);
- }
-
- _onMessageSetContentScale({scale}) {
- this._setContentScale(scale);
- }
-
_onMessageExtensionUnloaded() {
if (yomichan.isExtensionUnloaded) { return; }
yomichan.triggerExtensionUnloaded();
@@ -200,42 +178,6 @@ class DisplayFloat extends Display {
parent.removeChild(textarea);
}
- _setContentScale(scale) {
- const body = document.body;
- if (body === null) { return; }
- body.style.fontSize = `${scale}em`;
- }
-
- 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);
- if (maxPopupDepthExceeded || complete) { return; }
-
- complete = true;
- yomichan.off('optionsUpdated', onOptionsUpdated);
-
- try {
- await this.setupNestedPopups({
- depth,
- parentPopupId,
- parentFrameId,
- useProxyPopup: true,
- pageType: 'popup'
- });
- } catch (e) {
- yomichan.logError(e);
- }
- };
-
- yomichan.on('optionsUpdated', onOptionsUpdated);
-
- await onOptionsUpdated();
- }
-
_invokeOwner(action, params={}) {
return api.crossFrame.invoke(this.ownerFrameId, action, params);
}