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 0489927e5d141a0d3a50b45642c2c9b6f9872ff2..333ed60442ae996df157f5e63159074a0f0e9829 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 |
@@ -5,7 +5,9 @@ |
import re |
from telemetry import decorators |
+from telemetry.core import exceptions |
from telemetry.core.backends.chrome_inspector import devtools_http |
+from telemetry.core.backends.chrome_inspector import tracing_backend |
class DevToolsClientBackend(object): |
@@ -55,3 +57,31 @@ class DevToolsClientBackend(object): |
# equivalent. crbug.com/423954. |
def ListInspectableContexts(self): |
return self._devtools_http.RequestJson('') |
+ |
+ @property |
+ def support_tracing(self): |
+ # TODO(chrishenry): Is there a case where DevTools server is |
+ # available but tracing is not supported? If not, we should delete |
+ # this method. |
+ return True |
+ |
+ def StartChromeTracing( |
+ self, trace_options, custom_categories=None, timeout=10): |
+ """ |
+ Args: |
+ trace_options: An tracing_options.TracingOptions instance. |
+ custom_categories: An optional string containing a list of |
+ comma separated categories that will be traced |
+ instead of the default category set. Example: use |
+ "webkit,cc,disabled-by-default-cc.debug" to trace only |
+ those three event categories. |
+ """ |
+ if not self._tracing_backend: |
+ self._tracing_backend = tracing_backend.TracingBackend( |
+ self._devtools_port, self) |
+ return self._tracing_backend.StartTracing( |
+ trace_options, custom_categories, timeout) |
+ |
+ def StopChromeTracing(self, timeout=30): |
+ assert self._tracing_backend |
+ return self._tracing_backend.StopTracing(timeout) |