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

Unified Diff: tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py

Issue 842303002: Remove Telemetry's Chrome tracing dependency on having a BrowserBackend. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add doc. Created 5 years, 11 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: 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:

Powered by Google App Engine
This is Rietveld 408576698