diff --git a/telemetry/telemetry/core/timeline/model.py b/telemetry/telemetry/core/timeline/model.py
index <HASH>..<HASH> 100644
--- a/telemetry/telemetry/core/timeline/model.py
+++ b/telemetry/telemetry/core/timeline/model.py
@@ -43,10 +43,11 @@ class TimelineModel(object):
     if self._frozen:
       raise Exception("Cannot add events once recording is done")
     self._root_events.append(event)
-    self._all_events.extend(
-      event.GetAllChildrenRecursive(include_self=True))
 
   def DidFinishRecording(self):
+    for event in self._root_events:
+      self._all_events.extend(
+        event.GetAllChildrenRecursive(include_self=True))
     self._frozen = True
 
   def ImportTraces(self, traces, shift_world_to_zero=True):
Fixed generation of TimelineModel._all_events.

- Events were added recursively to _all_events during AddEvent for root events
- Asynchronous events that were added later on by the importer were not included.
- Fixed by moving the recursive population of _all_events to DidFinishRecording

BUG=<I>

Review URL: <URL>