From e20458a00fd728b038c20fb9b9421de134a4dfad Mon Sep 17 00:00:00 2001 From: Deathamns Date: Wed, 17 Dec 2014 08:46:18 +0100 Subject: [PATCH] Firefox: fix script injection --- platform/firefox/frameModule.js | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/platform/firefox/frameModule.js b/platform/firefox/frameModule.js index 376c35931..ce2121980 100644 --- a/platform/firefox/frameModule.js +++ b/platform/firefox/frameModule.js @@ -114,17 +114,6 @@ let contentPolicy = { let docObserver = { contentBaseURI: 'chrome://' + appName + '/content/', - injectScript: function(script, evalCode) { - if (evalCode) { - Components.utils.evalInSandbox(script, this); - return; - } - - Services.scriptloader.loadSubScript( - docObserver.contentBaseURI + script, - this - ); - }, initContext: function(win, sandbox) { let messager = getMessager(win); @@ -137,10 +126,20 @@ let docObserver = { win.self = win; - Components.utils.exportFunction( - this.injectScript, - win, - {defineAs: 'injectScript'} + // anonymous function needs to be used here + win.injectScript = Components.utils.exportFunction( + function(script, evalCode) { + if (evalCode) { + Components.utils.evalInSandbox(script, win); + return; + } + + Services.scriptloader.loadSubScript( + docObserver.contentBaseURI + script, + win + ); + }, + win ); }