diff --git a/ext/fg/js/frontend-initialize.js b/ext/fg/js/frontend-initialize.js index bbb789cc..e674724e 100644 --- a/ext/fg/js/frontend-initialize.js +++ b/ext/fg/js/frontend-initialize.js @@ -31,7 +31,7 @@ async function main() { const popupHost = new PopupProxyHost(); await popupHost.prepare(); - popup = popupHost.getOrCreatePopup(); + popup = popupHost.getOrCreatePopup(null, null, depth); } const frontend = new Frontend(popup, ignoreNodes); diff --git a/ext/fg/js/popup-proxy-host.js b/ext/fg/js/popup-proxy-host.js index 7d86aa67..49123ee1 100644 --- a/ext/fg/js/popup-proxy-host.js +++ b/ext/fg/js/popup-proxy-host.js @@ -47,7 +47,7 @@ class PopupProxyHost { ])); } - getOrCreatePopup(id=null, parentId=null) { + getOrCreatePopup(id=null, parentId=null, depth=null) { // Find by existing id if (id !== null) { const popup = this._popups.get(id); @@ -76,7 +76,14 @@ class PopupProxyHost { } // Create new popup - const depth = (parent !== null ? parent.depth + 1 : 0); + if (parent !== null) { + if (depth !== null) { + throw new Error('Depth cannot be set when parent exists'); + } + depth = parent.depth + 1; + } else if (depth === null) { + depth = 0; + } const popup = new Popup(id, depth, this._frameIdPromise); if (parent !== null) { popup.setParent(parent);