@paulirish/trace_engine 0.0.42 → 0.0.43

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.
Files changed (106) hide show
  1. package/.tmp/tsbuildinfo/tsconfig.tsbuildinfo +1 -1
  2. package/locales/en-US.json +0 -12
  3. package/locales/en-XL.json +0 -12
  4. package/models/cpu_profile/CPUProfileDataModel.js +2 -2
  5. package/models/cpu_profile/CPUProfileDataModel.js.map +1 -1
  6. package/models/trace/LanternComputationData.js +1 -1
  7. package/models/trace/LanternComputationData.js.map +1 -1
  8. package/models/trace/extras/TraceTree.d.ts +15 -2
  9. package/models/trace/extras/TraceTree.js +2 -2
  10. package/models/trace/extras/TraceTree.js.map +1 -1
  11. package/models/trace/extras/extras.d.ts +0 -1
  12. package/models/trace/extras/extras.js +0 -1
  13. package/models/trace/handlers/MetaHandler.js +3 -3
  14. package/models/trace/handlers/MetaHandler.js.map +1 -1
  15. package/models/trace/handlers/PageLoadMetricsHandler.js.map +1 -1
  16. package/models/trace/handlers/RendererHandler.d.ts +1 -1
  17. package/models/trace/handlers/RendererHandler.js +1 -1
  18. package/models/trace/handlers/RendererHandler.js.map +1 -1
  19. package/models/trace/handlers/ScreenshotsHandler.js +1 -1
  20. package/models/trace/handlers/ScreenshotsHandler.js.map +1 -1
  21. package/models/trace/helpers/SamplesIntegrator.d.ts +1 -1
  22. package/models/trace/helpers/SamplesIntegrator.js +2 -2
  23. package/models/trace/helpers/SamplesIntegrator.js.map +1 -1
  24. package/models/trace/helpers/Trace.d.ts +1 -1
  25. package/models/trace/helpers/Trace.js +1 -1
  26. package/models/trace/helpers/Trace.js.map +1 -1
  27. package/models/trace/helpers/TreeHelpers.js +1 -1
  28. package/models/trace/helpers/TreeHelpers.js.map +1 -1
  29. package/models/trace/insights/CLSCulprits.d.ts +2 -0
  30. package/models/trace/insights/CLSCulprits.js +41 -8
  31. package/models/trace/insights/CLSCulprits.js.map +1 -1
  32. package/models/trace/insights/DocumentLatency.d.ts +2 -12
  33. package/models/trace/insights/DocumentLatency.js +23 -14
  34. package/models/trace/insights/DocumentLatency.js.map +1 -1
  35. package/models/trace/insights/LCPDiscovery.d.ts +2 -14
  36. package/models/trace/insights/LCPDiscovery.js +8 -16
  37. package/models/trace/insights/LCPDiscovery.js.map +1 -1
  38. package/models/trace/insights/types.d.ts +4 -0
  39. package/models/trace/insights/types.js.map +1 -1
  40. package/models/trace/lantern/graph/BaseNode.d.ts +1 -1
  41. package/models/trace/lantern/graph/BaseNode.js +1 -1
  42. package/models/trace/lantern/graph/BaseNode.js.map +1 -1
  43. package/models/trace/lantern/metrics/FirstContentfulPaint.d.ts +1 -1
  44. package/models/trace/lantern/metrics/FirstContentfulPaint.js.map +1 -1
  45. package/models/trace/lantern/simulation/ConnectionPool.js +1 -1
  46. package/models/trace/lantern/simulation/ConnectionPool.js.map +1 -1
  47. package/models/trace/lantern/simulation/Simulator.d.ts +2 -2
  48. package/models/trace/lantern/simulation/Simulator.js +3 -3
  49. package/models/trace/lantern/simulation/Simulator.js.map +1 -1
  50. package/models/trace/lantern/types/Lantern.d.ts +2 -2
  51. package/models/trace/lantern/types/Lantern.js.map +1 -1
  52. package/models/trace/root-causes/LayoutShift.d.ts +1 -1
  53. package/models/trace/root-causes/LayoutShift.js +4 -4
  54. package/models/trace/root-causes/LayoutShift.js.map +1 -1
  55. package/models/trace/types/TraceEvents.d.ts +2 -2
  56. package/models/trace/types/TraceEvents.js.map +1 -1
  57. package/package.json +1 -1
  58. package/core/platform/PromiseUtilities.d.ts +0 -10
  59. package/core/platform/PromiseUtilities.js +0 -18
  60. package/core/platform/PromiseUtilities.js.map +0 -1
  61. package/core/platform/SetUtilities.d.ts +0 -2
  62. package/core/platform/SetUtilities.js +0 -23
  63. package/core/platform/SetUtilities.js.map +0 -1
  64. package/models/trace/EntriesFilter.d.ts +0 -72
  65. package/models/trace/EntriesFilter.js +0 -296
  66. package/models/trace/EntriesFilter.js.map +0 -1
  67. package/models/trace/LegacyTracingModel.js.map +0 -1
  68. package/models/trace/extras/URLForEntry.d.ts +0 -13
  69. package/models/trace/extras/URLForEntry.js +0 -44
  70. package/models/trace/extras/URLForEntry.js.map +0 -1
  71. package/models/trace/handlers/EnhancedTracesHandler.d.ts +0 -48
  72. package/models/trace/handlers/EnhancedTracesHandler.js +0 -165
  73. package/models/trace/handlers/EnhancedTracesHandler.js.map +0 -1
  74. package/models/trace/insights/CumulativeLayoutShift.d.ts +0 -34
  75. package/models/trace/insights/CumulativeLayoutShift.js +0 -209
  76. package/models/trace/insights/CumulativeLayoutShift.js.map +0 -1
  77. package/models/trace/insights/InsightRunners.d.ts +0 -6
  78. package/models/trace/insights/InsightRunners.js +0 -10
  79. package/models/trace/insights/InsightRunners.js.map +0 -1
  80. package/models/trace/insights/LargestContentfulPaint.d.ts +0 -25
  81. package/models/trace/insights/LargestContentfulPaint.js +0 -93
  82. package/models/trace/insights/LargestContentfulPaint.js.map +0 -1
  83. package/models/trace/lantern/BaseNode.d.ts +0 -91
  84. package/models/trace/lantern/BaseNode.js +0 -268
  85. package/models/trace/lantern/BaseNode.js.map +0 -1
  86. package/models/trace/lantern/CPUNode.d.ts +0 -24
  87. package/models/trace/lantern/CPUNode.js +0 -64
  88. package/models/trace/lantern/CPUNode.js.map +0 -1
  89. package/models/trace/lantern/LanternError.d.ts +0 -3
  90. package/models/trace/lantern/LanternError.js +0 -7
  91. package/models/trace/lantern/LanternError.js.map +0 -1
  92. package/models/trace/lantern/MetricsModule.d.ts +0 -11
  93. package/models/trace/lantern/MetricsModule.js +0 -14
  94. package/models/trace/lantern/MetricsModule.js.map +0 -1
  95. package/models/trace/lantern/NetworkNode.d.ts +0 -22
  96. package/models/trace/lantern/NetworkNode.js +0 -83
  97. package/models/trace/lantern/NetworkNode.js.map +0 -1
  98. package/models/trace/lantern/PageDependencyGraph.d.ts +0 -43
  99. package/models/trace/lantern/PageDependencyGraph.js +0 -509
  100. package/models/trace/lantern/PageDependencyGraph.js.map +0 -1
  101. package/models/trace/lantern/SimulationModule.d.ts +0 -17
  102. package/models/trace/lantern/SimulationModule.js +0 -13
  103. package/models/trace/lantern/SimulationModule.js.map +0 -1
  104. package/models/trace/lantern/simulation/NetworkAnalyzer.d.ts +0 -112
  105. package/models/trace/lantern/simulation/NetworkAnalyzer.js +0 -486
  106. package/models/trace/lantern/simulation/NetworkAnalyzer.js.map +0 -1
