| Index: third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
 | 
| diff --git a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChart.js b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
 | 
| similarity index 95%
 | 
| rename from third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChart.js
 | 
| rename to third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
 | 
| index 093d87e3aefc03b9be00ae9eb488c772b7a6122b..871e27f00f0b4322d3c60a42ec68adea257ab234 100644
 | 
| --- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChart.js
 | 
| +++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChartDataProvider.js
 | 
| @@ -709,6 +709,7 @@ Timeline.TimelineFlameChartDataProvider = class {
 | 
|      this._timelineData.entryTotalTimes[index] =
 | 
|          event.duration || Timeline.TimelineFlameChartDataProvider.InstantEventVisibleDurationMs;
 | 
|      this._timelineData.entryStartTimes[index] = event.startTime;
 | 
| +    event[Timeline.TimelineFlameChartDataProvider._indexSymbol] = index;
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -873,6 +874,39 @@ Timeline.TimelineFlameChartDataProvider = class {
 | 
|        return filter.accept(event);
 | 
|      });
 | 
|    }
 | 
| +
 | 
| +  /**
 | 
| +   * @param {number} entryIndex
 | 
| +   * @return {boolean}
 | 
| +   */
 | 
| +  buildFlowForInitiator(entryIndex) {
 | 
| +    if (this._lastInitiatorEntry === entryIndex)
 | 
| +      return false;
 | 
| +    this._lastInitiatorEntry = entryIndex;
 | 
| +    var event = this._entryType(entryIndex) === Timeline.TimelineFlameChartEntryType.Event ?
 | 
| +        /** @type {!SDK.TracingModel.Event} */ (this._entryData[entryIndex]) :
 | 
| +        null;
 | 
| +    var td = this._timelineData;
 | 
| +    var initiator = event && TimelineModel.TimelineData.forEvent(event).initiator();
 | 
| +    if (initiator && !this._isVisible(initiator))
 | 
| +      initiator = null;
 | 
| +    if (td.flowStartTimes.length || initiator) {
 | 
| +      td.flowStartTimes = [];
 | 
| +      td.flowStartLevels = [];
 | 
| +      td.flowEndTimes = [];
 | 
| +      td.flowEndLevels = [];
 | 
| +    }
 | 
| +    if (!initiator)
 | 
| +      return true;
 | 
| +    var initiatorIndex = initiator[Timeline.TimelineFlameChartDataProvider._indexSymbol];
 | 
| +    var eventIndex = event[Timeline.TimelineFlameChartDataProvider._indexSymbol];
 | 
| +    td.flowStartTimes.push(initiator.endTime || initiator.startTime);
 | 
| +    td.flowStartLevels.push(td.entryLevels[initiatorIndex]);
 | 
| +    td.flowEndTimes.push(event.startTime);
 | 
| +    td.flowEndLevels.push(td.entryLevels[eventIndex]);
 | 
| +    return true;
 | 
| +  }
 | 
|  };
 | 
|  
 | 
|  Timeline.TimelineFlameChartDataProvider.InstantEventVisibleDurationMs = 0.001;
 | 
| +Timeline.TimelineFlameChartDataProvider._indexSymbol = Symbol('index');
 | 
| 
 |