From 68a256bdde5d55ed952f9c3c6017dcca2daacc43 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Tue, 25 Mar 2025 12:12:00 -0400 Subject: [PATCH] Improve `trusted-prevent-dom-bypass` scriptlet --- src/js/resources/scriptlets.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/js/resources/scriptlets.js b/src/js/resources/scriptlets.js index ba196f85a..ab77be711 100755 --- a/src/js/resources/scriptlets.js +++ b/src/js/resources/scriptlets.js @@ -2686,7 +2686,16 @@ function trustedPreventDomBypass( } } if ( targetProp !== '' ) { - elem.contentWindow[targetProp] = self[targetProp]; + let me = self, it = elem.contentWindow; + let chain = targetProp; + for (;;) { + const pos = chain.indexOf('.'); + if ( pos === -1 ) { break; } + const prop = chain.slice(0, pos) + me = me[prop]; it = it[prop]; + chain = chain.slice(pos+1); + } + it[chain] = me[chain]; } else { Object.defineProperty(elem, 'contentWindow', { value: self }); }