diff --git a/testing/marionette/client/marionette/marionette_test.py b/testing/marionette/client/marionette/marionette_test.py index bdc07a84fb95..6e21ab7a0548 100644 --- a/testing/marionette/client/marionette/marionette_test.py +++ b/testing/marionette/client/marionette/marionette_test.py @@ -159,6 +159,17 @@ class MarionetteJSTestCase(CommonTestCase): if self.marionette.session is None: self.marionette.start_session() self.marionette.execute_script("log('TEST-START: %s');" % self.jsFile.replace('\\', '\\\\')) + + self.marionette.set_context(self.marionette.CONTEXT_CHROME) + self.marionette.set_script_timeout(30000) + self.marionette.execute_async_script(""" +waitFor( + function() { marionetteScriptFinished(true); }, + function() { return isSystemMessageListenerReady(); } +); + """) + self.marionette.set_context(self.marionette.CONTEXT_CONTENT) + f = open(self.jsFile, 'r') js = f.read() args = [] diff --git a/testing/marionette/marionette-actors.js b/testing/marionette/marionette-actors.js index 14bb36cd64ed..7b2953f1a5e9 100644 --- a/testing/marionette/marionette-actors.js +++ b/testing/marionette/marionette-actors.js @@ -449,8 +449,7 @@ MarionetteDriverActor.prototype = { let win = this.getCurrentWindow(); if (!win || (appName == "Firefox" && !win.gBrowser) || - (appName == "Fennec" && !win.BrowserApp) || - (appName == "B2G" && !systemMessageListenerReady)) { + (appName == "Fennec" && !win.BrowserApp)) { checkTimer.initWithCallback(waitForWindow.bind(this), 100, Ci.nsITimer.TYPE_ONE_SHOT); } else { @@ -606,6 +605,9 @@ MarionetteDriverActor.prototype = { } }); + _chromeSandbox.isSystemMessageListenerReady = + function() { return systemMessageListenerReady; } + if (specialPowers == true) { loader.loadSubScript("chrome://specialpowers/content/specialpowersAPI.js", _chromeSandbox);