def __init__(self, browser_options, backend_settings, use_rndis_forwarder, output_profile_path, extensions_to_load, target_arch, android_platform_backend): super(AndroidBrowserBackend, self).__init__( supports_tab_control=backend_settings.supports_tab_control, supports_extensions=False, browser_options=browser_options, output_profile_path=output_profile_path, extensions_to_load=extensions_to_load) if len(extensions_to_load) > 0: raise browser_backend.ExtensionsNotSupportedException( 'Android browser does not support extensions.') # Initialize fields so that an explosion during init doesn't break in Close. self._android_platform_backend = android_platform_backend self._backend_settings = backend_settings self._saved_cmdline = '' self._target_arch = target_arch self._saved_sslflag = '' # TODO(tonyg): This is flaky because it doesn't reserve the port that it # allocates. Need to fix this. self._port = adb_commands.AllocateTestServerPort() # Disables android.net SSL certificate check. This is necessary for # applications using the android.net stack to work with proxy HTTPS server # created by telemetry if self._backend_settings.relax_ssl_check: self._saved_sslflag = self._adb.device().GetProp( 'socket.relaxsslcheck') self._adb.device().SetProp('socket.relaxsslcheck', 'yes') # Kill old browser. self._KillBrowser() if self._adb.device().old_interface.CanAccessProtectedFileContents(): if self.browser_options.profile_dir: self._backend_settings.PushProfile( self.browser_options.profile_dir, self._adb) elif not self.browser_options.dont_override_profile: self._backend_settings.RemoveProfile(self._adb) self._forwarder_factory = android_forwarder.AndroidForwarderFactory( self._adb, use_rndis_forwarder) if self.browser_options.netsim or use_rndis_forwarder: assert use_rndis_forwarder, 'Netsim requires RNDIS forwarding.' self.wpr_port_pairs = forwarders.PortPairs( http=forwarders.PortPair(0, 80), https=forwarders.PortPair(0, 443), dns=forwarders.PortPair(0, 53)) # Set the debug app if needed. if self._adb.IsUserBuild(): logging.debug('User build device, setting debug app') self._adb.device().RunShellCommand( 'am set-debug-app --persistent %s' % self._backend_settings.package)
def __init__(self, android_platform_backend, browser_options, backend_settings, use_rndis_forwarder, output_profile_path, extensions_to_load, target_arch): assert isinstance(android_platform_backend, android_platform_backend_module.AndroidPlatformBackend) super(AndroidBrowserBackend, self).__init__( android_platform_backend, supports_tab_control=backend_settings.supports_tab_control, supports_extensions=False, browser_options=browser_options, output_profile_path=output_profile_path, extensions_to_load=extensions_to_load) if len(extensions_to_load) > 0: raise browser_backend.ExtensionsNotSupportedException( 'Android browser does not support extensions.') # Initialize fields so that an explosion during init doesn't break in Close. self._backend_settings = backend_settings self._saved_cmdline = '' self._target_arch = target_arch self._saved_sslflag = '' # TODO(tonyg): This is flaky because it doesn't reserve the port that it # allocates. Need to fix this. self._port = adb_commands.AllocateTestServerPort() # TODO(wuhu): Move to network controller backend. self._platform_backend.InstallTestCa() # Kill old browser. self._KillBrowser() if self._adb.device().old_interface.CanAccessProtectedFileContents(): if self.browser_options.profile_dir: self._platform_backend.PushProfile( self._backend_settings.package, self.browser_options.profile_dir) elif not self.browser_options.dont_override_profile: self._platform_backend.RemoveProfile( self._backend_settings.package, self._backend_settings.profile_ignore_list) self._forwarder_factory = android_forwarder.AndroidForwarderFactory( self._adb, use_rndis_forwarder) if self.browser_options.netsim or use_rndis_forwarder: assert use_rndis_forwarder, 'Netsim requires RNDIS forwarding.' self.wpr_port_pairs = forwarders.PortPairs( http=forwarders.PortPair(0, 80), https=forwarders.PortPair(0, 443), dns=forwarders.PortPair(0, 53)) # Set the debug app if needed. self._platform_backend.SetDebugApp(self._backend_settings.package)
def __init__(self, browser_options, backend_settings, use_rndis_forwarder, output_profile_path, extensions_to_load): super(AndroidBrowserBackend, self).__init__( is_content_shell=backend_settings.is_content_shell, supports_extensions=False, browser_options=browser_options, output_profile_path=output_profile_path, extensions_to_load=extensions_to_load) if len(extensions_to_load) > 0: raise browser_backend.ExtensionsNotSupportedException( 'Android browser does not support extensions.') # Initialize fields so that an explosion during init doesn't break in Close. self._adb = backend_settings.adb self._backend_settings = backend_settings self._saved_cmdline = '' # TODO(tonyg): This is flaky because it doesn't reserve the port that it # allocates. Need to fix this. self._port = adb_commands.AllocateTestServerPort() # Kill old browser. self._adb.CloseApplication(self._backend_settings.package) if self._adb.Adb().CanAccessProtectedFileContents(): if self.browser_options.profile_dir: self._backend_settings.PushProfile( self.browser_options.profile_dir) elif not self.browser_options.dont_override_profile: self._backend_settings.RemoveProfile() self._forwarder_factory = android_forwarder.AndroidForwarderFactory( self._adb, use_rndis_forwarder) if self.browser_options.netsim: assert use_rndis_forwarder, 'Netsim requires RNDIS forwarding.' self.wpr_port_pairs = forwarders.PortPairs( http=forwarders.PortPair(0, 80), https=forwarders.PortPair(0, 443), dns=forwarders.PortPair(0, 53)) # Set the debug app if needed. if self._adb.IsUserBuild(): logging.debug('User build device, setting debug app') self._adb.RunShellCommand('am set-debug-app --persistent %s' % self._backend_settings.package)
def GetForwarderFactory(adb): return android_forwarder.AndroidForwarderFactory(adb, True)
def forwarder_factory(self): if not self._forwarder_factory: self._forwarder_factory = android_forwarder.AndroidForwarderFactory( self._adb, self._use_rndis_forwarder) return self._forwarder_factory