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 }); }