Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py

Issue 22286010: [telemetry] Implement Forwarder using RNDIS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync fixup Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/telemetry/telemetry/core/backends/android_rndis.py ('k') | tools/telemetry/telemetry/core/browser.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
index d0c45999a286f9c067628ad2c08464dec97307a6..758adff73aeb14087dbd581750dccaf34ed833b0 100644
--- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
+++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_backend.py
@@ -11,6 +11,7 @@ import time
from telemetry.core import exceptions
from telemetry.core import util
from telemetry.core.backends import adb_commands
+from telemetry.core.backends import android_rndis
from telemetry.core.backends import browser_backend
from telemetry.core.backends.chrome import chrome_browser_backend
@@ -170,6 +171,14 @@ class AndroidBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
if finder_options.profile_dir:
self._backend_settings.PushProfile(finder_options.profile_dir)
+ # Pre-configure RNDIS forwarding.
+ self._rndis_forwarder = None
+ if finder_options.android_rndis:
+ self._rndis_forwarder = android_rndis.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
+
self._SetUpCommandLine()
def _SetUpCommandLine(self):
@@ -245,6 +254,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')
@@ -321,5 +333,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)
« no previous file with comments | « tools/telemetry/telemetry/core/backends/android_rndis.py ('k') | tools/telemetry/telemetry/core/browser.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698