@paulirish/trace_engine 0.0.11 → 0.0.12
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/README.md +1 -1
- package/package.json +1 -1
- package/core/platform/devtools_entrypoint-bundle-tsconfig-tsconfig.json +0 -40
- package/core/platform/platform.js.compressed +0 -0
- package/core/platform/platform.js.hash +0 -1
- package/core/platform/platform.prebundle.d.ts +0 -15
- package/core/platform/platform.prebundle.js +0 -50
- package/core/platform/platform.prebundle.js.map +0 -1
- package/core/platform/platform.prebundle.ts +0 -64
- package/models/trace/SDKServices.js +0 -104
- package/models/trace/SDKServices.js.map +0 -7
- package/models/trace/TraceProcessor.js +0 -133
- package/models/trace/TraceProcessor.js.map +0 -7
- package/models/trace/TreeManipulator.js +0 -85
- package/models/trace/TreeManipulator.js.map +0 -7
- package/models/trace/devtools_entrypoint-legacy-typescript-tsconfig.json +0 -43
- package/models/trace/frames/TimelineFrameModel.js +0 -392
- package/models/trace/frames/TimelineFrameModel.js.map +0 -7
- package/models/trace/frames/bundle-tsconfig.json +0 -1
- package/models/trace/frames/devtools_entrypoint-bundle-typescript-tsconfig.json +0 -43
- package/models/trace/frames/frames-tsconfig.json +0 -58
- package/models/trace/frames/frames.js +0 -5
- package/models/trace/frames/frames.js.map +0 -7
- package/models/trace/handlers/Migration.js +0 -27
- package/models/trace/handlers/Migration.js.map +0 -7
- package/models/trace/handlers/UberFramesHandler.js +0 -293
- package/models/trace/handlers/UberFramesHandler.js.map +0 -7
- package/models/trace/legacy-tsconfig.json +0 -1
- package/models/trace/sdk_services/DOMNodeLookup.js +0 -41
- package/models/trace/sdk_services/DOMNodeLookup.js.map +0 -7
- package/models/trace/sdk_services/LayoutShifts.js +0 -68
- package/models/trace/sdk_services/LayoutShifts.js.map +0 -7
- package/models/trace/sdk_services/bundle-tsconfig.json +0 -1
- package/models/trace/sdk_services/devtools_entrypoint-bundle-typescript-tsconfig.json +0 -41
- package/models/trace/sdk_services/sdk_services-tsconfig.json +0 -57
- package/models/trace/sdk_services/sdk_services.js +0 -7
- package/models/trace/sdk_services/sdk_services.js.map +0 -7
- package/models/trace/trace-legacy.js +0 -16
- package/models/trace/trace-legacy.js.map +0 -7
- package/models/trace/worker/Processor.js +0 -143
- package/models/trace/worker/Processor.js.map +0 -7
- package/models/trace/worker/Types.js +0 -1
- package/models/trace/worker/Types.js.map +0 -7
- package/models/trace/worker/bundle-tsconfig.json +0 -1
- package/models/trace/worker/devtools_entrypoint-bundle-typescript-tsconfig.json +0 -41
- package/models/trace/worker/devtools_entrypoint-worker_entrypoint-typescript-tsconfig.json +0 -41
- package/models/trace/worker/processor-tsconfig.json +0 -45
- package/models/trace/worker/worker.js +0 -7
- package/models/trace/worker/worker.js.map +0 -7
- package/models/trace/worker/worker_entrypoint-tsconfig.json +0 -1
- package/models/trace/worker/worker_entrypoint.js +0 -36
- package/models/trace/worker/worker_entrypoint.js.map +0 -7
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import * as Handlers from "../handlers/handlers.js";
|
|
2
|
-
var Status = /* @__PURE__ */ ((Status2) => {
|
|
3
|
-
Status2["IDLE"] = "IDLE";
|
|
4
|
-
Status2["PARSING"] = "PARSING";
|
|
5
|
-
Status2["FINISHED_PARSING"] = "FINISHED_PARSING";
|
|
6
|
-
Status2["ERRORED_WHILE_PARSING"] = "ERRORED_WHILE_PARSING";
|
|
7
|
-
return Status2;
|
|
8
|
-
})(Status || {});
|
|
9
|
-
export class TraceParseProgressEvent extends Event {
|
|
10
|
-
constructor(data, init = { bubbles: true }) {
|
|
11
|
-
super(TraceParseProgressEvent.eventName, init);
|
|
12
|
-
this.data = data;
|
|
13
|
-
}
|
|
14
|
-
static eventName = "traceparse";
|
|
15
|
-
}
|
|
16
|
-
export class TraceProcessor extends EventTarget {
|
|
17
|
-
#traceHandlers;
|
|
18
|
-
#pauseDuration;
|
|
19
|
-
#pauseFrequencyMs;
|
|
20
|
-
#status = "IDLE" /* IDLE */;
|
|
21
|
-
static create() {
|
|
22
|
-
return new TraceProcessor(Handlers.ModelHandlers);
|
|
23
|
-
}
|
|
24
|
-
constructor(traceHandlers, { pauseDuration = 20, pauseFrequencyMs = 100 } = {}) {
|
|
25
|
-
super();
|
|
26
|
-
this.#traceHandlers = traceHandlers;
|
|
27
|
-
this.#pauseDuration = pauseDuration;
|
|
28
|
-
this.#pauseFrequencyMs = pauseFrequencyMs;
|
|
29
|
-
}
|
|
30
|
-
reset() {
|
|
31
|
-
if (this.#status === "PARSING" /* PARSING */) {
|
|
32
|
-
throw new Error("Trace processor can't reset while parsing.");
|
|
33
|
-
}
|
|
34
|
-
const handlers = Object.values(this.#traceHandlers);
|
|
35
|
-
for (const handler of handlers) {
|
|
36
|
-
handler.reset();
|
|
37
|
-
}
|
|
38
|
-
this.#status = "IDLE" /* IDLE */;
|
|
39
|
-
}
|
|
40
|
-
async parse(traceEvents, freshRecording = false) {
|
|
41
|
-
if (this.#status !== "IDLE" /* IDLE */) {
|
|
42
|
-
throw new Error(`Trace processor can't start parsing when not idle. Current state: ${this.#status}`);
|
|
43
|
-
}
|
|
44
|
-
try {
|
|
45
|
-
this.#status = "PARSING" /* PARSING */;
|
|
46
|
-
await this.#parse(traceEvents, freshRecording);
|
|
47
|
-
this.#status = "FINISHED_PARSING" /* FINISHED_PARSING */;
|
|
48
|
-
} catch (e) {
|
|
49
|
-
this.#status = "ERRORED_WHILE_PARSING" /* ERRORED_WHILE_PARSING */;
|
|
50
|
-
throw e;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async #parse(traceEvents, freshRecording) {
|
|
54
|
-
const traceEventIterator = new TraceEventIterator(traceEvents, this.#pauseDuration, this.#pauseFrequencyMs);
|
|
55
|
-
const sortedHandlers = [...sortHandlers(this.#traceHandlers).values()];
|
|
56
|
-
for (const handler of sortedHandlers) {
|
|
57
|
-
handler.reset();
|
|
58
|
-
}
|
|
59
|
-
for (const handler of sortedHandlers) {
|
|
60
|
-
handler.initialize?.(freshRecording);
|
|
61
|
-
}
|
|
62
|
-
for await (const item of traceEventIterator) {
|
|
63
|
-
if (item.kind === IteratorItemType.STATUS_UPDATE) {
|
|
64
|
-
this.dispatchEvent(new TraceParseProgressEvent(item.data));
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
for (const handler of sortedHandlers) {
|
|
68
|
-
handler.handleEvent(item.data);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
for (const handler of sortedHandlers) {
|
|
72
|
-
await handler.finalize?.();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
get data() {
|
|
76
|
-
if (this.#status !== "FINISHED_PARSING" /* FINISHED_PARSING */) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
const data = {};
|
|
80
|
-
for (const [name, handler] of Object.entries(this.#traceHandlers)) {
|
|
81
|
-
Object.assign(data, { [name]: handler.data() });
|
|
82
|
-
}
|
|
83
|
-
return data;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
export function sortHandlers(traceHandlers) {
|
|
87
|
-
const sortedMap = /* @__PURE__ */ new Map();
|
|
88
|
-
const visited = /* @__PURE__ */ new Set();
|
|
89
|
-
const visitHandler = (handlerName) => {
|
|
90
|
-
if (sortedMap.has(handlerName)) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (visited.has(handlerName)) {
|
|
94
|
-
let stackPath = "";
|
|
95
|
-
for (const handler2 of visited) {
|
|
96
|
-
if (stackPath || handler2 === handlerName) {
|
|
97
|
-
stackPath += `${handler2}->`;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
stackPath += handlerName;
|
|
101
|
-
throw new Error(`Found dependency cycle in trace event handlers: ${stackPath}`);
|
|
102
|
-
}
|
|
103
|
-
visited.add(handlerName);
|
|
104
|
-
const handler = traceHandlers[handlerName];
|
|
105
|
-
if (!handler) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const deps = handler.deps?.();
|
|
109
|
-
if (deps) {
|
|
110
|
-
deps.forEach(visitHandler);
|
|
111
|
-
}
|
|
112
|
-
sortedMap.set(handlerName, handler);
|
|
113
|
-
};
|
|
114
|
-
for (const handlerName of Object.keys(traceHandlers)) {
|
|
115
|
-
visitHandler(handlerName);
|
|
116
|
-
}
|
|
117
|
-
return sortedMap;
|
|
118
|
-
}
|
|
119
|
-
var IteratorItemType = /* @__PURE__ */ ((IteratorItemType2) => {
|
|
120
|
-
IteratorItemType2[IteratorItemType2["TRACE_EVENT"] = 1] = "TRACE_EVENT";
|
|
121
|
-
IteratorItemType2[IteratorItemType2["STATUS_UPDATE"] = 2] = "STATUS_UPDATE";
|
|
122
|
-
return IteratorItemType2;
|
|
123
|
-
})(IteratorItemType || {});
|
|
124
|
-
class TraceEventIterator {
|
|
125
|
-
constructor(traceEvents, pauseDuration, pauseFrequencyMs) {
|
|
126
|
-
this.traceEvents = traceEvents;
|
|
127
|
-
this.pauseDuration = pauseDuration;
|
|
128
|
-
this.pauseFrequencyMs = pauseFrequencyMs;
|
|
129
|
-
this.#time = performance.now();
|
|
130
|
-
}
|
|
131
|
-
#time;
|
|
132
|
-
async *[Symbol.asyncIterator]() {
|
|
133
|
-
for (let i = 0, length = this.traceEvents.length; i < length; i++) {
|
|
134
|
-
if (performance.now() - this.#time > this.pauseFrequencyMs) {
|
|
135
|
-
this.#time = performance.now();
|
|
136
|
-
yield { kind: 2 /* STATUS_UPDATE */, data: { index: i, total: length } };
|
|
137
|
-
await new Promise((resolve) => setTimeout(resolve, this.pauseDuration));
|
|
138
|
-
}
|
|
139
|
-
yield { kind: 1 /* TRACE_EVENT */, data: this.traceEvents[i] };
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=Processor.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../front_end/models/trace/worker/Processor.ts"],
|
|
4
|
-
"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.\nimport type * as Types from '../types/types.js';\nimport * as Handlers from '../handlers/handlers.js';\n\nconst enum Status {\n IDLE = 'IDLE',\n PARSING = 'PARSING',\n FINISHED_PARSING = 'FINISHED_PARSING',\n ERRORED_WHILE_PARSING = 'ERRORED_WHILE_PARSING',\n}\n\nexport class TraceParseProgressEvent extends Event {\n static readonly eventName = 'traceparse';\n constructor(public data: TraceParseEventProgressData, init: EventInit = {bubbles: true}) {\n super(TraceParseProgressEvent.eventName, init);\n }\n}\n\nexport type TraceParseEventProgressData = {\n index: number,\n total: number,\n};\n\nexport class TraceProcessor<ModelHandlers extends {[key: string]: Handlers.Types.TraceEventHandler}> extends\n EventTarget {\n readonly #traceHandlers: {[key: string]: Handlers.Types.TraceEventHandler};\n #pauseDuration: number;\n #pauseFrequencyMs: number;\n #status = Status.IDLE;\n\n static create(): TraceProcessor<typeof Handlers.ModelHandlers> {\n return new TraceProcessor(Handlers.ModelHandlers);\n }\n\n private constructor(traceHandlers: ModelHandlers, {pauseDuration = 20, pauseFrequencyMs = 100} = {}) {\n super();\n\n this.#traceHandlers = traceHandlers;\n this.#pauseDuration = pauseDuration;\n this.#pauseFrequencyMs = pauseFrequencyMs;\n }\n\n reset(): void {\n if (this.#status === Status.PARSING) {\n throw new Error('Trace processor can\\'t reset while parsing.');\n }\n\n const handlers = Object.values(this.#traceHandlers);\n for (const handler of handlers) {\n handler.reset();\n }\n\n this.#status = Status.IDLE;\n }\n\n async parse(traceEvents: readonly Types.TraceEvents.TraceEventData[], freshRecording = false): Promise<void> {\n if (this.#status !== Status.IDLE) {\n throw new Error(`Trace processor can't start parsing when not idle. Current state: ${this.#status}`);\n }\n try {\n this.#status = Status.PARSING;\n await this.#parse(traceEvents, freshRecording);\n this.#status = Status.FINISHED_PARSING;\n } catch (e) {\n this.#status = Status.ERRORED_WHILE_PARSING;\n throw e;\n }\n }\n\n async #parse(traceEvents: readonly Types.TraceEvents.TraceEventData[], freshRecording: boolean): Promise<void> {\n // This iterator steps through all events, periodically yielding back to the\n // main thread to avoid blocking execution. It uses `dispatchEvent` to\n // provide status update events, and other various bits of config like the\n // pause duration and frequency.\n const traceEventIterator = new TraceEventIterator(traceEvents, this.#pauseDuration, this.#pauseFrequencyMs);\n\n // Convert to array so that we are able to iterate all handlers multiple times.\n const sortedHandlers = [...sortHandlers(this.#traceHandlers).values()];\n // Reset.\n for (const handler of sortedHandlers) {\n handler.reset();\n }\n\n // Initialize.\n for (const handler of sortedHandlers) {\n handler.initialize?.(freshRecording);\n }\n\n // Handle each event.\n for await (const item of traceEventIterator) {\n if (item.kind === IteratorItemType.STATUS_UPDATE) {\n this.dispatchEvent(new TraceParseProgressEvent(item.data));\n continue;\n }\n for (const handler of sortedHandlers) {\n handler.handleEvent(item.data);\n }\n }\n\n // Finalize.\n for (const handler of sortedHandlers) {\n await handler.finalize?.();\n }\n }\n\n get data(): Handlers.Types.HandlerData<ModelHandlers>|null {\n if (this.#status !== Status.FINISHED_PARSING) {\n return null;\n }\n\n const data = {};\n for (const [name, handler] of Object.entries(this.#traceHandlers)) {\n Object.assign(data, {[name]: handler.data()});\n }\n\n return data as Handlers.Types.HandlerData<ModelHandlers>;\n }\n}\n\n/**\n * Some Handlers need data provided by others. Dependencies of a handler handler are\n * declared in the `deps` field.\n * @returns A map from trace event handler name to trace event hander whose entries\n * iterate in such a way that each handler is visited after its dependencies.\n */\nexport function sortHandlers(\n traceHandlers: Partial<{[key in Handlers.Types.TraceEventHandlerName]: Handlers.Types.TraceEventHandler}>):\n Map<Handlers.Types.TraceEventHandlerName, Handlers.Types.TraceEventHandler> {\n const sortedMap = new Map<Handlers.Types.TraceEventHandlerName, Handlers.Types.TraceEventHandler>();\n const visited = new Set<Handlers.Types.TraceEventHandlerName>();\n const visitHandler = (handlerName: Handlers.Types.TraceEventHandlerName): void => {\n if (sortedMap.has(handlerName)) {\n return;\n }\n if (visited.has(handlerName)) {\n let stackPath = '';\n for (const handler of visited) {\n if (stackPath || handler === handlerName) {\n stackPath += `${handler}->`;\n }\n }\n stackPath += handlerName;\n throw new Error(`Found dependency cycle in trace event handlers: ${stackPath}`);\n }\n visited.add(handlerName);\n const handler = traceHandlers[handlerName];\n if (!handler) {\n return;\n }\n const deps = handler.deps?.();\n if (deps) {\n deps.forEach(visitHandler);\n }\n sortedMap.set(handlerName, handler);\n };\n\n for (const handlerName of Object.keys(traceHandlers)) {\n visitHandler(handlerName as Handlers.Types.TraceEventHandlerName);\n }\n return sortedMap;\n}\n\nconst enum IteratorItemType {\n TRACE_EVENT = 1,\n STATUS_UPDATE = 2,\n}\n\ntype IteratorItem = IteratorTraceEventItem|IteratorStatusUpdateItem;\n\ntype IteratorTraceEventItem = {\n kind: IteratorItemType.TRACE_EVENT,\n data: Types.TraceEvents.TraceEventData,\n};\n\ntype IteratorStatusUpdateItem = {\n kind: IteratorItemType.STATUS_UPDATE,\n data: TraceParseEventProgressData,\n};\n\nclass TraceEventIterator {\n #time: number;\n\n constructor(\n private traceEvents: readonly Types.TraceEvents.TraceEventData[], private pauseDuration: number,\n private pauseFrequencyMs: number) {\n this.#time = performance.now();\n }\n\n async * [Symbol.asyncIterator](): AsyncGenerator<IteratorItem, void, void> {\n for (let i = 0, length = this.traceEvents.length; i < length; i++) {\n // Every so often we take a break just to render.\n if (performance.now() - this.#time > this.pauseFrequencyMs) {\n this.#time = performance.now();\n // Take the opportunity to provide status update events.\n yield {kind: IteratorItemType.STATUS_UPDATE, data: {index: i, total: length}};\n // Wait for rendering before resuming.\n await new Promise(resolve => setTimeout(resolve, this.pauseDuration));\n }\n\n yield {kind: IteratorItemType.TRACE_EVENT, data: this.traceEvents[i]};\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=Types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"compilerOptions":{"composite":true,"outDir":".","baseUrl":".","rootDir":"../../../../../../../front_end/models/trace/worker"},"files":["../../../../../../../front_end/models/trace/worker/worker.ts"],"references":[{"path":"./processor-tsconfig.json"}]}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowJs": true,
|
|
4
|
-
"checkJs": true,
|
|
5
|
-
"composite": true,
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"experimentalDecorators": true,
|
|
8
|
-
"forceConsistentCasingInFileNames": true,
|
|
9
|
-
"inlineSources": true,
|
|
10
|
-
"lib": [
|
|
11
|
-
"esnext",
|
|
12
|
-
"dom",
|
|
13
|
-
"dom.iterable"
|
|
14
|
-
],
|
|
15
|
-
"module": "esnext",
|
|
16
|
-
"noEmitOnError": true,
|
|
17
|
-
"noFallthroughCasesInSwitch": true,
|
|
18
|
-
"noImplicitReturns": true,
|
|
19
|
-
"outDir": ".",
|
|
20
|
-
"rootDir": "../../../../../../../front_end/models/trace/worker",
|
|
21
|
-
"skipLibCheck": true,
|
|
22
|
-
"sourceMap": true,
|
|
23
|
-
"strict": true,
|
|
24
|
-
"target": "esnext",
|
|
25
|
-
"tsBuildInfoFile": "devtools_entrypoint-bundle-typescript-tsconfig.json.tsbuildinfo",
|
|
26
|
-
"typeRoots": [],
|
|
27
|
-
"useUnknownInCatchVariables": false
|
|
28
|
-
},
|
|
29
|
-
"files": [
|
|
30
|
-
"../../../../../../../front_end/models/trace/worker/worker.ts",
|
|
31
|
-
"../../../../../../../front_end/legacy/legacy-defs.d.ts",
|
|
32
|
-
"../../../../../../../front_end/global_typings/global_defs.d.ts",
|
|
33
|
-
"../../../../../../../front_end/global_typings/request_idle_callback.d.ts",
|
|
34
|
-
"../../../../../../../node_modules/@types/filesystem/index.d.ts"
|
|
35
|
-
],
|
|
36
|
-
"references": [
|
|
37
|
-
{
|
|
38
|
-
"path": "./processor-tsconfig.json"
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowJs": true,
|
|
4
|
-
"checkJs": true,
|
|
5
|
-
"composite": true,
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"experimentalDecorators": true,
|
|
8
|
-
"forceConsistentCasingInFileNames": true,
|
|
9
|
-
"inlineSources": true,
|
|
10
|
-
"lib": [
|
|
11
|
-
"esnext",
|
|
12
|
-
"webworker",
|
|
13
|
-
"webworker.iterable"
|
|
14
|
-
],
|
|
15
|
-
"module": "esnext",
|
|
16
|
-
"noEmitOnError": true,
|
|
17
|
-
"noFallthroughCasesInSwitch": true,
|
|
18
|
-
"noImplicitReturns": true,
|
|
19
|
-
"outDir": ".",
|
|
20
|
-
"rootDir": "../../../../../../../front_end/models/trace/worker",
|
|
21
|
-
"skipLibCheck": true,
|
|
22
|
-
"sourceMap": true,
|
|
23
|
-
"strict": true,
|
|
24
|
-
"target": "esnext",
|
|
25
|
-
"tsBuildInfoFile": "devtools_entrypoint-worker_entrypoint-typescript-tsconfig.json.tsbuildinfo",
|
|
26
|
-
"typeRoots": [],
|
|
27
|
-
"useUnknownInCatchVariables": false
|
|
28
|
-
},
|
|
29
|
-
"files": [
|
|
30
|
-
"../../../../../../../front_end/models/trace/worker/worker_entrypoint.ts",
|
|
31
|
-
"../../../../../../../front_end/legacy/legacy-defs.d.ts",
|
|
32
|
-
"../../../../../../../front_end/global_typings/global_defs.d.ts",
|
|
33
|
-
"../../../../../../../front_end/global_typings/request_idle_callback.d.ts",
|
|
34
|
-
"../../../../../../../node_modules/@types/filesystem/index.d.ts"
|
|
35
|
-
],
|
|
36
|
-
"references": [
|
|
37
|
-
{
|
|
38
|
-
"path": "./bundle-tsconfig.json"
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"allowJs": true,
|
|
4
|
-
"checkJs": true,
|
|
5
|
-
"composite": true,
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"experimentalDecorators": true,
|
|
8
|
-
"forceConsistentCasingInFileNames": true,
|
|
9
|
-
"inlineSources": true,
|
|
10
|
-
"lib": [
|
|
11
|
-
"esnext",
|
|
12
|
-
"dom",
|
|
13
|
-
"dom.iterable"
|
|
14
|
-
],
|
|
15
|
-
"module": "esnext",
|
|
16
|
-
"noEmitOnError": true,
|
|
17
|
-
"noFallthroughCasesInSwitch": true,
|
|
18
|
-
"noImplicitReturns": true,
|
|
19
|
-
"outDir": ".",
|
|
20
|
-
"rootDir": "../../../../../../../front_end/models/trace/worker",
|
|
21
|
-
"skipLibCheck": true,
|
|
22
|
-
"sourceMap": true,
|
|
23
|
-
"strict": true,
|
|
24
|
-
"target": "esnext",
|
|
25
|
-
"tsBuildInfoFile": "processor-tsconfig.json.tsbuildinfo",
|
|
26
|
-
"typeRoots": [],
|
|
27
|
-
"useUnknownInCatchVariables": false
|
|
28
|
-
},
|
|
29
|
-
"files": [
|
|
30
|
-
"../../../../../../../front_end/models/trace/worker/Processor.ts",
|
|
31
|
-
"../../../../../../../front_end/models/trace/worker/Types.ts",
|
|
32
|
-
"../../../../../../../front_end/legacy/legacy-defs.d.ts",
|
|
33
|
-
"../../../../../../../front_end/global_typings/global_defs.d.ts",
|
|
34
|
-
"../../../../../../../front_end/global_typings/request_idle_callback.d.ts",
|
|
35
|
-
"../../../../../../../node_modules/@types/filesystem/index.d.ts"
|
|
36
|
-
],
|
|
37
|
-
"references": [
|
|
38
|
-
{
|
|
39
|
-
"path": "../handlers/bundle-tsconfig.json"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"path": "../types/bundle-tsconfig.json"
|
|
43
|
-
}
|
|
44
|
-
]
|
|
45
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../front_end/models/trace/worker/worker.ts"],
|
|
4
|
-
"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 * as Processor from './Processor.js';\nimport * as Types from './Types.js';\n\nexport {\n Processor,\n Types,\n};\n"],
|
|
5
|
-
"mappings": "AAIA;AACA;AAEA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"compilerOptions":{"composite":true,"outDir":".","baseUrl":".","rootDir":"../../../../../../../front_end/models/trace/worker"},"files":["../../../../../../../front_end/models/trace/worker/worker_entrypoint.ts"],"references":[{"path":"./bundle-tsconfig.json"}]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import * as Processor from "./Processor.js";
|
|
2
|
-
import * as Platform from "../../../core/platform/platform.js";
|
|
3
|
-
self.postMessage("workerReady");
|
|
4
|
-
const processor = Processor.TraceProcessor.create();
|
|
5
|
-
function sendMessage(event) {
|
|
6
|
-
self.postMessage(event);
|
|
7
|
-
}
|
|
8
|
-
processor.addEventListener(Processor.TraceParseProgressEvent.eventName, (event) => {
|
|
9
|
-
const updateEvent = event;
|
|
10
|
-
sendMessage({ message: "PARSE_UPDATE", ...updateEvent.data });
|
|
11
|
-
});
|
|
12
|
-
self.onmessage = async function(event) {
|
|
13
|
-
if (!event.data.action) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const message = event.data;
|
|
17
|
-
switch (message.action) {
|
|
18
|
-
case "PARSE": {
|
|
19
|
-
try {
|
|
20
|
-
await processor.parse(event.data.events, event.data.freshRecording);
|
|
21
|
-
sendMessage({ message: "PARSE_COMPLETE", data: processor.data });
|
|
22
|
-
} catch (error) {
|
|
23
|
-
sendMessage({ message: "PARSE_ERROR", error });
|
|
24
|
-
} finally {
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
case "RESET": {
|
|
29
|
-
processor.reset();
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
default:
|
|
33
|
-
Platform.assertNever(message, `Unknown trace worker message ${JSON.stringify(message)}`);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=worker_entrypoint.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../../front_end/models/trace/worker/worker_entrypoint.ts"],
|
|
4
|
-
"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.\nimport * as Processor from './Processor.js';\nimport type * as Types from './Types.js';\nimport * as Platform from '../../../core/platform/platform.js';\n\nself.postMessage('workerReady');\n\nconst processor = Processor.TraceProcessor.create();\n\n// Send a message back from the worker. Exists purely to provide some type\n// safety around the messages we send.\nfunction sendMessage(event: Types.MessageFromWorker): void {\n self.postMessage(event);\n}\n\nprocessor.addEventListener(Processor.TraceParseProgressEvent.eventName, (event: Event) => {\n const updateEvent = event as Processor.TraceParseProgressEvent;\n sendMessage({message: 'PARSE_UPDATE', ...updateEvent.data});\n});\n\nself.onmessage = async function(event: MessageEvent): Promise<void> {\n if (!event.data.action) {\n return;\n }\n\n const message = event.data as Types.MessageToWorker;\n switch (message.action) {\n case 'PARSE': {\n try {\n await processor.parse(event.data.events, event.data.freshRecording);\n sendMessage({message: 'PARSE_COMPLETE', data: processor.data});\n } catch (error) {\n sendMessage({message: 'PARSE_ERROR', error});\n } finally {\n break;\n }\n }\n case 'RESET': {\n processor.reset();\n break;\n }\n default:\n Platform.assertNever(message, `Unknown trace worker message ${JSON.stringify(message)}`);\n }\n};\n"],
|
|
5
|
-
"mappings": "AAGA;AAEA;AAEA,KAAK,YAAY;AAEjB,MAAM,YAAY,UAAU,eAAe;AAI3C,qBAAqB,OAAsC;AACzD,OAAK,YAAY;AAAA;AAGnB,UAAU,iBAAiB,UAAU,wBAAwB,WAAW,CAAC,UAAiB;AACxF,QAAM,cAAc;AACpB,cAAY,EAAC,SAAS,mBAAmB,YAAY;AAAA;AAGvD,KAAK,YAAY,eAAe,OAAoC;AAClE,MAAI,CAAC,MAAM,KAAK,QAAQ;AACtB;AAAA;AAGF,QAAM,UAAU,MAAM;AACtB,UAAQ,QAAQ;AAAA,SACT,SAAS;AACZ,UAAI;AACF,cAAM,UAAU,MAAM,MAAM,KAAK,QAAQ,MAAM,KAAK;AACpD,oBAAY,EAAC,SAAS,kBAAkB,MAAM,UAAU;AAAA,eACjD,OAAP;AACA,oBAAY,EAAC,SAAS,eAAe;AAAA,gBACrC;AACA;AAAA;AAAA;AAAA,SAGC,SAAS;AACZ,gBAAU;AACV;AAAA;AAAA;AAGA,eAAS,YAAY,SAAS,gCAAgC,KAAK,UAAU;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|