From 57e4648e5e8f56c5e1149cc546ba126a07e05ced Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 5 Apr 2023 01:07:35 +0200 Subject: [PATCH] feat(player/VirtualDOM): OnloadVRoot & OnloadStyleSheet for lazy iframe innerContent initialisation & elimination of forceInsertion requirement in this case;; few renamings --- .../app/player/web/managers/DOM/DOMManager.ts | 168 +++++++++--------- .../app/player/web/managers/DOM/VirtualDOM.ts | 142 +++++++++++---- 2 files changed, 185 insertions(+), 125 deletions(-) diff --git a/frontend/app/player/web/managers/DOM/DOMManager.ts b/frontend/app/player/web/managers/DOM/DOMManager.ts index c14aef6a3..542e22b0a 100644 --- a/frontend/app/player/web/managers/DOM/DOMManager.ts +++ b/frontend/app/player/web/managers/DOM/DOMManager.ts @@ -9,13 +9,14 @@ import FocusManager from './FocusManager'; import SelectionManager from './SelectionManager'; import type { StyleElement } from './VirtualDOM'; import { - PostponedStyleSheet, + OnloadStyleSheet, VDocument, VElement, VHTMLElement, VNode, VShadowRoot, VText, + OnloadVRoot, } from './VirtualDOM'; import { deleteRule, insertRule } from './safeCSSRules'; @@ -27,11 +28,13 @@ const ATTR_NAME_REGEXP = /([^\t\n\f \/>"'=]+)/; // regexp costs ~ export default class DOMManager extends ListWalker { private readonly vTexts: Map = new Map() // map vs object here? private readonly vElements: Map = new Map() - private readonly vRoots: Map = new Map() - private styleSheets: Map = new Map() - private ppStyleSheets: Map = new Map() + private readonly olVRoots: Map = new Map() + /** Constructed StyleSheets https://developer.mozilla.org/en-US/docs/Web/API/Document/adoptedStyleSheets + * as well as