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

Unified Diff: third_party/WebKit/Source/devtools/front_end/timeline/TimelineFlameChartDataProvider.js

Issue 2785533002: DevTools: Show event initiator on Flame Chart for selected entries (Closed)
Patch Set: sort experiments Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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');

Powered by Google App Engine
This is Rietveld 408576698