| Index: tools/telemetry/telemetry/core/chrome/android_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/chrome/android_browser_backend.py b/tools/telemetry/telemetry/core/chrome/android_browser_backend.py
|
| index 34aa933ee18e62871f1261e8fb2cf83e037c7059..26d53d9c7cb209540791b8fc7c4c422493a3fec0 100644
|
| --- a/tools/telemetry/telemetry/core/chrome/android_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/core/chrome/android_browser_backend.py
|
| @@ -171,6 +171,15 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| if options.profile_dir:
|
| self._backend_settings.PushProfile(options.profile_dir)
|
|
|
| + # Pre-configure RNDIS forwarding.
|
| + self._have_rndis = False
|
| + self._rndis_forwarder = None
|
| + if self._have_rndis:
|
| + self._rndis_forwarder = adb_commands.RndisForwarderWithRoot(self._adb)
|
| + self.WEBPAGEREPLAY_HOST = self._rndis_forwarder.host_ip
|
| + # TODO(szym): only override DNS if WPR has privileges to proxy on port 25.
|
| + self._override_dns = False
|
| +
|
| # Set up the command line.
|
| self._saved_cmdline = ''.join(self._adb.Adb().GetProtectedFileContents(
|
| self._backend_settings.cmdline_file) or [])
|
| @@ -231,6 +240,9 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
|
|
| def GetBrowserStartupArgs(self):
|
| args = super(AndroidBrowserBackend, self).GetBrowserStartupArgs()
|
| + if self._override_dns:
|
| + args = [arg for arg in args
|
| + if not arg.startswith('--host-resolver-rules')]
|
| args.append('--enable-remote-debugging')
|
| args.append('--no-restore-state')
|
| args.append('--disable-fre')
|
| @@ -300,5 +312,21 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| stdout=subprocess.PIPE).communicate()[0])
|
| return ret
|
|
|
| + def AddReplayServerOptions(self, options):
|
| + """Override. Only add --no-dns_forwarding if not using RNDIS."""
|
| + if not self._override_dns:
|
| + options.append('--no-dns_forwarding')
|
| +
|
| def CreateForwarder(self, *port_pairs):
|
| + if self._rndis_forwarder:
|
| + forwarder = self._rndis_forwarder
|
| + forwarder.SetPorts(*port_pairs)
|
| + assert self.WEBPAGEREPLAY_HOST == forwarder.host_ip, (
|
| + 'Host IP address on the RNDIS interface changed. Must restart browser!')
|
| + if self._override_dns:
|
| + forwarder.OverrideDns()
|
| + return forwarder
|
| + assert not self._override_dns, ('The user-space forwarder does not support '
|
| + 'DNS override!')
|
| + logging.warning('Using the user-space forwarder.\n')
|
| return adb_commands.Forwarder(self._adb, *port_pairs)
|
|
|