Index: tools/telemetry/telemetry/cros_browser_backend.py |
diff --git a/tools/telemetry/telemetry/cros_browser_backend.py b/tools/telemetry/telemetry/cros_browser_backend.py |
index 4d27a6db8dea934f1e89f3db2699b4d993491184..5fed131c19c9a64fdca878bd9b51620ceaf08ee9 100644 |
--- a/tools/telemetry/telemetry/cros_browser_backend.py |
+++ b/tools/telemetry/telemetry/cros_browser_backend.py |
@@ -56,7 +56,8 @@ class CrOSBrowserBackend(browser_backend.BrowserBackend): |
# Forward the remote debugging port. |
logging.info('Forwarding remote debugging port') |
self._forwarder = SSHForwarder( |
- cri, 'L', (self._port, self._remote_debugging_port)) |
+ cri, 'L', |
+ util.PortPair(self._port, self._remote_debugging_port)) |
# Wait for the browser to come up. |
logging.info('Waiting for browser to be ready') |
@@ -152,9 +153,9 @@ class CrOSBrowserBackend(browser_backend.BrowserBackend): |
def GetStandardOutput(self): |
return 'Cannot get standard output on CrOS' |
- def CreateForwarder(self, *ports): |
+ def CreateForwarder(self, *port_pairs): |
assert self._cri |
- return SSHForwarder(self._cri, 'R', *ports) |
+ return SSHForwarder(self._cri, 'R', *port_pairs) |
def _RestartUI(self): |
if self._cri: |
@@ -166,28 +167,35 @@ class CrOSBrowserBackend(browser_backend.BrowserBackend): |
class SSHForwarder(object): |
- def __init__(self, cri, forwarding_flag, *ports): |
+ def __init__(self, cri, forwarding_flag, *port_pairs): |
self._proc = None |
- self._host_port = ports[0][0] |
- port_pairs = [] |
+ new_port_pairs = [] |
- for port in ports: |
- if port[1] is None: |
- port_pairs.append((port[0], cri.GetRemotePort())) |
+ for port_pair in port_pairs: |
+ if port_pair.remote_port is None: |
+ new_port_pairs.append( |
+ util.PortPair(port_pair.local_port, cri.GetRemotePort())) |
else: |
- port_pairs.append(port) |
+ new_port_pairs.append(port_pair) |
if forwarding_flag == 'R': |
- self._device_port = port_pairs[0][0] |
+ self._host_port = new_port_pairs[0].remote_port |
+ command_line = ['-%s%i:localhost:%i' % (forwarding_flag, |
+ port_pair.remote_port, |
+ port_pair.local_port) |
+ for port_pair in new_port_pairs] |
else: |
- self._device_port = port_pairs[0][1] |
+ self._host_port = new_port_pairs[0].local_port |
+ command_line = ['-%s%i:localhost:%i' % (forwarding_flag, |
+ port_pair.local_port, |
+ port_pair.remote_port) |
+ for port_pair in new_port_pairs] |
+ |
+ self._device_port = new_port_pairs[0].remote_port |
self._proc = subprocess.Popen( |
- cri.FormSSHCommandLine( |
- ['sleep', '999999999'], |
- ['-%s%i:localhost:%i' % (forwarding_flag, from_port, to_port) |
- for from_port, to_port in port_pairs]), |
+ cri.FormSSHCommandLine(['sleep', '999999999'], command_line), |
stdout=subprocess.PIPE, |
stderr=subprocess.PIPE, |
stdin=subprocess.PIPE, |