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

Side by Side Diff: tools/telemetry/telemetry/timeline/inspector_importer.py

Issue 441873007: Move timeline and importers to use telemetry.value.TraceValue (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 '''Imports event data obtained from the inspector's timeline.''' 4 '''Imports event data obtained from the inspector's timeline.'''
5 5
6 from telemetry.timeline import importer 6 from telemetry.timeline import importer
7 from telemetry.timeline import inspector_timeline_data
8 import telemetry.timeline.thread as timeline_thread 7 import telemetry.timeline.thread as timeline_thread
9 import telemetry.timeline.slice as tracing_slice 8 import telemetry.timeline.slice as tracing_slice
9 import telemetry.value.trace as trace_value_module
10 10
11 class InspectorTimelineImporter(importer.TimelineImporter): 11 class InspectorTimelineImporter(importer.TimelineImporter):
12 def __init__(self, model, timeline_data): 12 def __init__(self, model, trace_value):
13 super(InspectorTimelineImporter, self).__init__(model, timeline_data) 13 super(InspectorTimelineImporter, self).__init__(
14 model,
15 trace_value,
16 import_order=1)
17 self._events = trace_value.GetEventsFor(
18 trace_value_module.INSPECTOR_TRACE_PART)
14 19
15 @staticmethod 20 @staticmethod
16 def CanImport(timeline_data): 21 def GetSupportedPart():
17 ''' Checks if timeline_data is from the inspector timeline. We assume 22 return trace_value_module.INSPECTOR_TRACE_PART
18 that if the first event is a valid inspector event, we can import the
19 entire list.
20 '''
21 if not isinstance(timeline_data,
22 inspector_timeline_data.InspectorTimelineData):
23 return False
24
25 event_data = timeline_data.EventData()
26
27 if isinstance(event_data, list) and len(event_data):
28 event_datum = event_data[0]
29 return 'startTime' in event_datum and 'type' in event_datum
30 return False
31 23
32 def ImportEvents(self): 24 def ImportEvents(self):
33 render_process = self._model.GetOrCreateProcess(0) 25 render_process = self._model.GetOrCreateProcess(0)
34 for raw_event in self._timeline_data.EventData(): 26 for raw_event in self._events:
35 thread = render_process.GetOrCreateThread(raw_event.get('thread', 0)) 27 thread = render_process.GetOrCreateThread(raw_event.get('thread', 0))
36 InspectorTimelineImporter.AddRawEventToThreadRecursive(thread, raw_event) 28 InspectorTimelineImporter.AddRawEventToThreadRecursive(thread, raw_event)
37 29
38 def FinalizeImport(self): 30 def FinalizeImport(self):
39 pass 31 pass
40 32
41 @staticmethod 33 @staticmethod
42 def AddRawEventToThreadRecursive(thread, raw_inspector_event): 34 def AddRawEventToThreadRecursive(thread, raw_inspector_event):
43 pending_slice = None 35 pending_slice = None
44 if ('startTime' in raw_inspector_event and 36 if ('startTime' in raw_inspector_event and
(...skipping 27 matching lines...) Expand all
72 def RawEventToTimelineEvent(raw_inspector_event): 64 def RawEventToTimelineEvent(raw_inspector_event):
73 """Converts raw_inspector_event to TimelineEvent.""" 65 """Converts raw_inspector_event to TimelineEvent."""
74 thread = timeline_thread.Thread(None, 0) 66 thread = timeline_thread.Thread(None, 0)
75 InspectorTimelineImporter.AddRawEventToThreadRecursive( 67 InspectorTimelineImporter.AddRawEventToThreadRecursive(
76 thread, raw_inspector_event) 68 thread, raw_inspector_event)
77 thread.FinalizeImport() 69 thread.FinalizeImport()
78 assert len(thread.toplevel_slices) <= 1 70 assert len(thread.toplevel_slices) <= 1
79 if len(thread.toplevel_slices) == 0: 71 if len(thread.toplevel_slices) == 0:
80 return None 72 return None
81 return thread.toplevel_slices[0] 73 return thread.toplevel_slices[0]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698