Index: tools/telemetry/telemetry/web_perf/metrics/indexeddb_timeline.py |
diff --git a/tools/telemetry/telemetry/web_perf/metrics/indexeddb_timeline.py b/tools/telemetry/telemetry/web_perf/metrics/indexeddb_timeline.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1dc8382ab185ced08484e1f6d21a4700775b1902 |
--- /dev/null |
+++ b/tools/telemetry/telemetry/web_perf/metrics/indexeddb_timeline.py |
@@ -0,0 +1,80 @@ |
+# Copyright 2015 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. |
+ |
+ |
+from telemetry.web_perf.metrics import timeline_based_metric |
+from telemetry.web_perf.metrics.trace_event_stats import TraceEventStats |
+from telemetry.web_perf.metrics.trace_event_stats import TraceEventStatsInput |
+ |
+ |
+class IndexedDBTimelineMetric(timeline_based_metric.TimelineBasedMetric): |
+ """Metrics for IndexedDB operations. |
+ """ |
+ |
+ def __init__(self): |
+ super(IndexedDBTimelineMetric, self).__init__() |
+ self._stats = TraceEventStats() |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBDatabase::GetOperation', |
+ metric_name='idb-gets', |
+ metric_description='The duration of all "get" ops in IndexedDB', |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBDatabase::PutOperation', |
+ metric_name='idb-puts', |
+ metric_description='The duration of all "put" ops in IndexedDB', |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBFactoryImpl::Open', |
+ metric_name='idb-opens', |
+ metric_description='The duration of all "open" ops in IndexedDB', |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBTransaction::Commit', |
+ metric_name='idb-transaction-commits', |
+ metric_description=('The duration of all "commit" ops of ' + |
+ 'transactions in IndexedDB.'), |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBFactoryImpl::DeleteDatabase', |
+ metric_name='idb-database-deletes', |
+ metric_description=('The duration of all "delete" ops of ' + |
+ 'IndexedDB databases.'), |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBDatabase::OpenCursorOperation', |
+ metric_name='idb-cursor-opens', |
+ metric_description=('The duration of all "open" ops of ' + |
+ 'IndexedDB cursors.'), |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ self._stats.AddInput(TraceEventStatsInput( |
+ event_category='IndexedDB', |
+ event_name='IndexedDBCursor::CursorIterationOperation', |
+ metric_name='idb-cursor-iterations', |
+ metric_description=('The duration of all "iteration" ops of ' + |
+ 'IndexedDB cursors.'), |
+ units='ms', |
+ process_name='Browser')) |
+ |
+ def AddResults(self, model, renderer_process, interactions, results): |
+ self._stats.AddResults(model, renderer_process, interactions, results) |