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

Unified Diff: telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py

Issue 2989413002: Take non-default browser target location into account when attaching to it. (Closed)
Patch Set: added default value for target Created 3 years, 4 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/internal/backends/chrome_inspector/devtools_client_backend.py
diff --git a/telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py b/telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py
index f4237762af8571931f9b58078d61774dfbc4bd82..6608658d7aa5009bd7f395d9324211ab3e3f134a 100644
--- a/telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py
+++ b/telemetry/telemetry/internal/backends/chrome_inspector/devtools_client_backend.py
@@ -23,20 +23,24 @@ from telemetry.internal.platform.tracing_agent import (
from tracing.trace_data import trace_data as trace_data_module
-BROWSER_INSPECTOR_WEBSOCKET_URL = 'ws://127.0.0.1:%i/devtools/browser'
+BROWSER_INSPECTOR_WEBSOCKET_URL = 'ws://127.0.0.1:%i%s'
class TabNotFoundError(exceptions.Error):
pass
-def IsDevToolsAgentAvailable(port, app_backend):
+def IsDevToolsAgentAvailable(port, browser_target, app_backend):
"""Returns True if a DevTools agent is available on the given port."""
+ if not browser_target:
+ browser_target = '/devtools/browser'
+
if (isinstance(app_backend, browser_backend.BrowserBackend) and
app_backend.supports_tracing):
inspector_websocket_instance = inspector_websocket.InspectorWebsocket()
try:
- if not _IsInspectorWebsocketAvailable(inspector_websocket_instance, port):
+ if not _IsInspectorWebsocketAvailable(
+ inspector_websocket_instance, port, browser_target):
return False
finally:
inspector_websocket_instance.Disconnect()
@@ -48,10 +52,11 @@ def IsDevToolsAgentAvailable(port, app_backend):
devtools_http_instance.Disconnect()
-def _IsInspectorWebsocketAvailable(inspector_websocket_instance, port):
+def _IsInspectorWebsocketAvailable(inspector_websocket_instance, port,
+ browser_target):
try:
inspector_websocket_instance.Connect(
- BROWSER_INSPECTOR_WEBSOCKET_URL % port, timeout=10)
+ BROWSER_INSPECTOR_WEBSOCKET_URL % (port, browser_target), timeout=10)
except (websocket.WebSocketException, socket.error) as exc:
logging.info(
'Websocket at port %i not yet available: %s', port, exc)
@@ -83,7 +88,8 @@ class DevToolsClientBackend(object):
This class owns a map of InspectorBackends. It is responsible for creating
them and destroying them.
"""
- def __init__(self, devtools_port, remote_devtools_port, app_backend):
+ def __init__(self, devtools_port, browser_target, remote_devtools_port,
+ app_backend):
"""Creates a new DevToolsClientBackend.
A DevTools agent must exist on the given devtools_port.
@@ -97,6 +103,7 @@ class DevToolsClientBackend(object):
app_backend: For the app that contains the DevTools agent.
"""
self._devtools_port = devtools_port
+ self._browser_target = browser_target or '/devtools/browser'
self._remote_devtools_port = remote_devtools_port
self._devtools_http = devtools_http.DevToolsHttp(devtools_port)
self._browser_inspector_websocket = None
@@ -324,14 +331,18 @@ class DevToolsClientBackend(object):
if not self._system_info_backend:
self._CreateAndConnectBrowserInspectorWebsocketIfNeeded()
self._system_info_backend = system_info_backend.SystemInfoBackend(
- self._devtools_port)
+ self._BrowserTargetWebSocket())
def _CreateAndConnectBrowserInspectorWebsocketIfNeeded(self):
if not self._browser_inspector_websocket:
self._browser_inspector_websocket = (
inspector_websocket.InspectorWebsocket())
self._browser_inspector_websocket.Connect(
- BROWSER_INSPECTOR_WEBSOCKET_URL % self._devtools_port, timeout=10)
+ self._BrowserTargetWebSocket(), timeout=10)
+
+ def _BrowserTargetWebSocket(self):
+ return (BROWSER_INSPECTOR_WEBSOCKET_URL % (
+ self._devtools_port, self._browser_target))
def IsChromeTracingSupported(self):
if not self.supports_tracing:

Powered by Google App Engine
This is Rietveld 408576698