notify popup about initialization

This commit is contained in:
siikamiika 2020-02-13 13:18:54 +02:00
parent df37acd17f
commit c0225f1f84
2 changed files with 21 additions and 1 deletions

View File

@ -45,6 +45,8 @@ class DisplayFloat extends Display {
}
this.setContentScale(scale);
window.parent.postMessage('initialized', '*');
}
onError(error) {

View File

@ -45,6 +45,8 @@ class Popup {
this._container.style.height = '0px';
this._updateVisibility();
window.addEventListener('message', (e) => this.onMessage(e), false);
}
// Public properties
@ -129,6 +131,18 @@ class Popup {
}
}
onMessage(e) {
const action = e.data;
const handler = Popup._windowMessageHandlers.get(action);
if (typeof handler !== 'function') { return; }
handler(this);
}
setInitialized() {
throw new Error('Override me');
}
// Popup-only public functions
setParent(parent) {
@ -237,7 +251,7 @@ class Popup {
childrenSupported: this._childrenSupported,
scale: this._contentScale
});
resolve();
this.setInitialized = resolve;
});
this._observeFullscreen();
this._onFullscreenChanged();
@ -535,4 +549,8 @@ class Popup {
}
}
Popup._windowMessageHandlers = new Map([
['initialized', (self) => self.setInitialized()]
]);
Popup.outerStylesheet = null;