aboutsummaryrefslogtreecommitdiff
path: root/catapult/telemetry/telemetry/internal/platform/profiler/profiler_finder.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/telemetry/telemetry/internal/platform/profiler/profiler_finder.py')
-rw-r--r--catapult/telemetry/telemetry/internal/platform/profiler/profiler_finder.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/internal/platform/profiler/profiler_finder.py b/catapult/telemetry/telemetry/internal/platform/profiler/profiler_finder.py
new file mode 100644
index 00000000..33c31e56
--- /dev/null
+++ b/catapult/telemetry/telemetry/internal/platform/profiler/profiler_finder.py
@@ -0,0 +1,28 @@
+# Copyright 2013 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 os
+
+from telemetry.core import discover
+from telemetry.internal.platform import profiler
+from telemetry.core import util
+
+
+def _DiscoverProfilers():
+ profiler_dir = os.path.dirname(__file__)
+ return discover.DiscoverClasses(profiler_dir, util.GetTelemetryDir(),
+ profiler.Profiler,
+ index_by_class_name=True).values()
+
+
+def FindProfiler(name):
+ for p in _DiscoverProfilers():
+ if p.name() == name:
+ return p
+ return None
+
+
+def GetAllAvailableProfilers():
+ return sorted([p.name() for p in _DiscoverProfilers()
+ if p.is_supported(browser_type='any')])