| Index: tools/telemetry/telemetry/timeline/surface_flinger_importer.py
|
| diff --git a/tools/telemetry/telemetry/timeline/surface_flinger_importer.py b/tools/telemetry/telemetry/timeline/surface_flinger_importer.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8995c8e82ad027d49e425ba6f3a2c30b443d9af4
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/timeline/surface_flinger_importer.py
|
| @@ -0,0 +1,39 @@
|
| +# 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.
|
| +
|
| +from telemetry.timeline import importer
|
| +from telemetry.timeline import surface_flinger_timeline_data
|
| +
|
| +class SurfaceFlingerTimelineImporter(importer.TimelineImporter):
|
| + def __init__(self, model, timeline_data):
|
| + super(SurfaceFlingerTimelineImporter, self).__init__(
|
| + model, timeline_data, import_priority=2)
|
| + self._events = timeline_data.EventData()
|
| + self._surface_flinger_process = None
|
| +
|
| + @staticmethod
|
| + def CanImport(timeline_data):
|
| + if isinstance(timeline_data,
|
| + surface_flinger_timeline_data.SurfaceFlingerTimelineData):
|
| + return True
|
| +
|
| + return False
|
| +
|
| + def ImportEvents(self):
|
| + for event in self._events:
|
| + self._surface_flinger_process = self._model.GetOrCreateProcess(
|
| + event['pid'])
|
| + self._surface_flinger_process.name = 'SurfaceFlinger'
|
| + thread = self._surface_flinger_process.GetOrCreateThread(event['tid'])
|
| + thread.BeginSlice(event['cat'],
|
| + event['name'],
|
| + event['ts'],
|
| + args=event.get('args'))
|
| + thread.EndSlice(event['ts'])
|
| +
|
| + def FinalizeImport(self):
|
| + '''Called by the Model after all other importers have imported their
|
| + events.'''
|
| + self._model.UpdateBounds()
|
| + self._model.surface_flinger_process = self._surface_flinger_process
|
|
|