Skip to content

Commit 3d9d87d

Browse files
paulirishDevtools-frontend LUCI CQ
authored andcommitted
RPP: Ensure enhancedTraceVersion is at top of metadata
Bug: 337909145 Change-Id: Ia224ab4fccde0ba74bc841f15500440c426cf985 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6282447 Auto-Submit: Paul Irish <[email protected]> Commit-Queue: Connor Clark <[email protected]> Reviewed-by: Connor Clark <[email protected]>
1 parent a7f67b6 commit 3d9d87d

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

front_end/panels/timeline/SaveFileFormatter.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ describe('SaveFileFormatter', () => {
3838
const metadata: Trace.Types.File.MetaData = {
3939
source: 'DevTools',
4040
startTime: '1234',
41+
modifications: undefined, // Undefined values are removed within JSON.stringify
4142
networkThrottling: '4',
4243
cpuThrottling: 1,
4344
hardwareConcurrency: 1,
@@ -46,17 +47,20 @@ describe('SaveFileFormatter', () => {
4647
const formatted = Array.from(Timeline.SaveFileFormatter.traceJsonGenerator(events, metadata)).join('');
4748
assertValidJSON(formatted);
4849
assert.strictEqual(formatted, `{"metadata": {
50+
"enhancedTraceVersion": 1,
4951
"source": "DevTools",
5052
"startTime": "1234",
5153
"networkThrottling": "4",
5254
"cpuThrottling": 1,
53-
"hardwareConcurrency": 1,
54-
"enhancedTraceVersion": 1
55+
"hardwareConcurrency": 1
5556
},
5657
"traceEvents": [
5758
{"name":"event_one","tid":0,"pid":0,"ts":0,"cat":"test","ph":"M"},
5859
{"name":"event_two","tid":0,"pid":0,"ts":0,"cat":"test","ph":"M"}
5960
]}\n`);
61+
// Extra check that enhancedTraceVersion is first, to ensure maximumTraceFileLengthToDetermineEnhancedTraces has no problem.
62+
const trace = JSON.parse(formatted);
63+
assert.strictEqual(Object.keys(trace.metadata).at(0), 'enhancedTraceVersion');
6064
});
6165

6266
it('will emit {} for the metadata if none is provided', async () => {

front_end/panels/timeline/SaveFileFormatter.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ export function*
4444
traceEvents: readonly Trace.Types.Events.Event[],
4545
metadata: Readonly<Trace.Types.File.MetaData>|null,
4646
): IterableIterator<string> {
47+
// Ensure that enhancedTraceVersion is placed at the top of metadata. See `maximumTraceFileLengthToDetermineEnhancedTraces`
48+
if (metadata?.enhancedTraceVersion) {
49+
metadata = {
50+
enhancedTraceVersion: metadata.enhancedTraceVersion,
51+
...metadata,
52+
};
53+
}
54+
4755
yield `{"metadata": ${JSON.stringify(metadata || {}, null, 2)}`;
4856
yield ',\n"traceEvents": ';
4957
yield* arrayOfObjectsJsonGenerator(traceEvents);

front_end/panels/timeline/TimelinePanel.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,19 +1360,16 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
13601360
}
13611361
const traceEvents = this.#traceEngineModel.rawTraceEvents(this.#viewMode.traceIndex);
13621362
const metadata = this.#traceEngineModel.metadata(this.#viewMode.traceIndex);
1363-
1364-
if (metadata && addModifications) {
1365-
metadata.modifications = ModificationsManager.activeManager()?.toJSON();
1366-
} else if (metadata) {
1367-
delete metadata.modifications;
1368-
}
1369-
if (metadata && isEnhancedTraces) {
1370-
metadata.enhancedTraceVersion = SDK.EnhancedTracesParser.EnhancedTracesParser.enhancedTraceVersion;
1371-
}
13721363
if (!traceEvents) {
13731364
return;
13741365
}
13751366

1367+
if (metadata) {
1368+
metadata.modifications = addModifications ? ModificationsManager.activeManager()?.toJSON() : undefined;
1369+
metadata.enhancedTraceVersion =
1370+
isEnhancedTraces ? SDK.EnhancedTracesParser.EnhancedTracesParser.enhancedTraceVersion : undefined;
1371+
}
1372+
13761373
const traceStart = Platform.DateUtilities.toISO8601Compact(new Date());
13771374
let fileName: Platform.DevToolsPath.RawPathString;
13781375
if (metadata?.dataOrigin === Trace.Types.File.DataOrigin.CPU_PROFILE) {

0 commit comments

Comments
 (0)