Skip to content

Commit 48b651b

Browse files
and-oliDevtools-frontend LUCI CQ
authored andcommitted
[RPP] Extract sample trace id from event payload
After https://chromium-review.googlesource.com/c/chromium/src/+/6288548 some events contain a sampleTraceId in their payload (under event.args, event.args.data or event.args.beginData). This CL does the frontend version of this change, to ensure the data is extracted for these events and used by the SamplesIntegrator to more accurately build a JS flamechart with this information. Bug: 396355813 Change-Id: I14241d01899b50bb9d05bcfb6c1123ad9a2d5fcf Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6298064 Auto-Submit: Andres Olivares <[email protected]> Commit-Queue: Nancy Li <[email protected]> Reviewed-by: Nancy Li <[email protected]>
1 parent cbc191e commit 48b651b

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

front_end/models/trace/helpers/Trace.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -695,11 +695,12 @@ export function eventContainsTimestamp(event: Types.Events.Event, ts: Types.Timi
695695
}
696696

697697
export function extractSampleTraceId(event: Types.Events.Event): number|null {
698-
if (Types.Events.isConsoleRunTask(event) || Types.Events.isConsoleTimeStamp(event)) {
699-
return event.args?.data?.sampleTraceId || null;
698+
if (!event.args) {
699+
return null;
700700
}
701-
if (Types.Events.isUserTimingMeasure(event)) {
702-
return event.args.sampleTraceId;
701+
if ('beginData' in event.args) {
702+
const beginData = event.args['beginData'] as {sampleTraceId?: number};
703+
return beginData.sampleTraceId ?? null;
703704
}
704-
return null;
705+
return event.args?.sampleTraceId ?? event.args?.data?.sampleTraceId ?? null;
705706
}

front_end/models/trace/types/TraceEvents.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@ export interface Event {
8787

8888
export interface Args {
8989
data?: ArgsData;
90+
sampleTraceId?: number;
9091
stackTrace?: CallFrame[];
9192
}
9293

9394
export interface ArgsData {
9495
stackTrace?: CallFrame[];
96+
sampleTraceId?: number;
9597
url?: string;
9698
navigationId?: string;
9799
frame?: string;
@@ -247,9 +249,7 @@ export interface ParseHTML extends Complete {
247249
name: 'ParseHTML';
248250
args: Args&{
249251
beginData: {
250-
frame: string,
251-
startLine: number,
252-
url: string,
252+
sampleTraceId?: number, frame: string, startLine: number, url: string,
253253
},
254254
endData?: {
255255
endLine: number,
@@ -1885,7 +1885,7 @@ export interface UpdateLayoutTree extends Complete {
18851885
args: Args&{
18861886
elementCount: number,
18871887
beginData?: {
1888-
frame: string,
1888+
sampleTraceId?: number, frame: string,
18891889
stackTrace?: CallFrame[],
18901890
},
18911891
};
@@ -1898,10 +1898,7 @@ export interface Layout extends Complete {
18981898
name: Name.LAYOUT;
18991899
args: Args&{
19001900
beginData: {
1901-
frame: string,
1902-
dirtyObjects: number,
1903-
partialLayout: boolean,
1904-
totalObjects: number,
1901+
sampleTraceId?: number, frame: string, dirtyObjects: number, partialLayout: boolean, totalObjects: number,
19051902
},
19061903
// endData is not reliably populated.
19071904
// Why? TBD. https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/local_frame_view.cc;l=847-851;drc=8b6aaad8027390ce6b32d82d57328e93f34bb8e5

0 commit comments

Comments
 (0)