From 3eff3c62b0bab12426eb9d0796209577ce65a066 Mon Sep 17 00:00:00 2001 From: gorhill Date: Thu, 21 Jan 2016 09:33:54 -0500 Subject: [PATCH] Re. #1250: propagate injected scripts to local iframes --- src/js/contentscript-end.js | 13 +++++++++++++ src/js/contentscript-start.js | 1 + 2 files changed, 14 insertions(+) diff --git a/src/js/contentscript-end.js b/src/js/contentscript-end.js index 46f75b39a..857c97696 100644 --- a/src/js/contentscript-end.js +++ b/src/js/contentscript-end.js @@ -223,6 +223,18 @@ var uBlockCollapser = (function() { attributeFilter: [ 'src' ] }; + var primeLocalIFrame = function(iframe) { + // Should probably also copy injected styles. + if ( vAPI.injectedScripts ) { + var scriptTag = document.createElement('script'); + scriptTag.appendChild(document.createTextNode(vAPI.injectedScripts)); + var parent = iframe.contentDocument && iframe.contentDocument.head; + if ( parent ) { + parent.appendChild(scriptTag); + } + } + }; + var addIFrame = function(iframe, dontObserve) { // https://github.com/gorhill/uBlock/issues/162 // Be prepared to deal with possible change of src attribute. @@ -232,6 +244,7 @@ var uBlockCollapser = (function() { var src = iframe.src; if ( src === '' || typeof src !== 'string' ) { + primeLocalIFrame(iframe); return; } if ( src.lastIndexOf('http', 0) !== 0 ) { diff --git a/src/js/contentscript-start.js b/src/js/contentscript-start.js index bf8670d9f..3bb2d94bd 100644 --- a/src/js/contentscript-start.js +++ b/src/js/contentscript-start.js @@ -136,6 +136,7 @@ var injectScripts = function(scripts) { var scriptTag = document.createElement('script'); scriptTag.appendChild(document.createTextNode(scripts)); parent.appendChild(scriptTag); + vAPI.injectedScripts = scripts; }; /******************************************************************************/