Commit ae2828e7 authored by caseq's avatar caseq Committed by Commit bot

Timeline: get collapsible row groups out of experiment

Also, put rasterizer threads on top of main thread events.

Review URL: https://codereview.chromium.org/1798253003

Cr-Commit-Position: refs/heads/master@{#381649}
parent fcd7f803
Blackboxed url: lib_script.js Blackboxed url: lib_script.js
Main Thread: 400 @ 100 level1: 10 @ 208
level1: 10 @ 208 level2: 10 @ 208
level2: 10 @ 208 level3: 1 @ 209
level3: 1 @ 209 Blackboxed: 6 @ 211
Blackboxed: 6 @ 211 level4user: 1 @ 211
level4user: 1 @ 211 level6user: 3 @ 213
level6user: 3 @ 213 Blackboxed: 3 @ 213
Blackboxed: 3 @ 213 level8user: 3 @ 213
level8user: 3 @ 213 Blackboxed: 3 @ 230
Blackboxed: 3 @ 230 Blackboxed: 3 @ 235
Blackboxed: 3 @ 235
Unblackboxed url: lib_script.js Unblackboxed url: lib_script.js
Main Thread: 400 @ 100 level1: 10 @ 208
level1: 10 @ 208 level2: 10 @ 208
level2: 10 @ 208 level3: 1 @ 209
level3: 1 @ 209 level3blackboxed: 6 @ 211
level3blackboxed: 6 @ 211 level4user: 1 @ 211
level4user: 1 @ 211 level4blackboxed: 3 @ 213
level4blackboxed: 3 @ 213 level5blackboxed: 3 @ 213
level5blackboxed: 3 @ 213 level6user: 3 @ 213
level6user: 3 @ 213 level7blackboxed: 3 @ 213
level7blackboxed: 3 @ 213 level8user: 3 @ 213
level8user: 3 @ 213 level1blackboxed: 3 @ 230
level1blackboxed: 3 @ 230 level1blackboxed: 3 @ 235
level1blackboxed: 3 @ 235 level2blackboxed: 1 @ 236
level2blackboxed: 1 @ 236
...@@ -106,7 +106,6 @@ WebInspector.Main.prototype = { ...@@ -106,7 +106,6 @@ WebInspector.Main.prototype = {
Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI themes"); Runtime.experiments.register("applyCustomStylesheet", "Allow custom UI themes");
Runtime.experiments.register("appBanner", "App banner support", true); Runtime.experiments.register("appBanner", "App banner support", true);
Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox JavaScript frames on Timeline", true); Runtime.experiments.register("blackboxJSFramesOnTimeline", "Blackbox JavaScript frames on Timeline", true);
Runtime.experiments.register("timelineCollapsible", "Collapsbile row groups in Timeline");
Runtime.experiments.register("colorContrastRatio", "Contrast ratio line in color picker", true); Runtime.experiments.register("colorContrastRatio", "Contrast ratio line in color picker", true);
Runtime.experiments.register("cpuThrottling", "CPU throttling", true); Runtime.experiments.register("cpuThrottling", "CPU throttling", true);
Runtime.experiments.register("emptySourceMapAutoStepping", "Empty sourcemap auto-stepping"); Runtime.experiments.register("emptySourceMapAutoStepping", "Empty sourcemap auto-stepping");
......
...@@ -262,7 +262,6 @@ WebInspector.TimelineFlameChartDataProviderBase.prototype = { ...@@ -262,7 +262,6 @@ WebInspector.TimelineFlameChartDataProviderBase.prototype = {
* @enum {symbol} * @enum {symbol}
*/ */
WebInspector.TimelineFlameChartEntryType = { WebInspector.TimelineFlameChartEntryType = {
Header: Symbol("Header"),
Frame: Symbol("Frame"), Frame: Symbol("Frame"),
Event: Symbol("Event"), Event: Symbol("Event"),
InteractionRecord: Symbol("InteractionRecord"), InteractionRecord: Symbol("InteractionRecord"),
...@@ -359,7 +358,7 @@ WebInspector.TimelineFlameChartDataProvider.prototype = { ...@@ -359,7 +358,7 @@ WebInspector.TimelineFlameChartDataProvider.prototype = {
reset: function() reset: function()
{ {
WebInspector.TimelineFlameChartDataProviderBase.prototype.reset.call(this); WebInspector.TimelineFlameChartDataProviderBase.prototype.reset.call(this);
/** @type {!Array<!WebInspector.TracingModel.Event|!WebInspector.TimelineFrame|!WebInspector.TimelineIRModel.Phases|null>} */ /** @type {!Array<!WebInspector.TracingModel.Event|!WebInspector.TimelineFrame|!WebInspector.TimelineIRModel.Phases>} */
this._entryData = []; this._entryData = [];
/** @type {!Array<!WebInspector.TimelineFlameChartEntryType>} */ /** @type {!Array<!WebInspector.TimelineFlameChartEntryType>} */
this._entryTypeByLevel = []; this._entryTypeByLevel = [];
...@@ -387,27 +386,22 @@ WebInspector.TimelineFlameChartDataProvider.prototype = { ...@@ -387,27 +386,22 @@ WebInspector.TimelineFlameChartDataProvider.prototype = {
this._currentLevel = 0; this._currentLevel = 0;
this._appendFrameBars(this._frameModel.frames()); this._appendFrameBars(this._frameModel.frames());
this._appendInteractionRecords(); this._appendInteractionRecords();
this._appendThreadTimelineData(WebInspector.UIString("Main Thread"), this._model.mainThreadEvents(), this._model.mainThreadAsyncEvents(), true);
if (Runtime.experiments.isEnabled("gpuTimeline"))
this._appendGPUEvents();
var threads = this._model.virtualThreads(); var threads = this._model.virtualThreads();
var compositorThreads; var compositorThreads = threads.filter(thread => thread.name.startsWith("CompositorTileWorker"));
var otherThreads; var otherThreads = threads.filter(thread => !thread.name.startsWith("CompositorTileWorker"));
if (Runtime.experiments.isEnabled("timelineCollapsible")) {
compositorThreads = threads.filter(thread => thread.name.startsWith("CompositorTileWorker"));
otherThreads = threads.filter(thread => !thread.name.startsWith("CompositorTileWorker"));
} else {
compositorThreads = [];
otherThreads = threads;
}
otherThreads.forEach(thread => this._appendThreadTimelineData(thread.name, thread.events, thread.asyncEventsByGroup));
if (compositorThreads.length) { if (compositorThreads.length) {
this._appendHeader(WebInspector.UIString("Rasterizer Threads"), this._headerLevel1); this._appendHeader(WebInspector.UIString("Rasterizer Threads"), this._headerLevel1);
for (var i = 0; i < compositorThreads.length; ++i) for (var i = 0; i < compositorThreads.length; ++i)
this._appendSyncEvents(compositorThreads[i].events, WebInspector.UIString("Rasterizer Thread %d", i), this._headerLevel2); this._appendSyncEvents(compositorThreads[i].events, WebInspector.UIString("Rasterizer Thread %d", i), this._headerLevel2);
} }
this._appendThreadTimelineData(WebInspector.UIString("Main Thread"), this._model.mainThreadEvents(), this._model.mainThreadAsyncEvents(), true);
if (Runtime.experiments.isEnabled("gpuTimeline"))
this._appendGPUEvents();
otherThreads.forEach(thread => this._appendThreadTimelineData(thread.name, thread.events, thread.asyncEventsByGroup));
/** /**
* @param {!WebInspector.TimelineFlameChartMarker} a * @param {!WebInspector.TimelineFlameChartMarker} a
* @param {!WebInspector.TimelineFlameChartMarker} b * @param {!WebInspector.TimelineFlameChartMarker} b
...@@ -656,8 +650,6 @@ WebInspector.TimelineFlameChartDataProvider.prototype = { ...@@ -656,8 +650,6 @@ WebInspector.TimelineFlameChartDataProvider.prototype = {
} }
if (type === WebInspector.TimelineFlameChartEntryType.Frame) if (type === WebInspector.TimelineFlameChartEntryType.Frame)
return "white"; return "white";
if (type === WebInspector.TimelineFlameChartEntryType.Header)
return "#aaa";
if (type === WebInspector.TimelineFlameChartEntryType.InteractionRecord) if (type === WebInspector.TimelineFlameChartEntryType.InteractionRecord)
return WebInspector.TimelineUIUtils.interactionPhaseColor(/** @type {!WebInspector.TimelineIRModel.Phases} */ (this._entryData[entryIndex])); return WebInspector.TimelineUIUtils.interactionPhaseColor(/** @type {!WebInspector.TimelineIRModel.Phases} */ (this._entryData[entryIndex]));
return ""; return "";
...@@ -747,24 +739,7 @@ WebInspector.TimelineFlameChartDataProvider.prototype = { ...@@ -747,24 +739,7 @@ WebInspector.TimelineFlameChartDataProvider.prototype = {
*/ */
_appendHeader: function(title, style, expanded) _appendHeader: function(title, style, expanded)
{ {
if (Runtime.experiments.isEnabled("timelineCollapsible")) this._timelineData.groups.push({startLevel: this._currentLevel, name: title, expanded: expanded, style: style});
this._timelineData.groups.push({startLevel: this._currentLevel, name: title, expanded: expanded, style: style});
else
this._appendHeaderRecord(title)
},
/**
* @param {string} title
*/
_appendHeaderRecord: function(title)
{
var index = this._entryData.length;
this._entryIndexToTitle[index] = title;
this._entryData.push(null);
this._entryTypeByLevel[this._currentLevel] = WebInspector.TimelineFlameChartEntryType.Header;
this._timelineData.entryLevels[index] = this._currentLevel++;
this._timelineData.entryTotalTimes[index] = this._timeSpan;
this._timelineData.entryStartTimes[index] = this._minimumBoundary;
}, },
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment