def setup(self, runner): """Connect to browser via Marionette.""" Protocol.setup(self, runner) self.logger.debug("Connecting to Marionette on port %i" % self.marionette_port) self.marionette = marionette.Marionette(host='localhost', port=self.marionette_port, socket_timeout=None) # XXX Move this timeout somewhere self.logger.debug("Waiting for Marionette connection") while True: success = self.marionette.wait_for_port(60) #When running in a debugger wait indefinitely for firefox to start if success or self.executor.debug_info is None: break session_started = False if success: try: self.logger.debug("Starting Marionette session") self.marionette.start_session() except Exception as e: self.logger.warning("Starting marionette session failed: %s" % e) else: self.logger.debug("Marionette session started") session_started = True if not success or not session_started: self.logger.warning("Failed to connect to Marionette") self.executor.runner.send_message("init_failed") else: try: self.after_connect() except Exception: self.logger.warning("Post-connection steps failed") self.logger.error(traceback.format_exc()) self.executor.runner.send_message("init_failed") else: self.executor.runner.send_message("init_succeeded")
def setup(self, runner): """Connect to browser via Marionette.""" Protocol.setup(self, runner) self.logger.debug("Connecting to Marionette on port %i" % self.marionette_port) startup_timeout = marionette.Marionette.DEFAULT_STARTUP_TIMEOUT * self.timeout_multiplier self.marionette = marionette.Marionette( host='localhost', port=self.marionette_port, socket_timeout=None, startup_timeout=startup_timeout) try: self.logger.debug("Waiting for Marionette connection") while True: try: self.marionette.raise_for_port() break except IOError: # When running in a debugger wait indefinitely for Firefox to start if self.executor.debug_info is None: raise self.logger.debug("Starting Marionette session") self.marionette.start_session() self.logger.debug("Marionette session started") except Exception as e: self.logger.warning("Failed to start a Marionette session: %s" % e) self.executor.runner.send_message("init_failed") else: try: self.after_connect() except Exception: self.logger.warning("Post-connection steps failed") self.logger.error(traceback.format_exc()) self.executor.runner.send_message("init_failed") else: self.executor.runner.send_message("init_succeeded")
def connect(self): self.logger.debug("Connecting to Marionette on port %i" % self.marionette_port) startup_timeout = marionette.Marionette.DEFAULT_STARTUP_TIMEOUT * self.timeout_multiplier self.marionette = marionette.Marionette(host='127.0.0.1', port=self.marionette_port, socket_timeout=None, startup_timeout=startup_timeout) self.logger.debug("Waiting for Marionette connection") while True: try: self.marionette.raise_for_port() break except IOError: # When running in a debugger wait indefinitely for Firefox to start if self.executor.debug_info is None: raise self.logger.debug("Starting Marionette session") self.marionette.start_session(self.capabilities) self.logger.debug("Marionette session started")
def __init__(self, device): global _host global _port self.device = device self.marionette = marionette.Marionette(host=_host, port=_port)
args.url = "http://%s:%d/%s" % (host, port, args.fuzzer) # Setup HTTPd server = mozhttpd.MozHttpd(port=port, host=host, docroot=args.root) server.start() # Setup B2G and Firefox preferences pref = mozprofile.Preferences() pref.add(pref.read_prefs(args.prefs)) profile = mozprofile.Profile(preferences=pref()) # Bug 908793 # Setup Marionette marionette = marionette.Marionette( emulator='arm', homedir=args.b2g_dir, symbols_path=args.symbols_path, gecko_path=None, #logcat_dir=args.logcat_dir ) # Setup DeviceManager for ADB device = mozdevice.DeviceManagerADB(loglevel=10) # Setup B2G with profile and marionette over ADB runner = mozrunner.B2GRunner(profile, device, marionette, context_chrome=False) runner.start() # Setup Gaia
except mozdevice.DMError, e: print "Error connecting to device via adb (error: %s). Please be " \ "sure device is connected and 'remote debugging' is enabled." % \ e.msg logger.error("Error connecting to device: %s" % e.msg) sys.exit(1) # wait here to make sure marionette is running logger.debug('Attempting to set up port forwarding for marionette') if dm.forward("tcp:2828", "tcp:2828") != 0: raise Exception("Can't use localhost:2828 for port forwarding." \ "Is something else using port 2828?") retries = 0 while retries < 5: try: m = marionette.Marionette() m.start_session() m.delete_session() break except (IOError, TypeError): time.sleep(5) retries += 1 else: raise Exception("Couldn't connect to marionette after %d attempts. " \ "Is the marionette extension installed?" % retries) if args.version not in supported_versions: print "%s is not a valid version. Please enter one of %s" % \ (args.version, supported_versions) sys.exit(1)