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

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

Issue 811263005: Create DevToolsHttp and basic DevToolsClientBackend. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments. Created 6 years 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
new file mode 100644
index 0000000000000000000000000000000000000000..0489927e5d141a0d3a50b45642c2c9b6f9872ff2
--- /dev/null
+++ b/tools/telemetry/telemetry/core/backends/chrome_inspector/devtools_client_backend.py
@@ -0,0 +1,57 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import re
+
+from telemetry import decorators
+from telemetry.core.backends.chrome_inspector import devtools_http
+
+
+class DevToolsClientBackend(object):
+ def __init__(self, devtools_port):
+ self._devtools_port = devtools_port
+ self._devtools_http = devtools_http.DevToolsHttp(devtools_port)
+ self._tracing_backend = None
+
+ # TODO(chrishenry): This is temporarily exposed during DevTools code
+ # refactoring. Please do not introduce new usage! crbug.com/423954
+ @property
+ def devtools_http(self):
+ return self._devtools_http
+
+ 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
+
+ @decorators.Cache
+ def GetChromeBranchNumber(self):
+ # Detect version information.
+ resp = self._devtools_http.RequestJson('version')
+ if 'Protocol-Version' in resp:
+ if 'Browser' in resp:
+ branch_number_match = re.search(r'Chrome/\d+\.\d+\.(\d+)\.\d+',
+ resp['Browser'])
+ else:
+ branch_number_match = re.search(
+ r'Chrome/\d+\.\d+\.(\d+)\.\d+ (Mobile )?Safari',
+ resp['User-Agent'])
+
+ if branch_number_match:
+ branch_number = int(branch_number_match.group(1))
+ if branch_number:
+ return branch_number
+
+ # Branch number can't be determined, so fail any branch number checks.
+ return 0
+
+ # TODO(chrishenry): This is exposed tempoarily during DevTools code
+ # refactoring. Instead, we should expose InspectorBackendList or
+ # equivalent. crbug.com/423954.
+ def ListInspectableContexts(self):
+ return self._devtools_http.RequestJson('')

Powered by Google App Engine
This is Rietveld 408576698