@@ -1,14 +0,0 @@
1
- // Copyright 2024 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
- // TODO(crbug.com/348449529): refactor to proper devtools module
5
- import { FirstContentfulPaint } from './metrics/FirstContentfulPaint.js';
6
- import { Interactive } from './metrics/Interactive.js';
7
- import { LargestContentfulPaint } from './metrics/LargestContentfulPaint.js';
8
- import { MaxPotentialFID } from './metrics/MaxPotentialFID.js';
9
- import { Metric } from './metrics/Metric.js';
10
- import { SpeedIndex } from './metrics/SpeedIndex.js';
11
- import { TotalBlockingTime } from './metrics/TotalBlockingTime.js';
12
- export { FirstContentfulPaint, Interactive, LargestContentfulPaint, MaxPotentialFID, Metric, SpeedIndex, TotalBlockingTime, };
13
- export * as TBTUtils from './metrics/TBTUtils.js';
14
- //# sourceMappingURL=MetricsModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricsModule.js","sourceRoot":"","sources":["../../../../../../../front_end/models/trace/lantern/MetricsModule.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAE7B,gEAAgE;AAEhE,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAc,MAAM,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAKjE,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,sBAAsB,EACtB,eAAe,EAEf,MAAM,EACN,UAAU,EACV,iBAAiB,GAClB,CAAC;AAEF,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC","sourcesContent":["// Copyright 2024 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\n// TODO(crbug.com/348449529): refactor to proper devtools module\n\nimport {FirstContentfulPaint} from './metrics/FirstContentfulPaint.js';\nimport {Interactive} from './metrics/Interactive.js';\nimport {LargestContentfulPaint} from './metrics/LargestContentfulPaint.js';\nimport {MaxPotentialFID} from './metrics/MaxPotentialFID.js';\nimport {type Extras, Metric} from './metrics/Metric.js';\nimport {SpeedIndex} from './metrics/SpeedIndex.js';\nimport {TotalBlockingTime} from './metrics/TotalBlockingTime.js';\nimport type * as Lantern from './types/lantern.js';\n\nexport type Result<T = Lantern.AnyNetworkObject> = Lantern.Metrics.Result<T>;\n\nexport {\n FirstContentfulPaint,\n Interactive,\n LargestContentfulPaint,\n MaxPotentialFID,\n Extras,\n Metric,\n SpeedIndex,\n TotalBlockingTime,\n};\n\nexport * as TBTUtils from './metrics/TBTUtils.js';\n"]}
@@ -1,22 +0,0 @@
1
- import { BaseNode } from './BaseNode.js';
2
- import type * as Lantern from './types/lantern.js';
3
- declare class NetworkNode<T = Lantern.AnyNetworkObject> extends BaseNode<T> {
4
- _request: Lantern.NetworkRequest<T>;
5
- constructor(networkRequest: Lantern.NetworkRequest<T>);
6
- get type(): 'network';
7
- get startTime(): number;
8
- get endTime(): number;
9
- get rawRequest(): Readonly<T>;
10
- get request(): Lantern.NetworkRequest<T>;
11
- get initiatorType(): string;
12
- get fromDiskCache(): boolean;
13
- get isNonNetworkProtocol(): boolean;
14
- /**
15
- * Returns whether this network request can be downloaded without a TCP connection.
16
- * During simulation we treat data coming in over a network connection separately from on-device data.
17
- */
18
- get isConnectionless(): boolean;
19
- hasRenderBlockingPriority(): boolean;
20
- cloneWithoutRelationships(): NetworkNode<T>;
21
- }
22
- export { NetworkNode };
@@ -1,83 +0,0 @@
1
- // Copyright 2024 The Chromium Authors. All rights reserved.
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
- import { BaseNode } from './BaseNode.js';
5
- const NON_NETWORK_SCHEMES = [
6
- 'blob', // @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
7
- 'data', // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
8
- 'intent', // @see https://developer.chrome.com/docs/multidevice/android/intents/
9
- 'file', // @see https://en.wikipedia.org/wiki/File_URI_scheme
10
- 'filesystem', // @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystem
11
- 'chrome-extension',
12
- ];
13
- /**
14
- * Note: the `protocol` field from CDP can be 'h2', 'http', (not 'https'!) or it'll be url's scheme.
15
- * https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/network_handler.cc;l=598-611;drc=56d4a9a9deb30be73adcee8737c73bcb2a5ab64f
16
- * However, a `new URL(href).protocol` has a colon suffix.
17
- * https://url.spec.whatwg.org/#dom-url-protocol
18
- * A URL's `scheme` is specced as the `protocol` sans-colon, but isn't exposed on a URL object.
19
- * This method can take all 3 of these string types as a parameter.
20
- *
21
- * @param protocol Either a networkRequest's `protocol` per CDP or a `new URL(href).protocol`
22
- */
23
- function isNonNetworkProtocol(protocol) {
24
- // Strip off any colon
25
- const urlScheme = protocol.includes(':') ? protocol.slice(0, protocol.indexOf(':')) : protocol;
26
- return NON_NETWORK_SCHEMES.includes(urlScheme);
27
- }
28
- class NetworkNode extends BaseNode {
29
- _request;
30
- constructor(networkRequest) {
31
- super(networkRequest.requestId);
32
- this._request = networkRequest;
33
- }
34
- get type() {
35
- return BaseNode.types.NETWORK;
36
- }
37
- get startTime() {
38
- return this._request.rendererStartTime * 1000;
39
- }
40
- get endTime() {
41
- return this._request.networkEndTime * 1000;
42
- }
43
- get rawRequest() {
44
- return this._request.rawRequest;
45
- }
46
- get request() {
47
- return this._request;
48
- }
49
- get initiatorType() {
50
- return this._request.initiator && this._request.initiator.type;
51
- }
52
- get fromDiskCache() {
53
- return Boolean(this._request.fromDiskCache);
54
- }
55
- get isNonNetworkProtocol() {
56
- // The 'protocol' field in devtools a string more like a `scheme`
57
- return isNonNetworkProtocol(this.request.protocol) ||
58
- // But `protocol` can fail to be populated if the request fails, so fallback to scheme.
59
- isNonNetworkProtocol(this.request.parsedURL.scheme);
60
- }
61
- /**
62
- * Returns whether this network request can be downloaded without a TCP connection.
63
- * During simulation we treat data coming in over a network connection separately from on-device data.
64
- */
65
- get isConnectionless() {
66
- return this.fromDiskCache || this.isNonNetworkProtocol;
67
- }
68
- hasRenderBlockingPriority() {
69
- const priority = this._request.priority;
70
- const isScript = this._request.resourceType === 'Script';
71
- const isDocument = this._request.resourceType === 'Document';
72
- const isBlockingScript = priority === 'High' && isScript;
73
- const isBlockingHtmlImport = priority === 'High' && isDocument;
74
- return priority === 'VeryHigh' || isBlockingScript || isBlockingHtmlImport;
75
- }
76
- cloneWithoutRelationships() {
77
- const node = new NetworkNode(this._request);
78
- node.setIsMainDocument(this._isMainDocument);
79
- return node;
80
- }
81
- }
82
- export { NetworkNode };
83
- //# sourceMappingURL=NetworkNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkNode.js","sourceRoot":"","sources":["../../../../../../../front_end/models/trace/lantern/NetworkNode.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 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 {BaseNode} from './BaseNode.js';\nimport type * as Lantern from './types/lantern.js';\n\nconst NON_NETWORK_SCHEMES = [\n 'blob', // @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n 'data', // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n 'intent', // @see https://developer.chrome.com/docs/multidevice/android/intents/\n 'file', // @see https://en.wikipedia.org/wiki/File_URI_scheme\n 'filesystem', // @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystem\n 'chrome-extension',\n];\n\n/**\n * Note: the `protocol` field from CDP can be 'h2', 'http', (not 'https'!) or it'll be url's scheme.\n * https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/network_handler.cc;l=598-611;drc=56d4a9a9deb30be73adcee8737c73bcb2a5ab64f\n * However, a `new URL(href).protocol` has a colon suffix.\n * https://url.spec.whatwg.org/#dom-url-protocol\n * A URL's `scheme` is specced as the `protocol` sans-colon, but isn't exposed on a URL object.\n * This method can take all 3 of these string types as a parameter.\n *\n * @param protocol Either a networkRequest's `protocol` per CDP or a `new URL(href).protocol`\n */\nfunction isNonNetworkProtocol(protocol: string): boolean {\n // Strip off any colon\n const urlScheme = protocol.includes(':') ? protocol.slice(0, protocol.indexOf(':')) : protocol;\n return NON_NETWORK_SCHEMES.includes(urlScheme);\n}\n\nclass NetworkNode<T = Lantern.AnyNetworkObject> extends BaseNode<T> {\n _request: Lantern.NetworkRequest<T>;\n\n constructor(networkRequest: Lantern.NetworkRequest<T>) {\n super(networkRequest.requestId);\n this._request = networkRequest;\n }\n\n override get type(): 'network' {\n return BaseNode.types.NETWORK;\n }\n\n override get startTime(): number {\n return this._request.rendererStartTime * 1000;\n }\n\n override get endTime(): number {\n return this._request.networkEndTime * 1000;\n }\n\n get rawRequest(): Readonly<T> {\n return this._request.rawRequest as Required<T>;\n }\n\n get request(): Lantern.NetworkRequest<T> {\n return this._request;\n }\n\n get initiatorType(): string {\n return this._request.initiator && this._request.initiator.type;\n }\n\n get fromDiskCache(): boolean {\n return Boolean(this._request.fromDiskCache);\n }\n\n get isNonNetworkProtocol(): boolean {\n // The 'protocol' field in devtools a string more like a `scheme`\n return isNonNetworkProtocol(this.request.protocol) ||\n // But `protocol` can fail to be populated if the request fails, so fallback to scheme.\n isNonNetworkProtocol(this.request.parsedURL.scheme);\n }\n\n /**\n * Returns whether this network request can be downloaded without a TCP connection.\n * During simulation we treat data coming in over a network connection separately from on-device data.\n */\n get isConnectionless(): boolean {\n return this.fromDiskCache || this.isNonNetworkProtocol;\n }\n\n hasRenderBlockingPriority(): boolean {\n const priority = this._request.priority;\n const isScript = this._request.resourceType === 'Script';\n const isDocument = this._request.resourceType === 'Document';\n const isBlockingScript = priority === 'High' && isScript;\n const isBlockingHtmlImport = priority === 'High' && isDocument;\n return priority === 'VeryHigh' || isBlockingScript || isBlockingHtmlImport;\n }\n\n override cloneWithoutRelationships(): NetworkNode<T> {\n const node = new NetworkNode(this._request);\n node.setIsMainDocument(this._isMainDocument);\n return node;\n }\n}\n\nexport {NetworkNode};\n"]}
@@ -1,43 +0,0 @@
1
- import { type Node } from './BaseNode.js';
2
- import { CPUNode } from './CPUNode.js';
3
- import { NetworkNode } from './NetworkNode.js';
4
- import type * as Lantern from './types/lantern.js';
5
- interface NetworkNodeOutput {
6
- nodes: Array<NetworkNode>;
7
- idToNodeMap: Map<string, NetworkNode>;
8
- urlToNodeMap: Map<string, Array<NetworkNode>>;
9
- frameIdToNodeMap: Map<string, NetworkNode | null>;
10
- }
11
- declare class PageDependencyGraph {
12
- static getNetworkInitiators(request: Lantern.NetworkRequest): string[];
13
- static getNetworkNodeOutput(networkRequests: Lantern.NetworkRequest[]): NetworkNodeOutput;
14
- static isScheduleableTask(evt: Lantern.TraceEvent): boolean;
15
- /**
16
- * There should *always* be at least one top level event, having 0 typically means something is
17
- * drastically wrong with the trace and we should just give up early and loudly.
18
- */
19
- static assertHasToplevelEvents(events: Lantern.TraceEvent[]): void;
20
- static getCPUNodes(mainThreadEvents: Lantern.TraceEvent[]): CPUNode[];
21
- static linkNetworkNodes(rootNode: NetworkNode, networkNodeOutput: NetworkNodeOutput): void;
22
- static linkCPUNodes(rootNode: Node, networkNodeOutput: NetworkNodeOutput, cpuNodes: CPUNode[]): void;
23
- /**
24
- * Removes the given node from the graph, but retains all paths between its dependencies and
25
- * dependents.
26
- */
27
- static _pruneNode(node: Node): void;
28
- /**
29
- * TODO: remove when CDT backend in Lighthouse is gone. Until then, this is a useful debugging tool
30
- * to find delta between using CDP or the trace to create the network requests.
31
- *
32
- * When a test fails using the trace backend, I enabled this debug method and copied the network
33
- * requests when CDP was used, then when trace is used, and diff'd them. This method helped
34
- * remove non-logical differences from the comparison (order of properties, slight rounding
35
- * discrepancies, removing object cycles, etc).
36
- *
37
- * When using for a unit test, make sure to do `.only` so you are getting what you expect.
38
- */
39
- static _debugNormalizeRequests(lanternRequests: Lantern.NetworkRequest[]): void;
40
- static createGraph(mainThreadEvents: Lantern.TraceEvent[], networkRequests: Lantern.NetworkRequest[], url: Lantern.Simulation.URL): Node;
41
- static printGraph(rootNode: Node, widthInCharacters?: number): void;
42
- }
43
- export { PageDependencyGraph };