From 076e54573fd0def514fd2a95b6bc4add04645805 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Mon, 3 Apr 2023 17:30:35 +0200 Subject: [PATCH] fix(player): drasticly reduce amount of node getter call during virtual node insertion --- .../app/player/web/managers/DOM/DOMManager.ts | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/frontend/app/player/web/managers/DOM/DOMManager.ts b/frontend/app/player/web/managers/DOM/DOMManager.ts index c07b6ea73..c14aef6a3 100644 --- a/frontend/app/player/web/managers/DOM/DOMManager.ts +++ b/frontend/app/player/web/managers/DOM/DOMManager.ts @@ -109,20 +109,22 @@ export default class DOMManager extends ListWalker { } const parent = this.vElements.get(parentID) || this.vRoots.get(parentID) if (!parent) { - logger.error("Insert error. Parent node not found", parentID, this.vElements, this.vRoots); + logger.error("Insert error. Parent vNode not found", parentID, this.vElements, this.vRoots); return; } - const pNode = parent.node // TODOTODO - if ((pNode instanceof HTMLStyleElement) && // TODO: correct ordering OR filter in tracker - pNode.sheet && - pNode.sheet.cssRules && - pNode.sheet.cssRules.length > 0 && - pNode.innerText && - pNode.innerText.trim().length === 0 - ) { - logger.log("Trying to insert child to a style tag with virtual rules: ", parent, child); - return; + if (parent instanceof VElement && parent.tagName.toLowerCase() === "style") { + // TODO: if this ever happens? ; Maybe do not send empty TextNodes in tracker + const styleNode = parent.node as StyleElement + if (styleNode.sheet && + styleNode.sheet.cssRules && + styleNode.sheet.cssRules.length > 0 && + styleNode.textContent && + styleNode.textContent.trim().length === 0 + ) { + logger.log("Trying to insert child to a style tag with virtual rules: ", parent, child); + return; + } } parent.insertChildAt(child, index)