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

Unified Diff: telemetry/telemetry/core/platform.py

Issue 2982743002: webrtc: Fix missing port forwarding on CrOS (Closed)
Patch Set: webrtc: Fix missing port forwarding on CrOS and android Created 3 years, 5 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/core/platform.py
diff --git a/telemetry/telemetry/core/platform.py b/telemetry/telemetry/core/platform.py
index 39f151b9fac08e33285a359b3ce73a8b14bcce54..77e35a94562d03eab5b2aec349d25006e95f1a29 100644
--- a/telemetry/telemetry/core/platform.py
+++ b/telemetry/telemetry/core/platform.py
@@ -10,6 +10,7 @@ from telemetry.core import memory_cache_http_server
from telemetry.core import network_controller
from telemetry.core import tracing_controller
from telemetry.core import util
+from telemetry.internal import forwarders
from telemetry.internal.platform import (platform_backend as
platform_backend_module)
@@ -88,6 +89,7 @@ class Platform(object):
self._local_server_controller = local_server.LocalServerController(
self._platform_backend)
self._is_monitoring_power = False
+ self._forwarder = None
@property
def is_host_platform(self):
@@ -410,10 +412,28 @@ class Platform(object):
server = memory_cache_http_server.MemoryCacheHTTPServer(paths)
self.StartLocalServer(server)
+
+ # Requires port forwarding if browser is on remote device, and
+ # replaces the http_server port number with the one resolved by
+ # remote machine with ssh/adb remote port forwarding.
+ if self._platform_backend.IsDeviceRemote():
+ # TODO(crbug.com/747293):
+ # Originally the proxy_server is enabled for forwarding traffic
+ # if the device is on remote. However, if the tracing is enabled,
+ # the browser startup args will be reset which disables traffic
+ # reroute through proxy_server. Here we have to create extra
+ # port_forwarding.
+ if self.tracing_controller.is_tracing_running:
+ self._forwarder = self._platform_backend.CreatePortForwarder(
+ forwarders.PortPair(self.http_server.port, 0),
+ use_remote_port_forwarding=True)
+ self.http_server.port = self._forwarder.host_port
return True
def StopAllLocalServers(self):
self._local_server_controller.Close()
+ if self._forwarder:
+ self._forwarder.Close()
@property
def local_servers(self):

Powered by Google App Engine
This is Rietveld 408576698