| Index: tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py b/tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py
|
| index bb0e38d2bae7d6491ba1c7a0e0758aea1847f5ba..c79857c74279be1a9faac2cd6748b08badf45755 100644
|
| --- a/tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py
|
| +++ b/tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py
|
| @@ -12,15 +12,49 @@ from telemetry.core.backends.chrome_inspector import tracing_backend
|
| from telemetry.timeline import trace_data as trace_data_module
|
|
|
|
|
| +def IsDevToolsAgentAvailable(port):
|
| + """Returns True if a DevTools agent is available on the given port."""
|
| + return _IsDevToolsAgentAvailable(devtools_http.DevToolsHttp(port))
|
| +
|
| +
|
| +def _IsDevToolsAgentAvailable(devtools_http_instance):
|
| + try:
|
| + devtools_http_instance.Request('', timeout=.1)
|
| + except devtools_http.DevToolsClientConnectionError:
|
| + return False
|
| + else:
|
| + return True
|
| +
|
| +
|
| class DevToolsClientBackend(object):
|
| - def __init__(self, devtools_port, app_backend):
|
| + def __init__(self, devtools_port, remote_devtools_port, app_backend):
|
| + """Creates a new DevToolsClientBackend.
|
| +
|
| + A DevTools agent must exist on the given devtools_port.
|
| +
|
| + Args:
|
| + devtools_port: The port to use to connect to DevTools agent.
|
| + remote_devtools_port: In some cases (e.g., app running on
|
| + Android device, devtools_port is the forwarded port on the
|
| + host platform. We also need to know the remote_devtools_port
|
| + so that we can uniquely identify the DevTools agent.
|
| + app_backend: For the app that contains the DevTools agent.
|
| + """
|
| self._devtools_port = devtools_port
|
| + self._remote_devtools_port = remote_devtools_port
|
| self._devtools_http = devtools_http.DevToolsHttp(devtools_port)
|
| self._tracing_backend = None
|
| self._app_backend = app_backend
|
| self._devtools_context_map_backend = _DevToolsContextMapBackend(
|
| self._app_backend, self)
|
|
|
| + tracing_controller_backend = (
|
| + self._app_backend.platform_backend.tracing_controller_backend)
|
| + tracing_controller_backend.RegisterDevToolsClient(self)
|
| +
|
| + def remote_port(self):
|
| + return self._remote_devtools_port
|
| +
|
| # TODO(chrishenry): This is temporarily exposed during DevTools code
|
| # refactoring. Please do not introduce new usage! crbug.com/423954
|
| @property
|
| @@ -29,12 +63,7 @@ class DevToolsClientBackend(object):
|
|
|
| def IsAlive(self):
|
| """Whether the DevTools server is available and connectable."""
|
| - try:
|
| - self._devtools_http.Request('', timeout=.1)
|
| - except devtools_http.DevToolsClientConnectionError:
|
| - return False
|
| - else:
|
| - return True
|
| + return _IsDevToolsAgentAvailable(self.devtools_http)
|
|
|
| def Close(self):
|
| if self._tracing_backend:
|
|
|