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

Unified Diff: telemetry/telemetry/internal/platform/network_controller_backend.py

Issue 2445693002: [NOT FOR COMMIT] Revert Disable TsProxy on Android (Closed)
Patch Set: Created 4 years, 2 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: telemetry/telemetry/internal/platform/network_controller_backend.py
diff --git a/telemetry/telemetry/internal/platform/network_controller_backend.py b/telemetry/telemetry/internal/platform/network_controller_backend.py
index 052be072458065e5a75be8f4007c1a8569d1300d..5b6630c81cad5b428ccbf7b58ef370e822ed6214 100644
--- a/telemetry/telemetry/internal/platform/network_controller_backend.py
+++ b/telemetry/telemetry/internal/platform/network_controller_backend.py
@@ -7,8 +7,8 @@ import os
import shutil
import tempfile
+from telemetry.internal import forwarders
from telemetry.internal.util import wpr_server
-from telemetry.internal.util import ts_proxy_server
from telemetry.util import wpr_modes
import certutils
@@ -36,6 +36,8 @@ class NetworkControllerBackend(object):
self._platform_backend = platform_backend
self._wpr_mode = None
self._extra_wpr_args = None
+ self._wpr_http = None
+ self._wpr_https = None
self._archive_path = None
self._make_javascript_deterministic = None
self._forwarder = None
@@ -45,24 +47,6 @@ class NetworkControllerBackend(object):
self._port_pair = None
self._use_live_traffic = None
- def InitializeIfNeeded(self, use_live_traffic):
- """
- This may, e.g., install test certificates and perform any needed setup
- on the target platform.
-
- After network interactions are over, clients should call the Close method.
- """
- if self._use_live_traffic is None:
- self._use_live_traffic = use_live_traffic
- assert self._use_live_traffic == use_live_traffic, (
- 'inconsistent state of use_live_traffic')
- assert bool(self._ts_proxy_server) == bool(self._forwarder)
- if self._ts_proxy_server:
- return
- local_port = self._StartTsProxyServer(self._use_live_traffic)
- self._forwarder = self._platform_backend.forwarder_factory.Create(
- self._platform_backend.GetPortPairForForwarding(local_port))
-
@property
def is_open(self):
return self._wpr_mode is not None
@@ -103,6 +87,8 @@ class NetworkControllerBackend(object):
assert not self.is_open, 'Network controller is already open'
self._wpr_mode = wpr_mode
self._extra_wpr_args = extra_wpr_args
+ self._wpr_http = forwarders.PortPair(0, 0)
+ self._wpr_https = forwarders.PortPair(0, 0)
self._InstallTestCa()
def Close(self):
@@ -111,11 +97,11 @@ class NetworkControllerBackend(object):
Implicitly stops replay if currently active.
"""
self.StopReplay()
- self._StopForwarder()
- self._StopTsProxyServer()
self._RemoveTestCa()
self._make_javascript_deterministic = None
self._archive_path = None
+ self._wpr_http = None
+ self._wpr_https = None
self._extra_wpr_args = None
self._wpr_mode = None
@@ -209,8 +195,7 @@ class NetworkControllerBackend(object):
self._archive_path = archive_path
self._make_javascript_deterministic = make_javascript_deterministic
local_ports = self._StartReplayServer()
- self._ts_proxy_server.UpdateOutboundPorts(
- http_port=local_ports.http, https_port=local_ports.https)
+ self._StartForwarder(local_ports)
def _StopForwarder(self):
if self._forwarder:
@@ -222,6 +207,7 @@ class NetworkControllerBackend(object):
Stops both the replay server and the forwarder if currently active.
"""
+ self._StopForwarder()
self._StopReplayServer()
def _StartReplayServer(self):
@@ -230,8 +216,8 @@ class NetworkControllerBackend(object):
self._wpr_server = wpr_server.ReplayServer(
self._archive_path,
self.host_ip,
- http_port=0,
- https_port=0,
+ http_port=self._wpr_http.local_port,
+ https_port=self._wpr_https.local_port,
dns_port=None,
replay_options=self._ReplayCommandLineArgs())
return self._wpr_server.StartServer()
@@ -242,12 +228,6 @@ class NetworkControllerBackend(object):
self._wpr_server.StopServer()
self._wpr_server = None
- def _StopTsProxyServer(self):
- """Stop the replay server only."""
- if self._ts_proxy_server:
- self._ts_proxy_server.StopServer()
- self._ts_proxy_server = None
-
def _ReplayCommandLineArgs(self):
wpr_args = list(self._extra_wpr_args)
if self._wpr_mode == wpr_modes.WPR_APPEND:
@@ -262,19 +242,18 @@ class NetworkControllerBackend(object):
'--https_root_ca_cert_path=%s' % self._wpr_ca_cert_path])
return wpr_args
- def _StartTsProxyServer(self, use_live_traffic):
- assert not self._ts_proxy_server, 'ts_proxy_server is already started'
- host_ip = None
- if not use_live_traffic:
- host_ip = self.host_ip
- self._ts_proxy_server = ts_proxy_server.TsProxyServer(host_ip=host_ip)
- self._ts_proxy_server.StartServer()
- return self._ts_proxy_server.port
+ def _StartForwarder(self, local_ports):
+ if self._forwarder is not None:
+ if (local_ports.http == self._forwarder.http_ports.local_port and
+ local_ports.https == self._forwarder.https_ports.local_port):
+ return # Safe to reuse existing forwarder.
+ self._forwarder.Close()
+ self._forwarder = self._platform_backend.forwarder_factory.Create(
+ forwarders.PortPair(local_ports.http, self._wpr_http.remote_port),
+ forwarders.PortPair(local_ports.https, self._wpr_https.remote_port))
+ self._wpr_http = self._forwarder.http_ports
+ self._wpr_https = self._forwarder.https_ports
@property
def forwarder(self):
return self._forwarder
-
- @property
- def ts_proxy_server(self):
- return self._ts_proxy_server
« no previous file with comments | « telemetry/telemetry/internal/forwarders/android_forwarder.py ('k') | telemetry/telemetry/internal/util/wpr_server.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698