Index: tools/telemetry/telemetry/core/timeline/trace_event_importer.py |
diff --git a/tools/telemetry/telemetry/core/timeline/trace_event_importer.py b/tools/telemetry/telemetry/core/timeline/trace_event_importer.py |
index 207f157d38a0d904f374a6b7f01d53da8e7543b1..5a31bf93e522768a00b989bd0d3aea2b2e8627dd 100644 |
--- a/tools/telemetry/telemetry/core/timeline/trace_event_importer.py |
+++ b/tools/telemetry/telemetry/core/timeline/trace_event_importer.py |
@@ -16,6 +16,7 @@ from telemetry.core.timeline import importer |
import telemetry.core.timeline.async_slice as tracing_async_slice |
import telemetry.core.timeline.flow_event as tracing_flow_event |
+ |
class TraceEventTimelineImporter(importer.TimelineImporter): |
def __init__(self, model, timeline_data): |
super(TraceEventTimelineImporter, self).__init__( |
@@ -58,7 +59,7 @@ class TraceEventTimelineImporter(importer.TimelineImporter): |
# Any other fields in the container should be treated as metadata. |
self._model.metadata.append({ |
'name' : field_name, |
- 'value' : container['field_name']}) |
+ 'value' : container[field_name]}) |
@staticmethod |
def CanImport(timeline_data): |
@@ -275,10 +276,10 @@ class TraceEventTimelineImporter(importer.TimelineImporter): |
self._model.UpdateBounds() |
self._CreateAsyncSlices() |
self._CreateFlowSlices() |
+ self._SetBrowserProcess() |
self._CreateExplicitObjects() |
self._CreateImplicitObjects() |
- |
- self._timeline_data.AugmentTimelineModel(self._model) |
+ self._CreateTabIdsToThreadsMap() |
def _CreateAsyncSlices(self): |
if len(self._all_async_events) == 0: |
@@ -445,3 +446,22 @@ class TraceEventTimelineImporter(importer.TimelineImporter): |
else: |
# Make this event the next start event in this flow. |
flow_id_to_event[event['id']] = flow_event |
+ |
+ def _SetBrowserProcess(self): |
+ for thread in self._model.GetAllThreads(): |
+ if thread.name == 'CrBrowserMain': |
+ self._model.browser_process = thread.parent |
+ |
+ def _CreateTabIdsToThreadsMap(self): |
+ tab_ids_list = [] |
+ for metadata in self._model.metadata: |
+ if metadata['name'] == 'tabIds': |
+ tab_ids_list = metadata['value'] |
+ break |
+ for tab_id in tab_ids_list: |
+ timeline_markers = self._model.FindTimelineMarkers(tab_id) |
+ assert(len(timeline_markers) == 1) |
+ assert(timeline_markers[0].start_thread == |
+ timeline_markers[0].end_thread) |
+ self._model.AddMappingFromTabIdToRendererThread( |
+ tab_id, timeline_markers[0].start_thread) |