Commit 7d3083d0 authored by Yang Guo's avatar Yang Guo Committed by Commit Bot

DevTools: do not filter out last trace event

Currently we always drop the last trace event due to the
way the time range for a process is computed.

Change-Id: I1c68d73269753ef90b2c95cbb654ffb20af5ef59
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1751189Reviewed-by: default avatarAlexei Filippov <alph@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#688698}
parent 7d2f363e
......@@ -244,8 +244,7 @@ TimelineModel.TimelineModel = class {
data = [];
processData.set(pid, data);
}
const to = i === frame.processes.length - 1 ? (frame.deletedTime || this._maximumRecordTime) :
frame.processes[i + 1].time;
const to = i === frame.processes.length - 1 ? (frame.deletedTime || Infinity) : frame.processes[i + 1].time;
data.push({from: frame.processes[i].time, to: to, main: !frame.parent, url: frame.processes[i].url});
}
}
......
Test timeline page metrics.
Only main frame
Entries:
101 NaN FP
101.2 NaN FCP
101.3 NaN FMP
Markers:
101 1 First Paint
101.2 1.2000000000000028 First Contentful Paint
101.3 1.2999999999999972 First Meaningful Paint
Multiple frames
Entries:
101 NaN FP
101.2 NaN FCP
......
......@@ -3,11 +3,68 @@
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Test timeline page metrics.\n`);
TestRunner.addResult(`Test timeline page metrics.`);
await TestRunner.loadModule('performance_test_runner');
await TestRunner.showPanel('timeline');
const rawTraceEvents = [
function processTraceEvents(title, traceEvents) {
TestRunner.addResult('\n\n' + title);
const timeline = UI.panels.timeline;
timeline._setModel(PerformanceTestRunner.createPerformanceModelWithEvents(traceEvents));
const flamechart = timeline._flameChart._mainFlameChart;
TestRunner.addResult(`Entries:`);
const data = flamechart._timelineData();
for (let i = 0; i < data.entryStartTimes.length; ++i) {
TestRunner.addResult(
`${data.entryStartTimes[i]} ${data.entryTotalTimes[i]} ${flamechart._dataProvider.entryTitle(i)}`);
}
TestRunner.addResult(`\nMarkers:`);
for (const marker of data.markers)
TestRunner.addResult(`${marker._startTime} ${marker._startOffset} ${marker._style.title}`);
}
processTraceEvents("Only main frame", [
{
'args': {'name': 'CrBrowserMain'},
'cat': '__metadata',
'name': 'process_name',
'ph': 'M',
'pid': 17800,
'tid': 123,
'ts': 0
},
{'args':{'name':'Renderer'},'cat':'__metadata','name':'process_name','ph':'M','pid':17850,'tid':230,'ts':0},
{'args':{'name':'CrRendererMain'},'cat':'__metadata','name':'thread_name','ph':'M','pid':17850,'tid':230,'ts':0},
{
'args': {
"data": {
"frameTreeNodeId":550,
"persistentIds":true,
"frames": [
{ "frame":"853DD8D6CA3B85CA78375EF189B779F6", "url":"https://www.example.com/", "name":"main",
"processId":17850 },
]
}
},
'cat': 'disabled-by-default-devtools.timeline',
'name': 'TracingStartedInBrowser',
'ph': 'I',
'pid': 17800,
'tid': 123,
'ts': 100000,
'tts': 606543
},
{"pid":17850,"tid":775,"ts":100500,"ph":"I","cat":"devtools.timeline","name":"FrameStartedLoading","args":{"frame":"853DD8D6CA3B85CA78375EF189B779F6"},"tts":606660},
{"pid":17850,"tid":775,"ts":101000,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstPaint","args":{"frame":"853DD8D6CA3B85CA78375EF189B779F6","data":{}},"tts":606700},
{"pid":17850,"tid":775,"ts":101200,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstContentfulPaint","args":{"frame":"853DD8D6CA3B85CA78375EF189B779F6","data":{}},"tts":606750},
{"pid":17850,"tid":775,"ts":101300,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstMeaningfulPaintCandidate","args":{"frame":"853DD8D6CA3B85CA78375EF189B779F6","data":{}},"tts":606800},
{"pid":17850,"tid":775,"ts":101300,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstMeaningfulPaint","args":{"frame":"853DD8D6CA3B85CA78375EF189B779F6","data":{}},"tts":606800},
]);
processTraceEvents("Multiple frames", [
{
'args': {'name': 'CrBrowserMain'},
'cat': '__metadata',
......@@ -63,23 +120,11 @@
{"pid":17852,"tid":775,"ts":101200,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstPaint","args":{"frame":"5D83B01045AD652BE04EA9A444221149","data":{}},"tts":606700},
{"pid":17852,"tid":775,"ts":101300,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstContentfulPaint","args":{"frame":"5D83B01045AD652BE04EA9A444221149","data":{}},"tts":606750},
{"pid":17852,"tid":775,"ts":101400,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstMeaningfulPaintCandidate","args":{"frame":"5D83B01045AD652BE04EA9A444221149","data":{}},"tts":606800},
{"pid":17852,"tid":775,"ts":101500,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstMeaningfulPaint","args":{"frame":"5D83B01045AD652BE04EA9A444221149","data":{}},"tts":606800}
];
const timeline = UI.panels.timeline;
timeline._setModel(PerformanceTestRunner.createPerformanceModelWithEvents(rawTraceEvents));
const flamechart = timeline._flameChart._mainFlameChart;
TestRunner.addResult(`Entries:`);
const data = flamechart._timelineData();
for (let i = 0; i < data.entryStartTimes.length; ++i) {
TestRunner.addResult(
`${data.entryStartTimes[i]} ${data.entryTotalTimes[i]} ${flamechart._dataProvider.entryTitle(i)}`);
}
{"pid":17852,"tid":775,"ts":101500,"ph":"R","cat":"loading,rail,devtools.timeline","name":"firstMeaningfulPaint","args":{"frame":"5D83B01045AD652BE04EA9A444221149","data":{}},"tts":606800},
TestRunner.addResult(`\nMarkers:`);
for (const marker of data.markers)
TestRunner.addResult(`${marker._startTime} ${marker._startOffset} ${marker._style.title}`);
{"pid":17850,"tid":775,"ts":101600,"ph":"R","cat":"loading,rail,devtools.timeline","name":"largestContentfulPaint::Candidate","args":{"frame":"853DD8D6CA3B85CA78375EF189B779F6","data":{"nodeId":100,"candidateIndex":1,"type":"image","size":1440,"isMainFrame":true}},"tts":606800},
{"pid":17852,"tid":775,"ts":101700,"ph":"R","cat":"loading,rail,devtools.timeline","name":"largestContentfulPaint::Candidate","args":{"frame":"5D83B01045AD652BE04EA9A444221149","data":{"nodeId":120,"candidateIndex":2,"type":"image","size":2000,"isMainFrame":false}},"tts":606800},
]);
TestRunner.completeTest();
......
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