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

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

Issue 595213003: Handle the Web Page Replay related Chrome flags in one place. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Handle review comments. Created 6 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
Index: tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
index 50d16f5dc8e0f4dc5607f6a3f39723295d4913d1..c95555f0dbb500beeb797b805508364bbd35ac40 100644
--- a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
+++ b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
@@ -19,7 +19,6 @@ from telemetry.core import user_agent
from telemetry.core import util
from telemetry.core import web_contents
from telemetry.core import wpr_modes
-from telemetry.core import wpr_server
from telemetry.core.backends import browser_backend
from telemetry.core.backends.chrome import extension_backend
from telemetry.core.backends.chrome import system_info_backend
@@ -102,12 +101,7 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
if self.browser_options.disable_background_networking:
args.append('--disable-background-networking')
-
- if self.browser_options.netsim:
- args.append('--ignore-certificate-errors')
- elif self.browser_options.wpr_mode != wpr_modes.WPR_OFF:
- args.extend(wpr_server.GetChromeFlags(self.forwarder_factory.host_ip,
- self.wpr_port_pairs))
+ args.extend(self.GetReplayBrowserStartupArgs())
args.extend(user_agent.GetChromeUserAgentArgumentFromType(
self.browser_options.browser_user_agent_type))
@@ -133,6 +127,34 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
return args
+ def GetReplayBrowserStartupArgs(self):
+ if self.browser_options.wpr_mode == wpr_modes.WPR_OFF:
+ return []
+ # Use Chrome's --host-resolver-rules flag if the forwarder does not send
+ # the HTTP requests directly to Replay. Also use --host-resolver-rules
+ # without netsim. With netsim, DNS requests should be sent (to get the
+ # simulated latency), however, the flag causes DNS requests to be skipped.
+ use_host_resolver = (
+ not self.forwarder_factory.does_forwarder_override_dns and
+ not self.browser_options.netsim)
+ http_remote_port = self.wpr_port_pairs.http.remote_port
+ https_remote_port = self.wpr_port_pairs.https.remote_port
+ replay_args = ['--ignore-certificate-errors']
+ if use_host_resolver:
+ replay_args.append('--host-resolver-rules=MAP * %s,EXCLUDE localhost' %
+ self.forwarder_factory.host_ip) # replay's host_ip
+ # Force the browser to send HTTP/HTTPS requests to fixed ports if they
+ # are not the standard defaults.
+ # Backstory:
+ # That allows Telemetry to pick ports that do not require sudo
+ # and leaves room for multiple instances running simultaneously.
+ # The default ports are required for network simulation.
+ if http_remote_port != 80:
+ replay_args.append('--testing-fixed-http-port=%s' % http_remote_port)
+ if https_remote_port != 443: # check if using the default HTTPS port
+ replay_args.append('--testing-fixed-https-port=%s' % https_remote_port)
+ return replay_args
+
def HasBrowserFinishedLaunching(self):
try:
self.Request('', timeout=.1)

Powered by Google App Engine
This is Rietveld 408576698