| Index: trunk/src/tools/telemetry/telemetry/core/chrome/adb_commands.py
 | 
| ===================================================================
 | 
| --- trunk/src/tools/telemetry/telemetry/core/chrome/adb_commands.py	(revision 212053)
 | 
| +++ trunk/src/tools/telemetry/telemetry/core/chrome/adb_commands.py	(working copy)
 | 
| @@ -20,6 +20,7 @@
 | 
|    from pylib import cmd_helper # pylint: disable=F0401
 | 
|    from pylib import forwarder # pylint: disable=F0401
 | 
|    from pylib import ports # pylint: disable=F0401
 | 
| +  from pylib import valgrind_tools # pylint: disable=F0401
 | 
|  except Exception:
 | 
|    android_commands = None
 | 
|  
 | 
| @@ -159,24 +160,34 @@
 | 
|  
 | 
|  class Forwarder(object):
 | 
|    def __init__(self, adb, *port_pairs):
 | 
| -    self._adb = adb.Adb()
 | 
| +    tool = valgrind_tools.BaseTool()
 | 
|      self._host_port = port_pairs[0].local_port
 | 
|  
 | 
|      new_port_pairs = [(port_pair.local_port, port_pair.remote_port)
 | 
|                        for port_pair in port_pairs]
 | 
|  
 | 
| -    self._port_pairs = new_port_pairs
 | 
| -    forwarder.Forwarder.Map(new_port_pairs, self._adb)
 | 
| +    self._forwarder = forwarder.Forwarder(adb.Adb(), Forwarder._GetBuildType())
 | 
| +    self._forwarder.Run(new_port_pairs, tool)
 | 
|  
 | 
|    @staticmethod
 | 
|    def _GetBuildType():
 | 
|      assert HasForwarder()
 | 
|      return 'Debug' if HasForwarder('Debug') else 'Release'
 | 
|  
 | 
| +  @staticmethod
 | 
| +  def KillHost():
 | 
| +    forwarder.Forwarder.KillHost(Forwarder._GetBuildType())
 | 
| +
 | 
| +  @staticmethod
 | 
| +  def KillDevice(adb):
 | 
| +    forwarder.Forwarder.KillDevice(adb.Adb(), valgrind_tools.BaseTool())
 | 
| +
 | 
|    @property
 | 
|    def url(self):
 | 
| +    assert self._forwarder
 | 
|      return 'http://localhost:%i' % self._host_port
 | 
|  
 | 
|    def Close(self):
 | 
| -    for (device_port, _) in self._port_pairs:
 | 
| -      forwarder.Forwarder.UnmapDevicePort(device_port, self._adb)
 | 
| +    if self._forwarder:
 | 
| +      self._forwarder.Close()
 | 
| +      self._forwarder = None
 | 
| 
 |