| 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 33d6b7005169bd57a79085768b8719a2296453d8..f2131f9afa3dd3d5f59a9eb3af536d91d3d7529d 100644
|
| --- a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
|
| @@ -127,6 +127,20 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
|
|
| return args
|
|
|
| + @property
|
| + def _use_host_resolver_rules(self):
|
| + """Returns True if need --host-resolver-rules to send requests to replay."""
|
| + if self.browser_options.netsim:
|
| + # Avoid --host-resolver-rules with netsim because it causes Chrome to
|
| + # skip DNS requests. With netsim, we want to exercise DNS requests.
|
| + return False
|
| + if self.forwarder_factory.does_forwarder_override_dns:
|
| + # Avoid --host-resolver-rules when the forwarder can map DNS requests
|
| + # from devices to the replay DNS port on the host running Telemetry.
|
| + # This allows the browser to exercise DNS requests.
|
| + return False
|
| + return True
|
| +
|
| def GetReplayBrowserStartupArgs(self):
|
| if self.browser_options.wpr_mode == wpr_modes.WPR_OFF:
|
| return []
|
| @@ -134,9 +148,6 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
| # 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 = []
|
| @@ -145,7 +156,7 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
| # and installed a root certificate. When |self.wpr_ca_cert_path| is
|
| # set, Web Page Replay uses it to sign HTTPS responses.
|
| replay_args.append('--ignore-certificate-errors')
|
| - if use_host_resolver:
|
| + if self._use_host_resolver_rules:
|
| 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
|
|
|