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

Unified Diff: tools/telemetry/telemetry/core/platform/tracing_controller.py

Issue 414253004: Introduce TracingController and TracingControllerBackend skeleton (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ready_to_land Created 6 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: tools/telemetry/telemetry/core/platform/tracing_controller.py
diff --git a/tools/telemetry/telemetry/core/platform/tracing_controller.py b/tools/telemetry/telemetry/core/platform/tracing_controller.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6f29359c610bc3e7ad12b50483d4eb089c6932a
--- /dev/null
+++ b/tools/telemetry/telemetry/core/platform/tracing_controller.py
@@ -0,0 +1,40 @@
+# 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.
+
+class TracingController(object):
+ def __init__(self, tracing_controller_backend):
+ """Provides control of the tracing systems supported by telemetry."""
+ self._tracing_controller_backend = tracing_controller_backend
+
+ def Start(self, trace_options, category_filter, timeout=10):
+ """Starts tracing.
+
+ trace_options specifies which tracing systems to activate. Category filter
+ allows fine-tuning of the data that are collected by the selected tracing
+ systems.
+
+ Some tracers are process-specific, e.g. chrome tracing, but are not
+ guaranteed to be supported. In order to support tracing of these kinds of
+ tracers, Start will succeed *always*, even if the tracing systems you have
+ requested are not supported.
+
+ If you absolutely require a particular tracer to exist, then check
+ for its support after you have started the process in question. Or, have
+ your code fail gracefully when the data you require is not present in the
+ resulting trace.
+ """
+ self._tracing_controller_backend.Start(
+ trace_options, category_filter, timeout)
+
+ def Stop(self):
+ """Stops tracing and returns a TraceValue."""
+ return self._tracing_controller_backend.Stop()
+
+ @property
+ def is_tracing_running(self):
+ return self._tracing_controller_backend.is_tracing_running
+
+ def IsChromeTracingSupported(self, browser):
+ """Returns whether chrome tracing is supported on the given browser."""
+ return self._tracing_controller_backend.IsChromeTracingSupported(browser)

Powered by Google App Engine
This is Rietveld 408576698