@paulirish/trace_engine 0.0.18 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PAUL.readme.md +5 -0
- package/core/platform/StringUtilities.js +3 -3
- package/core/platform/StringUtilities.js.map +1 -1
- package/core/platform/TypedArrayUtilities.d.ts +26 -0
- package/core/platform/TypedArrayUtilities.js +111 -0
- package/core/platform/TypedArrayUtilities.js.map +1 -0
- package/core/platform/platform-tsconfig.json +1 -0
- package/core/platform/platform.d.ts +2 -1
- package/core/platform/platform.js +2 -1
- package/core/platform/platform.js.map +1 -1
- package/generated/protocol.d.ts +63 -1
- package/models/trace/EntriesFilter.d.ts +3 -2
- package/models/trace/EntriesFilter.js +5 -3
- package/models/trace/EntriesFilter.js.map +1 -1
- package/models/trace/LegacyTracingModel.js.map +1 -1
- package/models/trace/Processor.js +7 -1
- package/models/trace/Processor.js.map +1 -1
- package/models/trace/handlers/ExtensionTraceDataHandler.d.ts +13 -0
- package/models/trace/handlers/ExtensionTraceDataHandler.js +93 -0
- package/models/trace/handlers/ExtensionTraceDataHandler.js.map +1 -0
- package/models/trace/handlers/InvalidationsHandler.js +9 -0
- package/models/trace/handlers/InvalidationsHandler.js.map +1 -1
- package/models/trace/handlers/MetaHandler.js +4 -2
- package/models/trace/handlers/MetaHandler.js.map +1 -1
- package/models/trace/handlers/ModelHandlers.d.ts +1 -0
- package/models/trace/handlers/ModelHandlers.js +1 -0
- package/models/trace/handlers/ModelHandlers.js.map +1 -1
- package/models/trace/handlers/PageLoadMetricsHandler.d.ts +0 -7
- package/models/trace/handlers/PageLoadMetricsHandler.js +2 -21
- package/models/trace/handlers/PageLoadMetricsHandler.js.map +1 -1
- package/models/trace/handlers/handlers-tsconfig.json +1 -0
- package/models/trace/helpers/Extensions.d.ts +2 -0
- package/models/trace/helpers/Extensions.js +22 -0
- package/models/trace/helpers/Extensions.js.map +1 -0
- package/models/trace/helpers/Trace.d.ts +4 -3
- package/models/trace/helpers/Trace.js +17 -3
- package/models/trace/helpers/Trace.js.map +1 -1
- package/models/trace/helpers/helpers-tsconfig.json +1 -0
- package/models/trace/helpers/helpers.d.ts +1 -0
- package/models/trace/helpers/helpers.js +1 -0
- package/models/trace/helpers/helpers.js.map +1 -1
- package/models/trace/root-causes/LayoutShift.d.ts +7 -1
- package/models/trace/root-causes/LayoutShift.js +19 -4
- package/models/trace/root-causes/LayoutShift.js.map +1 -1
- package/models/trace/root-causes/RootCauses.d.ts +1 -0
- package/models/trace/root-causes/RootCauses.js +1 -0
- package/models/trace/root-causes/RootCauses.js.map +1 -1
- package/models/trace/types/Extensions.d.ts +62 -0
- package/models/trace/types/Extensions.js +38 -0
- package/models/trace/types/Extensions.js.map +1 -0
- package/models/trace/types/File.d.ts +10 -3
- package/models/trace/types/File.js.map +1 -1
- package/models/trace/types/TraceEvents.d.ts +32 -13
- package/models/trace/types/TraceEvents.js +31 -9
- package/models/trace/types/TraceEvents.js.map +1 -1
- package/models/trace/types/types-tsconfig.json +1 -0
- package/models/trace/types/types.d.ts +1 -0
- package/models/trace/types/types.js +1 -0
- package/models/trace/types/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,23 @@
|
|
|
1
|
+
import { type TraceWindowMicroSeconds } from './Timing.js';
|
|
1
2
|
import { type TraceEventData } from './TraceEvents.js';
|
|
2
3
|
export type TraceFile = {
|
|
3
4
|
traceEvents: readonly TraceEventData[];
|
|
4
5
|
metadata: MetaData;
|
|
5
6
|
};
|
|
7
|
+
export interface Breadcrumb {
|
|
8
|
+
window: TraceWindowMicroSeconds;
|
|
9
|
+
child: Breadcrumb | null;
|
|
10
|
+
}
|
|
6
11
|
export declare const enum DataOrigin {
|
|
7
12
|
CPUProfile = "CPUProfile",
|
|
8
13
|
TraceEvents = "TraceEvents"
|
|
9
14
|
}
|
|
10
15
|
export interface Annotations {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
entriesFilterAnnotations: {
|
|
17
|
+
hiddenEntriesIndexes: number[];
|
|
18
|
+
modifiedEntriesIndexes: number[];
|
|
19
|
+
};
|
|
20
|
+
initialBreadcrumb: Breadcrumb;
|
|
14
21
|
}
|
|
15
22
|
/**
|
|
16
23
|
* Trace metadata that we persist to the file. This will allow us to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../../../../front_end/models/trace/types/File.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B","sourcesContent":["// Copyright 2023 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nimport {type TraceEventData} from './TraceEvents.js';\nexport type TraceFile = {\n traceEvents: readonly TraceEventData[],\n metadata: MetaData,\n};\n\nexport const enum DataOrigin {\n CPUProfile = 'CPUProfile',\n TraceEvents = 'TraceEvents',\n}\nexport interface Annotations {\n
|
|
1
|
+
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../../../../front_end/models/trace/types/File.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B","sourcesContent":["// Copyright 2023 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nimport {type TraceWindowMicroSeconds} from './Timing.js';\nimport {type TraceEventData} from './TraceEvents.js';\n\nexport type TraceFile = {\n traceEvents: readonly TraceEventData[],\n metadata: MetaData,\n};\n\nexport interface Breadcrumb {\n window: TraceWindowMicroSeconds;\n child: Breadcrumb|null;\n}\n\nexport const enum DataOrigin {\n CPUProfile = 'CPUProfile',\n TraceEvents = 'TraceEvents',\n}\nexport interface Annotations {\n entriesFilterAnnotations: {\n hiddenEntriesIndexes: number[],\n modifiedEntriesIndexes: number[],\n };\n initialBreadcrumb: Breadcrumb;\n}\n\n/**\n * Trace metadata that we persist to the file. This will allow us to\n * store specifics for the trace, e.g., which tracks should be visible\n * on load.\n */\nexport interface MetaData {\n source?: 'DevTools';\n startTime?: string;\n networkThrottling?: string;\n cpuThrottling?: number;\n hardwareConcurrency?: number;\n dataOrigin?: DataOrigin;\n annotations?: Annotations;\n}\n\nexport type Contents = TraceFile|TraceEventData[];\n"]}
|
|
@@ -427,6 +427,12 @@ export interface TraceEventFirstPaint extends TraceEventMark {
|
|
|
427
427
|
};
|
|
428
428
|
}
|
|
429
429
|
export type PageLoadEvent = TraceEventFirstContentfulPaint | TraceEventMarkDOMContent | TraceEventInteractiveTime | TraceEventLargestContentfulPaintCandidate | TraceEventLayoutShift | TraceEventFirstPaint | TraceEventMarkLoad | TraceEventNavigationStart;
|
|
430
|
+
export declare const MarkerName: readonly ["MarkDOMContent", "MarkLoad", "firstPaint", "firstContentfulPaint", "largestContentfulPaint::Candidate"];
|
|
431
|
+
interface MakerEvent extends TraceEventData {
|
|
432
|
+
name: typeof MarkerName[number];
|
|
433
|
+
}
|
|
434
|
+
export declare function isTraceEventMarkerEvent(event: TraceEventData): event is MakerEvent;
|
|
435
|
+
export declare function eventIsPageLoadEvent(event: TraceEventData): event is PageLoadEvent;
|
|
430
436
|
export interface TraceEventLargestContentfulPaintCandidate extends TraceEventMark {
|
|
431
437
|
name: 'largestContentfulPaint::Candidate';
|
|
432
438
|
args: TraceEventArgs & {
|
|
@@ -837,7 +843,12 @@ export interface TraceEventPerformanceMeasureBegin extends TraceEventPairableUse
|
|
|
837
843
|
export type TraceEventPerformanceMeasureEnd = TraceEventPairableUserTiming & TraceEventPairableAsyncEnd;
|
|
838
844
|
export type TraceEventPerformanceMeasure = TraceEventPerformanceMeasureBegin | TraceEventPerformanceMeasureEnd;
|
|
839
845
|
export interface TraceEventPerformanceMark extends TraceEventUserTiming {
|
|
840
|
-
|
|
846
|
+
args: TraceEventArgs & {
|
|
847
|
+
data?: TraceEventArgsData & {
|
|
848
|
+
detail?: string;
|
|
849
|
+
};
|
|
850
|
+
};
|
|
851
|
+
ph: Phase.INSTANT | Phase.MARK | Phase.ASYNC_NESTABLE_INSTANT;
|
|
841
852
|
}
|
|
842
853
|
export interface TraceEventConsoleTimeBegin extends TraceEventPairableAsyncBegin {
|
|
843
854
|
cat: 'blink.console';
|
|
@@ -858,17 +869,6 @@ export interface TraceEventTimeStamp extends TraceEventData {
|
|
|
858
869
|
};
|
|
859
870
|
};
|
|
860
871
|
}
|
|
861
|
-
export interface TraceEventExtensionMeasureBegin extends TraceEventPerformanceMeasureBegin {
|
|
862
|
-
name: `devtools-entry-${string}`;
|
|
863
|
-
}
|
|
864
|
-
export interface TraceEventExtensionMeasureEnd extends TraceEventPerformanceMeasureEnd {
|
|
865
|
-
name: `devtools-entry-${string}`;
|
|
866
|
-
}
|
|
867
|
-
export interface TraceEventExtensionMark extends TraceEventPerformanceMark {
|
|
868
|
-
name: `devtools-entry-${string}`;
|
|
869
|
-
ph: Phase.INSTANT | Phase.MARK;
|
|
870
|
-
}
|
|
871
|
-
export type TraceEventExtensionMeasure = TraceEventExtensionMeasureBegin | TraceEventExtensionMeasureEnd;
|
|
872
872
|
/** ChromeFrameReporter args for PipelineReporter event.
|
|
873
873
|
Matching proto: https://source.chromium.org/chromium/chromium/src/+/main:third_party/perfetto/protos/perfetto/trace/track_event/chrome_frame_reporter.proto
|
|
874
874
|
*/
|
|
@@ -958,6 +958,7 @@ export interface TraceEventPipelineReporter extends TraceEventData {
|
|
|
958
958
|
}
|
|
959
959
|
export declare function isTraceEventPipelineReporter(event: TraceEventData): event is TraceEventPipelineReporter;
|
|
960
960
|
export interface SyntheticEventPair<T extends TraceEventPairableAsync = TraceEventPairableAsync> extends TraceEventData {
|
|
961
|
+
name: T['name'];
|
|
961
962
|
cat: T['cat'];
|
|
962
963
|
id?: string;
|
|
963
964
|
id2?: {
|
|
@@ -1117,9 +1118,27 @@ export interface SyntheticInvalidation extends TraceEventInstant {
|
|
|
1117
1118
|
stackTrace?: TraceEventCallFrame[];
|
|
1118
1119
|
}
|
|
1119
1120
|
export declare function isSyntheticInvalidation(event: TraceEventData): event is SyntheticInvalidation;
|
|
1121
|
+
export interface SelectorTiming {
|
|
1122
|
+
'elapsed (us)': number;
|
|
1123
|
+
'fast_reject_count': number;
|
|
1124
|
+
'match_attempts': number;
|
|
1125
|
+
'selector': string;
|
|
1126
|
+
'style_sheet_id': string;
|
|
1127
|
+
}
|
|
1128
|
+
export interface SelectorStats {
|
|
1129
|
+
selector_timings: SelectorTiming[];
|
|
1130
|
+
}
|
|
1131
|
+
export interface TraceEventStyleRecalcSelectorStats extends TraceEventComplete {
|
|
1132
|
+
name: KnownEventName.SelectorStats;
|
|
1133
|
+
args: TraceEventArgs & {
|
|
1134
|
+
selector_stats?: SelectorStats;
|
|
1135
|
+
};
|
|
1136
|
+
}
|
|
1137
|
+
export declare function isStyleRecalcSelectorStats(event: TraceEventData): event is TraceEventStyleRecalcSelectorStats;
|
|
1120
1138
|
export interface TraceEventUpdateLayoutTree extends TraceEventComplete {
|
|
1121
1139
|
name: KnownEventName.UpdateLayoutTree;
|
|
1122
1140
|
args: TraceEventArgs & {
|
|
1141
|
+
selector_stats?: SelectorStats;
|
|
1123
1142
|
elementCount: number;
|
|
1124
1143
|
beginData?: {
|
|
1125
1144
|
frame: string;
|
|
@@ -1516,7 +1535,6 @@ export declare const enum KnownEventName {
|
|
|
1516
1535
|
V8Execute = "V8.Execute",
|
|
1517
1536
|
GC = "GCEvent",
|
|
1518
1537
|
DOMGC = "BlinkGC.AtomicPhase",
|
|
1519
|
-
IncrementalGCMarking = "V8.GCIncrementalMarking",
|
|
1520
1538
|
MajorGC = "MajorGC",
|
|
1521
1539
|
MinorGC = "MinorGC",
|
|
1522
1540
|
GCCollectGarbage = "BlinkGC.AtomicPhase",
|
|
@@ -1536,6 +1554,7 @@ export declare const enum KnownEventName {
|
|
|
1536
1554
|
ScheduleStyleInvalidationTracking = "ScheduleStyleInvalidationTracking",
|
|
1537
1555
|
StyleRecalcInvalidationTracking = "StyleRecalcInvalidationTracking",
|
|
1538
1556
|
StyleInvalidatorInvalidationTracking = "StyleInvalidatorInvalidationTracking",
|
|
1557
|
+
SelectorStats = "SelectorStats",
|
|
1539
1558
|
ScrollLayer = "ScrollLayer",
|
|
1540
1559
|
UpdateLayer = "UpdateLayer",
|
|
1541
1560
|
PaintSetup = "PaintSetup",
|
|
@@ -21,6 +21,25 @@ export function isTraceEventAuctionWorkletDoneWithProcess(event) {
|
|
|
21
21
|
export function isTraceEventScreenshot(event) {
|
|
22
22
|
return event.name === "Screenshot" /* KnownEventName.Screenshot */;
|
|
23
23
|
}
|
|
24
|
+
const markerTypeGuards = [
|
|
25
|
+
isTraceEventMarkDOMContent,
|
|
26
|
+
isTraceEventMarkLoad,
|
|
27
|
+
isTraceEventFirstPaint,
|
|
28
|
+
isTraceEventFirstContentfulPaint,
|
|
29
|
+
isTraceEventLargestContentfulPaintCandidate,
|
|
30
|
+
isTraceEventNavigationStart,
|
|
31
|
+
];
|
|
32
|
+
export const MarkerName = ['MarkDOMContent', 'MarkLoad', 'firstPaint', 'firstContentfulPaint', 'largestContentfulPaint::Candidate'];
|
|
33
|
+
export function isTraceEventMarkerEvent(event) {
|
|
34
|
+
return markerTypeGuards.some(fn => fn(event));
|
|
35
|
+
}
|
|
36
|
+
const pageLoadEventTypeGuards = [
|
|
37
|
+
...markerTypeGuards,
|
|
38
|
+
isTraceEventInteractiveTime,
|
|
39
|
+
];
|
|
40
|
+
export function eventIsPageLoadEvent(event) {
|
|
41
|
+
return pageLoadEventTypeGuards.some(fn => fn(event));
|
|
42
|
+
}
|
|
24
43
|
export function isTraceEventTracingSessionIdForWorker(event) {
|
|
25
44
|
return event.name === 'TracingSessionIdForWorker';
|
|
26
45
|
}
|
|
@@ -85,6 +104,9 @@ export function isTraceEventActivateLayerTree(event) {
|
|
|
85
104
|
export function isSyntheticInvalidation(event) {
|
|
86
105
|
return event.name === 'SyntheticInvalidation';
|
|
87
106
|
}
|
|
107
|
+
export function isStyleRecalcSelectorStats(event) {
|
|
108
|
+
return event.name === "SelectorStats" /* KnownEventName.SelectorStats */;
|
|
109
|
+
}
|
|
88
110
|
export function isTraceEventUpdateLayoutTree(event) {
|
|
89
111
|
return event.name === "UpdateLayoutTree" /* KnownEventName.UpdateLayoutTree */;
|
|
90
112
|
}
|
|
@@ -300,16 +322,16 @@ export function isTraceEventTimeStamp(traceEventData) {
|
|
|
300
322
|
export function isTraceEventParseHTML(traceEventData) {
|
|
301
323
|
return traceEventData.name === 'ParseHTML';
|
|
302
324
|
}
|
|
325
|
+
const asyncPhases = new Set([
|
|
326
|
+
"b" /* Phase.ASYNC_NESTABLE_START */,
|
|
327
|
+
"n" /* Phase.ASYNC_NESTABLE_INSTANT */,
|
|
328
|
+
"e" /* Phase.ASYNC_NESTABLE_END */,
|
|
329
|
+
"T" /* Phase.ASYNC_STEP_INTO */,
|
|
330
|
+
"S" /* Phase.ASYNC_BEGIN */,
|
|
331
|
+
"F" /* Phase.ASYNC_END */,
|
|
332
|
+
"p" /* Phase.ASYNC_STEP_PAST */,
|
|
333
|
+
]);
|
|
303
334
|
export function isTraceEventAsyncPhase(traceEventData) {
|
|
304
|
-
const asyncPhases = new Set([
|
|
305
|
-
"b" /* Phase.ASYNC_NESTABLE_START */,
|
|
306
|
-
"n" /* Phase.ASYNC_NESTABLE_INSTANT */,
|
|
307
|
-
"e" /* Phase.ASYNC_NESTABLE_END */,
|
|
308
|
-
"T" /* Phase.ASYNC_STEP_INTO */,
|
|
309
|
-
"S" /* Phase.ASYNC_BEGIN */,
|
|
310
|
-
"F" /* Phase.ASYNC_END */,
|
|
311
|
-
"p" /* Phase.ASYNC_STEP_PAST */,
|
|
312
|
-
]);
|
|
313
335
|
return asyncPhases.has(traceEventData.ph);
|
|
314
336
|
}
|
|
315
337
|
export function isSyntheticLayoutShift(traceEventData) {
|