@paulirish/trace_engine 0.0.32 → 0.0.33

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 (282) hide show
  1. package/README.md +6 -10
  2. package/analyze-trace.mjs +9 -10
  3. package/core/platform/ArrayUtilities.js +1 -0
  4. package/core/platform/ArrayUtilities.js.map +1 -1
  5. package/core/platform/DevToolsPath.d.ts +1 -1
  6. package/core/platform/DevToolsPath.js.map +1 -1
  7. package/core/platform/MimeType.js +4 -2
  8. package/core/platform/MimeType.js.map +1 -1
  9. package/core/platform/NumberUtilities.js +8 -0
  10. package/core/platform/NumberUtilities.js.map +1 -1
  11. package/core/platform/ServerTiming.d.ts +31 -0
  12. package/core/platform/ServerTiming.js +212 -0
  13. package/core/platform/ServerTiming.js.map +1 -0
  14. package/core/platform/Timing.d.ts +1 -1
  15. package/core/platform/Timing.js.map +1 -1
  16. package/core/platform/TypescriptUtilities.d.ts +3 -0
  17. package/core/platform/TypescriptUtilities.js.map +1 -1
  18. package/core/platform/UIString.d.ts +1 -1
  19. package/core/platform/UIString.js.map +1 -1
  20. package/core/platform/UserVisibleError.d.ts +1 -1
  21. package/core/platform/UserVisibleError.js.map +1 -1
  22. package/core/platform/platform-tsconfig.json +1 -1
  23. package/core/platform/platform.d.ts +2 -2
  24. package/core/platform/platform.js +2 -2
  25. package/core/platform/platform.js.map +1 -1
  26. package/generated/protocol.d.ts +258 -14
  27. package/models/trace/LanternComputationData.d.ts +4 -4
  28. package/models/trace/LanternComputationData.js +22 -23
  29. package/models/trace/LanternComputationData.js.map +1 -1
  30. package/models/trace/ModelImpl.d.ts +11 -12
  31. package/models/trace/ModelImpl.js +22 -33
  32. package/models/trace/ModelImpl.js.map +1 -1
  33. package/models/trace/Processor.d.ts +21 -12
  34. package/models/trace/Processor.js +148 -67
  35. package/models/trace/Processor.js.map +1 -1
  36. package/models/trace/TracingManager.js.map +1 -1
  37. package/models/trace/extras/FetchNodes.d.ts +8 -8
  38. package/models/trace/extras/FetchNodes.js +16 -11
  39. package/models/trace/extras/FetchNodes.js.map +1 -1
  40. package/models/trace/extras/FilmStrip.d.ts +2 -2
  41. package/models/trace/extras/FilmStrip.js +8 -8
  42. package/models/trace/extras/FilmStrip.js.map +1 -1
  43. package/models/trace/extras/MainThreadActivity.d.ts +1 -1
  44. package/models/trace/extras/MainThreadActivity.js +1 -1
  45. package/models/trace/extras/MainThreadActivity.js.map +1 -1
  46. package/models/trace/extras/Metadata.js +2 -2
  47. package/models/trace/extras/Metadata.js.map +1 -1
  48. package/models/trace/extras/URLForEntry.d.ts +9 -1
  49. package/models/trace/extras/URLForEntry.js +18 -10
  50. package/models/trace/extras/URLForEntry.js.map +1 -1
  51. package/models/trace/extras/extras.js +1 -1
  52. package/models/trace/handlers/AnimationHandler.d.ts +2 -2
  53. package/models/trace/handlers/AnimationHandler.js +1 -1
  54. package/models/trace/handlers/AnimationHandler.js.map +1 -1
  55. package/models/trace/handlers/AuctionWorkletsHandler.d.ts +2 -2
  56. package/models/trace/handlers/AuctionWorkletsHandler.js +11 -11
  57. package/models/trace/handlers/AuctionWorkletsHandler.js.map +1 -1
  58. package/models/trace/handlers/ExtensionTraceDataHandler.d.ts +6 -6
  59. package/models/trace/handlers/ExtensionTraceDataHandler.js +12 -8
  60. package/models/trace/handlers/ExtensionTraceDataHandler.js.map +1 -1
  61. package/models/trace/handlers/FramesHandler.d.ts +24 -19
  62. package/models/trace/handlers/FramesHandler.js +46 -25
  63. package/models/trace/handlers/FramesHandler.js.map +1 -1
  64. package/models/trace/handlers/GPUHandler.d.ts +4 -4
  65. package/models/trace/handlers/GPUHandler.js +3 -3
  66. package/models/trace/handlers/GPUHandler.js.map +1 -1
  67. package/models/trace/handlers/ImagePaintingHandler.d.ts +3 -3
  68. package/models/trace/handlers/ImagePaintingHandler.js +6 -8
  69. package/models/trace/handlers/ImagePaintingHandler.js.map +1 -1
  70. package/models/trace/handlers/InitiatorsHandler.d.ts +3 -3
  71. package/models/trace/handlers/InitiatorsHandler.js +14 -14
  72. package/models/trace/handlers/InitiatorsHandler.js.map +1 -1
  73. package/models/trace/handlers/InvalidationsHandler.d.ts +4 -2
  74. package/models/trace/handlers/InvalidationsHandler.js +29 -11
  75. package/models/trace/handlers/InvalidationsHandler.js.map +1 -1
  76. package/models/trace/handlers/LargestImagePaintHandler.d.ts +2 -2
  77. package/models/trace/handlers/LargestImagePaintHandler.js +1 -1
  78. package/models/trace/handlers/LargestImagePaintHandler.js.map +1 -1
  79. package/models/trace/handlers/LargestTextPaintHandler.d.ts +2 -2
  80. package/models/trace/handlers/LargestTextPaintHandler.js +1 -1
  81. package/models/trace/handlers/LargestTextPaintHandler.js.map +1 -1
  82. package/models/trace/handlers/LayerTreeHandler.d.ts +6 -6
  83. package/models/trace/handlers/LayerTreeHandler.js +6 -6
  84. package/models/trace/handlers/LayerTreeHandler.js.map +1 -1
  85. package/models/trace/handlers/LayoutShiftsHandler.d.ts +12 -20
  86. package/models/trace/handlers/LayoutShiftsHandler.js +73 -12
  87. package/models/trace/handlers/LayoutShiftsHandler.js.map +1 -1
  88. package/models/trace/handlers/MemoryHandler.d.ts +2 -2
  89. package/models/trace/handlers/MemoryHandler.js +1 -1
  90. package/models/trace/handlers/MemoryHandler.js.map +1 -1
  91. package/models/trace/handlers/MetaHandler.d.ts +15 -14
  92. package/models/trace/handlers/MetaHandler.js +32 -30
  93. package/models/trace/handlers/MetaHandler.js.map +1 -1
  94. package/models/trace/handlers/ModelHandlers.d.ts +1 -1
  95. package/models/trace/handlers/ModelHandlers.js +1 -1
  96. package/models/trace/handlers/ModelHandlers.js.map +1 -1
  97. package/models/trace/handlers/NetworkRequestsHandler.d.ts +13 -12
  98. package/models/trace/handlers/NetworkRequestsHandler.js +68 -66
  99. package/models/trace/handlers/NetworkRequestsHandler.js.map +1 -1
  100. package/models/trace/handlers/PageFramesHandler.d.ts +2 -2
  101. package/models/trace/handlers/PageFramesHandler.js +2 -2
  102. package/models/trace/handlers/PageFramesHandler.js.map +1 -1
  103. package/models/trace/handlers/PageLoadMetricsHandler.d.ts +7 -7
  104. package/models/trace/handlers/PageLoadMetricsHandler.js +21 -24
  105. package/models/trace/handlers/PageLoadMetricsHandler.js.map +1 -1
  106. package/models/trace/handlers/RendererHandler.d.ts +19 -19
  107. package/models/trace/handlers/RendererHandler.js +5 -5
  108. package/models/trace/handlers/RendererHandler.js.map +1 -1
  109. package/models/trace/handlers/SamplesHandler.d.ts +6 -6
  110. package/models/trace/handlers/SamplesHandler.js +3 -3
  111. package/models/trace/handlers/SamplesHandler.js.map +1 -1
  112. package/models/trace/handlers/ScreenshotsHandler.d.ts +6 -4
  113. package/models/trace/handlers/ScreenshotsHandler.js +11 -9
  114. package/models/trace/handlers/ScreenshotsHandler.js.map +1 -1
  115. package/models/trace/handlers/SelectorStatsHandler.d.ts +3 -3
  116. package/models/trace/handlers/SelectorStatsHandler.js +2 -2
  117. package/models/trace/handlers/SelectorStatsHandler.js.map +1 -1
  118. package/models/trace/handlers/ServerTimingsHandler.d.ts +10 -0
  119. package/models/trace/handlers/ServerTimingsHandler.js +118 -0
  120. package/models/trace/handlers/ServerTimingsHandler.js.map +1 -0
  121. package/models/trace/handlers/Threads.d.ts +7 -7
  122. package/models/trace/handlers/Threads.js +5 -5
  123. package/models/trace/handlers/Threads.js.map +1 -1
  124. package/models/trace/handlers/UserInteractionsHandler.d.ts +13 -11
  125. package/models/trace/handlers/UserInteractionsHandler.js +13 -7
  126. package/models/trace/handlers/UserInteractionsHandler.js.map +1 -1
  127. package/models/trace/handlers/UserTimingsHandler.d.ts +5 -5
  128. package/models/trace/handlers/UserTimingsHandler.js +52 -9
  129. package/models/trace/handlers/UserTimingsHandler.js.map +1 -1
  130. package/models/trace/handlers/WarningsHandler.d.ts +5 -5
  131. package/models/trace/handlers/WarningsHandler.js +4 -5
  132. package/models/trace/handlers/WarningsHandler.js.map +1 -1
  133. package/models/trace/handlers/WorkersHandler.d.ts +4 -4
  134. package/models/trace/handlers/WorkersHandler.js +1 -1
  135. package/models/trace/handlers/WorkersHandler.js.map +1 -1
  136. package/models/trace/handlers/handlers-tsconfig.json +1 -1
  137. package/models/trace/handlers/types.d.ts +7 -7
  138. package/models/trace/handlers/types.js.map +1 -1
  139. package/models/trace/helpers/Extensions.d.ts +2 -2
  140. package/models/trace/helpers/Extensions.js.map +1 -1
  141. package/models/trace/helpers/Network.d.ts +2 -2
  142. package/models/trace/helpers/Network.js +19 -2
  143. package/models/trace/helpers/Network.js.map +1 -1
  144. package/models/trace/helpers/SamplesIntegrator.d.ts +5 -5
  145. package/models/trace/helpers/SamplesIntegrator.js +10 -11
  146. package/models/trace/helpers/SamplesIntegrator.js.map +1 -1
  147. package/models/trace/helpers/SyntheticEvents.d.ts +8 -14
  148. package/models/trace/helpers/SyntheticEvents.js +20 -31
  149. package/models/trace/helpers/SyntheticEvents.js.map +1 -1
  150. package/models/trace/helpers/Timing.d.ts +16 -4
  151. package/models/trace/helpers/Timing.js +33 -1
  152. package/models/trace/helpers/Timing.js.map +1 -1
  153. package/models/trace/helpers/Trace.d.ts +46 -32
  154. package/models/trace/helpers/Trace.js +53 -24
  155. package/models/trace/helpers/Trace.js.map +1 -1
  156. package/models/trace/helpers/TreeHelpers.d.ts +29 -8
  157. package/models/trace/helpers/TreeHelpers.js +87 -19
  158. package/models/trace/helpers/TreeHelpers.js.map +1 -1
  159. package/models/trace/insights/Common.d.ts +4 -3
  160. package/models/trace/insights/Common.js +22 -7
  161. package/models/trace/insights/Common.js.map +1 -1
  162. package/models/trace/insights/CumulativeLayoutShift.d.ts +34 -13
  163. package/models/trace/insights/CumulativeLayoutShift.js +151 -59
  164. package/models/trace/insights/CumulativeLayoutShift.js.map +1 -1
  165. package/models/trace/insights/DocumentLatency.d.ts +9 -4
  166. package/models/trace/insights/DocumentLatency.js +82 -7
  167. package/models/trace/insights/DocumentLatency.js.map +1 -1
  168. package/models/trace/insights/FontDisplay.d.ts +11 -0
  169. package/models/trace/insights/FontDisplay.js +44 -0
  170. package/models/trace/insights/FontDisplay.js.map +1 -0
  171. package/models/trace/insights/InsightRunners.d.ts +3 -0
  172. package/models/trace/insights/InsightRunners.js +3 -0
  173. package/models/trace/insights/InsightRunners.js.map +1 -1
  174. package/models/trace/insights/InteractionToNextPaint.d.ts +4 -5
  175. package/models/trace/insights/InteractionToNextPaint.js +5 -3
  176. package/models/trace/insights/InteractionToNextPaint.js.map +1 -1
  177. package/models/trace/insights/LargestContentfulPaint.d.ts +20 -7
  178. package/models/trace/insights/LargestContentfulPaint.js +57 -37
  179. package/models/trace/insights/LargestContentfulPaint.js.map +1 -1
  180. package/models/trace/insights/RenderBlocking.d.ts +3 -3
  181. package/models/trace/insights/RenderBlocking.js +29 -24
  182. package/models/trace/insights/RenderBlocking.js.map +1 -1
  183. package/models/trace/insights/SlowCSSSelector.d.ts +11 -0
  184. package/models/trace/insights/SlowCSSSelector.js +67 -0
  185. package/models/trace/insights/SlowCSSSelector.js.map +1 -0
  186. package/models/trace/insights/ThirdPartyWeb.d.ts +18 -0
  187. package/models/trace/insights/ThirdPartyWeb.js +174 -0
  188. package/models/trace/insights/ThirdPartyWeb.js.map +1 -0
  189. package/models/trace/insights/Viewport.d.ts +5 -2
  190. package/models/trace/insights/Viewport.js +14 -9
  191. package/models/trace/insights/Viewport.js.map +1 -1
  192. package/models/trace/insights/insights-tsconfig.json +9 -0
  193. package/models/trace/insights/insights.d.ts +1 -0
  194. package/models/trace/insights/insights.js +1 -0
  195. package/models/trace/insights/insights.js.map +1 -1
  196. package/models/trace/insights/types.d.ts +43 -25
  197. package/models/trace/insights/types.js.map +1 -1
  198. package/models/trace/lantern/core/NetworkAnalyzer.d.ts +6 -6
  199. package/models/trace/lantern/core/NetworkAnalyzer.js +12 -12
  200. package/models/trace/lantern/core/NetworkAnalyzer.js.map +1 -1
  201. package/models/trace/lantern/graph/BaseNode.d.ts +4 -4
  202. package/models/trace/lantern/graph/BaseNode.js +21 -21
  203. package/models/trace/lantern/graph/BaseNode.js.map +1 -1
  204. package/models/trace/lantern/graph/CPUNode.d.ts +1 -1
  205. package/models/trace/lantern/graph/CPUNode.js +5 -5
  206. package/models/trace/lantern/graph/CPUNode.js.map +1 -1
  207. package/models/trace/lantern/graph/PageDependencyGraph.d.ts +4 -4
  208. package/models/trace/lantern/graph/PageDependencyGraph.js +5 -5
  209. package/models/trace/lantern/graph/PageDependencyGraph.js.map +1 -1
  210. package/models/trace/lantern/simulation/ConnectionPool.d.ts +7 -7
  211. package/models/trace/lantern/simulation/ConnectionPool.js +26 -26
  212. package/models/trace/lantern/simulation/ConnectionPool.js.map +1 -1
  213. package/models/trace/lantern/simulation/DNSCache.d.ts +3 -3
  214. package/models/trace/lantern/simulation/DNSCache.js +11 -11
  215. package/models/trace/lantern/simulation/DNSCache.js.map +1 -1
  216. package/models/trace/lantern/simulation/SimulationTimingMap.d.ts +1 -1
  217. package/models/trace/lantern/simulation/SimulationTimingMap.js +15 -15
  218. package/models/trace/lantern/simulation/SimulationTimingMap.js.map +1 -1
  219. package/models/trace/lantern/simulation/Simulator.d.ts +28 -28
  220. package/models/trace/lantern/simulation/Simulator.js +113 -113
  221. package/models/trace/lantern/simulation/Simulator.js.map +1 -1
  222. package/models/trace/lantern/simulation/TCPConnection.d.ts +9 -9
  223. package/models/trace/lantern/simulation/TCPConnection.js +36 -36
  224. package/models/trace/lantern/simulation/TCPConnection.js.map +1 -1
  225. package/models/trace/root-causes/LayoutShift.d.ts +13 -13
  226. package/models/trace/root-causes/LayoutShift.js +7 -25
  227. package/models/trace/root-causes/LayoutShift.js.map +1 -1
  228. package/models/trace/types/Configuration.d.ts +16 -0
  229. package/models/trace/types/Configuration.js +1 -0
  230. package/models/trace/types/Configuration.js.map +1 -1
  231. package/models/trace/types/Extensions.d.ts +9 -12
  232. package/models/trace/types/Extensions.js +2 -1
  233. package/models/trace/types/Extensions.js.map +1 -1
  234. package/models/trace/types/File.d.ts +55 -23
  235. package/models/trace/types/File.js +15 -3
  236. package/models/trace/types/File.js.map +1 -1
  237. package/models/trace/types/TraceEvents.d.ts +818 -713
  238. package/models/trace/types/TraceEvents.js +270 -277
  239. package/models/trace/types/TraceEvents.js.map +1 -1
  240. package/models/trace/types/types.d.ts +1 -1
  241. package/models/trace/types/types.js +1 -1
  242. package/models/trace/types/types.js.map +1 -1
  243. package/package.json +4 -2
  244. package/test/test-trace-engine.mjs +47 -2
  245. package/third_party/third-party-web/third-party-web.js +1 -0
  246. package/core/platform/PromiseUtilities.d.ts +0 -10
  247. package/core/platform/PromiseUtilities.js +0 -18
  248. package/core/platform/PromiseUtilities.js.map +0 -1
  249. package/core/platform/SetUtilities.d.ts +0 -2
  250. package/core/platform/SetUtilities.js +0 -23
  251. package/core/platform/SetUtilities.js.map +0 -1
  252. package/models/trace/EntriesFilter.d.ts +0 -72
  253. package/models/trace/EntriesFilter.js +0 -296
  254. package/models/trace/EntriesFilter.js.map +0 -1
  255. package/models/trace/LegacyTracingModel.js.map +0 -1
  256. package/models/trace/handlers/EnhancedTracesHandler.d.ts +0 -48
  257. package/models/trace/handlers/EnhancedTracesHandler.js +0 -165
  258. package/models/trace/handlers/EnhancedTracesHandler.js.map +0 -1
  259. package/models/trace/lantern/BaseNode.d.ts +0 -91
  260. package/models/trace/lantern/BaseNode.js +0 -268
  261. package/models/trace/lantern/BaseNode.js.map +0 -1
  262. package/models/trace/lantern/CPUNode.d.ts +0 -24
  263. package/models/trace/lantern/CPUNode.js +0 -64
  264. package/models/trace/lantern/CPUNode.js.map +0 -1
  265. package/models/trace/lantern/LanternError.d.ts +0 -3
  266. package/models/trace/lantern/LanternError.js +0 -7
  267. package/models/trace/lantern/LanternError.js.map +0 -1
  268. package/models/trace/lantern/MetricsModule.d.ts +0 -11
  269. package/models/trace/lantern/MetricsModule.js +0 -14
  270. package/models/trace/lantern/MetricsModule.js.map +0 -1
  271. package/models/trace/lantern/NetworkNode.d.ts +0 -22
  272. package/models/trace/lantern/NetworkNode.js +0 -83
  273. package/models/trace/lantern/NetworkNode.js.map +0 -1
  274. package/models/trace/lantern/PageDependencyGraph.d.ts +0 -43
  275. package/models/trace/lantern/PageDependencyGraph.js +0 -509
  276. package/models/trace/lantern/PageDependencyGraph.js.map +0 -1
  277. package/models/trace/lantern/SimulationModule.d.ts +0 -17
  278. package/models/trace/lantern/SimulationModule.js +0 -13
  279. package/models/trace/lantern/SimulationModule.js.map +0 -1
  280. package/models/trace/lantern/simulation/NetworkAnalyzer.d.ts +0 -112
  281. package/models/trace/lantern/simulation/NetworkAnalyzer.js +0 -486
  282. package/models/trace/lantern/simulation/NetworkAnalyzer.js.map +0 -1
@@ -717,7 +717,9 @@ export declare namespace Audits {
717
717
  WarnAttributeValueExceedsMaxSize = "WarnAttributeValueExceedsMaxSize",
718
718
  WarnDomainNonASCII = "WarnDomainNonASCII",
719
719
  WarnThirdPartyPhaseout = "WarnThirdPartyPhaseout",
720
- WarnCrossSiteRedirectDowngradeChangesInclusion = "WarnCrossSiteRedirectDowngradeChangesInclusion"
720
+ WarnCrossSiteRedirectDowngradeChangesInclusion = "WarnCrossSiteRedirectDowngradeChangesInclusion",
721
+ WarnDeprecationTrialMetadata = "WarnDeprecationTrialMetadata",
722
+ WarnThirdPartyCookieHeuristic = "WarnThirdPartyCookieHeuristic"
721
723
  }
722
724
  const enum CookieOperation {
723
725
  SetCookie = "SetCookie",
@@ -945,7 +947,8 @@ export declare namespace Audits {
945
947
  NoRegisterSourceHeader = "NoRegisterSourceHeader",
946
948
  NoRegisterTriggerHeader = "NoRegisterTriggerHeader",
947
949
  NoRegisterOsSourceHeader = "NoRegisterOsSourceHeader",
948
- NoRegisterOsTriggerHeader = "NoRegisterOsTriggerHeader"
950
+ NoRegisterOsTriggerHeader = "NoRegisterOsTriggerHeader",
951
+ NavigationRegistrationUniqueScopeAlreadySet = "NavigationRegistrationUniqueScopeAlreadySet"
949
952
  }
950
953
  const enum SharedDictionaryError {
951
954
  UseErrorCrossOriginNoCorsRequest = "UseErrorCrossOriginNoCorsRequest",
@@ -1121,7 +1124,7 @@ export declare namespace Audits {
1121
1124
  ThirdPartyCookiesBlocked = "ThirdPartyCookiesBlocked",
1122
1125
  NotSignedInWithIdp = "NotSignedInWithIdp",
1123
1126
  MissingTransientUserActivation = "MissingTransientUserActivation",
1124
- ReplacedByButtonMode = "ReplacedByButtonMode",
1127
+ ReplacedByActiveMode = "ReplacedByActiveMode",
1125
1128
  InvalidFieldsSpecified = "InvalidFieldsSpecified",
1126
1129
  RelyingPartyOriginIsOpaque = "RelyingPartyOriginIsOpaque",
1127
1130
  TypeNotMatching = "TypeNotMatching"
@@ -1374,6 +1377,44 @@ export declare namespace Extensions {
1374
1377
  interface GetStorageItemsResponse extends ProtocolResponseWithError {
1375
1378
  data: any;
1376
1379
  }
1380
+ interface RemoveStorageItemsRequest {
1381
+ /**
1382
+ * ID of extension.
1383
+ */
1384
+ id: string;
1385
+ /**
1386
+ * StorageArea to remove data from.
1387
+ */
1388
+ storageArea: StorageArea;
1389
+ /**
1390
+ * Keys to remove.
1391
+ */
1392
+ keys: string[];
1393
+ }
1394
+ interface ClearStorageItemsRequest {
1395
+ /**
1396
+ * ID of extension.
1397
+ */
1398
+ id: string;
1399
+ /**
1400
+ * StorageArea to remove data from.
1401
+ */
1402
+ storageArea: StorageArea;
1403
+ }
1404
+ interface SetStorageItemsRequest {
1405
+ /**
1406
+ * ID of extension.
1407
+ */
1408
+ id: string;
1409
+ /**
1410
+ * StorageArea to set data in.
1411
+ */
1412
+ storageArea: StorageArea;
1413
+ /**
1414
+ * Values to set.
1415
+ */
1416
+ values: any;
1417
+ }
1377
1418
  }
1378
1419
  /**
1379
1420
  * Defines commands and events for Autofill.
@@ -1666,6 +1707,7 @@ export declare namespace Browser {
1666
1707
  VideoCapturePanTiltZoom = "videoCapturePanTiltZoom",
1667
1708
  WakeLockScreen = "wakeLockScreen",
1668
1709
  WakeLockSystem = "wakeLockSystem",
1710
+ WebAppInstallation = "webAppInstallation",
1669
1711
  WindowManagement = "windowManagement"
1670
1712
  }
1671
1713
  const enum PermissionSetting {
@@ -3446,6 +3488,7 @@ export declare namespace DOM {
3446
3488
  After = "after",
3447
3489
  Marker = "marker",
3448
3490
  Backdrop = "backdrop",
3491
+ Column = "column",
3449
3492
  Selection = "selection",
3450
3493
  SearchText = "search-text",
3451
3494
  TargetText = "target-text",
@@ -3455,6 +3498,8 @@ export declare namespace DOM {
3455
3498
  FirstLineInherited = "first-line-inherited",
3456
3499
  ScrollMarker = "scroll-marker",
3457
3500
  ScrollMarkerGroup = "scroll-marker-group",
3501
+ ScrollNextButton = "scroll-next-button",
3502
+ ScrollPrevButton = "scroll-prev-button",
3458
3503
  Scrollbar = "scrollbar",
3459
3504
  ScrollbarThumb = "scrollbar-thumb",
3460
3505
  ScrollbarButton = "scrollbar-button",
@@ -3467,7 +3512,11 @@ export declare namespace DOM {
3467
3512
  ViewTransitionGroup = "view-transition-group",
3468
3513
  ViewTransitionImagePair = "view-transition-image-pair",
3469
3514
  ViewTransitionOld = "view-transition-old",
3470
- ViewTransitionNew = "view-transition-new"
3515
+ ViewTransitionNew = "view-transition-new",
3516
+ Placeholder = "placeholder",
3517
+ FileSelectorButton = "file-selector-button",
3518
+ DetailsContent = "details-content",
3519
+ Picker = "picker"
3471
3520
  }
3472
3521
  /**
3473
3522
  * Shadow root type.
@@ -3636,6 +3685,14 @@ export declare namespace DOM {
3636
3685
  isSVG?: boolean;
3637
3686
  compatibilityMode?: CompatibilityMode;
3638
3687
  assignedSlot?: BackendNode;
3688
+ isScrollable?: boolean;
3689
+ }
3690
+ /**
3691
+ * A structure to hold the top-level node of a detached tree and an array of its retained descendants.
3692
+ */
3693
+ interface DetachedElementInfo {
3694
+ treeNode: Node;
3695
+ retainedNodeIds: NodeId[];
3639
3696
  }
3640
3697
  /**
3641
3698
  * A structure holding an RGBA color.
@@ -4313,6 +4370,12 @@ export declare namespace DOM {
4313
4370
  interface GetFileInfoResponse extends ProtocolResponseWithError {
4314
4371
  path: string;
4315
4372
  }
4373
+ interface GetDetachedDomNodesResponse extends ProtocolResponseWithError {
4374
+ /**
4375
+ * The list of detached nodes
4376
+ */
4377
+ detachedNodes: DetachedElementInfo[];
4378
+ }
4316
4379
  interface SetInspectedNodeRequest {
4317
4380
  /**
4318
4381
  * DOM node id to be accessible by means of $x command line API.
@@ -4532,6 +4595,19 @@ export declare namespace DOM {
4532
4595
  */
4533
4596
  pseudoElement: Node;
4534
4597
  }
4598
+ /**
4599
+ * Fired when a node's scrollability state changes.
4600
+ */
4601
+ interface ScrollableFlagUpdatedEvent {
4602
+ /**
4603
+ * The id of the node.
4604
+ */
4605
+ nodeId: DOM.NodeId;
4606
+ /**
4607
+ * If the node is scrollable.
4608
+ */
4609
+ isScrollable: boolean;
4610
+ }
4535
4611
  /**
4536
4612
  * Called when a pseudo element is removed from an element.
4537
4613
  */
@@ -5520,7 +5596,6 @@ export declare namespace Emulation {
5520
5596
  Gyroscope = "gyroscope",
5521
5597
  LinearAcceleration = "linear-acceleration",
5522
5598
  Magnetometer = "magnetometer",
5523
- Proximity = "proximity",
5524
5599
  RelativeOrientation = "relative-orientation"
5525
5600
  }
5526
5601
  interface SensorMetadata {
@@ -7320,11 +7395,31 @@ export declare namespace Memory {
7320
7395
  */
7321
7396
  size: number;
7322
7397
  }
7398
+ /**
7399
+ * DOM object counter data.
7400
+ */
7401
+ interface DOMCounter {
7402
+ /**
7403
+ * Object name. Note: object names should be presumed volatile and clients should not expect
7404
+ * the returned names to be consistent across runs.
7405
+ */
7406
+ name: string;
7407
+ /**
7408
+ * Object count.
7409
+ */
7410
+ count: integer;
7411
+ }
7323
7412
  interface GetDOMCountersResponse extends ProtocolResponseWithError {
7324
7413
  documents: integer;
7325
7414
  nodes: integer;
7326
7415
  jsEventListeners: integer;
7327
7416
  }
7417
+ interface GetDOMCountersForLeakDetectionResponse extends ProtocolResponseWithError {
7418
+ /**
7419
+ * DOM object counters.
7420
+ */
7421
+ counters: DOMCounter[];
7422
+ }
7328
7423
  interface SetPressureNotificationsSuppressedRequest {
7329
7424
  /**
7330
7425
  * If true, memory pressure notifications will be suppressed.
@@ -8272,11 +8367,11 @@ export declare namespace Network {
8272
8367
  UserSetting = "UserSetting",
8273
8368
  TPCDMetadata = "TPCDMetadata",
8274
8369
  TPCDDeprecationTrial = "TPCDDeprecationTrial",
8370
+ TopLevelTPCDDeprecationTrial = "TopLevelTPCDDeprecationTrial",
8275
8371
  TPCDHeuristics = "TPCDHeuristics",
8276
8372
  EnterprisePolicy = "EnterprisePolicy",
8277
8373
  StorageAccess = "StorageAccess",
8278
8374
  TopLevelStorageAccess = "TopLevelStorageAccess",
8279
- CorsOptIn = "CorsOptIn",
8280
8375
  Scheme = "Scheme"
8281
8376
  }
8282
8377
  /**
@@ -10650,10 +10745,12 @@ export declare namespace Page {
10650
10745
  ClipboardRead = "clipboard-read",
10651
10746
  ClipboardWrite = "clipboard-write",
10652
10747
  ComputePressure = "compute-pressure",
10748
+ ControlledFrame = "controlled-frame",
10653
10749
  CrossOriginIsolated = "cross-origin-isolated",
10654
10750
  DeferredFetch = "deferred-fetch",
10655
10751
  DigitalCredentialsGet = "digital-credentials-get",
10656
10752
  DirectSockets = "direct-sockets",
10753
+ DirectSocketsPrivate = "direct-sockets-private",
10657
10754
  DisplayCapture = "display-capture",
10658
10755
  DocumentDomain = "document-domain",
10659
10756
  EncryptedMedia = "encrypted-media",
@@ -10679,6 +10776,7 @@ export declare namespace Page {
10679
10776
  OtpCredentials = "otp-credentials",
10680
10777
  Payment = "payment",
10681
10778
  PictureInPicture = "picture-in-picture",
10779
+ Popins = "popins",
10682
10780
  PrivateAggregation = "private-aggregation",
10683
10781
  PrivateStateTokenIssuance = "private-state-token-issuance",
10684
10782
  PrivateStateTokenRedemption = "private-state-token-redemption",
@@ -10699,6 +10797,7 @@ export declare namespace Page {
10699
10797
  Usb = "usb",
10700
10798
  UsbUnrestricted = "usb-unrestricted",
10701
10799
  VerticalScroll = "vertical-scroll",
10800
+ WebAppInstallation = "web-app-installation",
10702
10801
  WebPrinting = "web-printing",
10703
10802
  WebShare = "web-share",
10704
10803
  WindowManagement = "window-management",
@@ -11164,14 +11263,16 @@ export declare namespace Page {
11164
11263
  fixed?: integer;
11165
11264
  }
11166
11265
  const enum ClientNavigationReason {
11266
+ AnchorClick = "anchorClick",
11167
11267
  FormSubmissionGet = "formSubmissionGet",
11168
11268
  FormSubmissionPost = "formSubmissionPost",
11169
11269
  HttpHeaderRefresh = "httpHeaderRefresh",
11170
- ScriptInitiated = "scriptInitiated",
11270
+ InitialFrameNavigation = "initialFrameNavigation",
11171
11271
  MetaTagRefresh = "metaTagRefresh",
11272
+ Other = "other",
11172
11273
  PageBlockInterstitial = "pageBlockInterstitial",
11173
11274
  Reload = "reload",
11174
- AnchorClick = "anchorClick"
11275
+ ScriptInitiated = "scriptInitiated"
11175
11276
  }
11176
11277
  const enum ClientNavigationDisposition {
11177
11278
  CurrentTab = "currentTab",
@@ -11489,6 +11590,7 @@ export declare namespace Page {
11489
11590
  ContentWebUSB = "ContentWebUSB",
11490
11591
  ContentMediaSessionService = "ContentMediaSessionService",
11491
11592
  ContentScreenReader = "ContentScreenReader",
11593
+ ContentDiscarded = "ContentDiscarded",
11492
11594
  EmbedderPopupBlockerTabHelper = "EmbedderPopupBlockerTabHelper",
11493
11595
  EmbedderSafeBrowsingTriggeredPopupBlocker = "EmbedderSafeBrowsingTriggeredPopupBlocker",
11494
11596
  EmbedderSafeBrowsingThreatDetails = "EmbedderSafeBrowsingThreatDetails",
@@ -11504,7 +11606,8 @@ export declare namespace Page {
11504
11606
  EmbedderExtensionMessaging = "EmbedderExtensionMessaging",
11505
11607
  EmbedderExtensionMessagingForOpenPort = "EmbedderExtensionMessagingForOpenPort",
11506
11608
  EmbedderExtensionSentMessageToCachedFrame = "EmbedderExtensionSentMessageToCachedFrame",
11507
- RequestedByWebViewClient = "RequestedByWebViewClient"
11609
+ RequestedByWebViewClient = "RequestedByWebViewClient",
11610
+ PostMessageByWebViewClient = "PostMessageByWebViewClient"
11508
11611
  }
11509
11612
  /**
11510
11613
  * Types of not restored reasons for back-forward cache.
@@ -12301,6 +12404,16 @@ export declare namespace Page {
12301
12404
  frameId: FrameId;
12302
12405
  reason: FrameDetachedEventReason;
12303
12406
  }
12407
+ /**
12408
+ * Fired before frame subtree is detached. Emitted before any frame of the
12409
+ * subtree is actually detached.
12410
+ */
12411
+ interface FrameSubtreeWillBeDetachedEvent {
12412
+ /**
12413
+ * Id of the frame that is the root of the subtree that will be detached.
12414
+ */
12415
+ frameId: FrameId;
12416
+ }
12304
12417
  /**
12305
12418
  * Fired once navigation of the frame has completed. Frame is now associated with the new loader.
12306
12419
  */
@@ -12515,6 +12628,11 @@ export declare namespace Page {
12515
12628
  interface LoadEventFiredEvent {
12516
12629
  timestamp: Network.MonotonicTime;
12517
12630
  }
12631
+ const enum NavigatedWithinDocumentEventNavigationType {
12632
+ Fragment = "fragment",
12633
+ HistoryAPI = "historyApi",
12634
+ Other = "other"
12635
+ }
12518
12636
  /**
12519
12637
  * Fired when same-document navigation happens, e.g. due to history API usage or anchor navigation.
12520
12638
  */
@@ -12527,6 +12645,10 @@ export declare namespace Page {
12527
12645
  * Frame's new url.
12528
12646
  */
12529
12647
  url: string;
12648
+ /**
12649
+ * Navigation type
12650
+ */
12651
+ navigationType: NavigatedWithinDocumentEventNavigationType;
12530
12652
  }
12531
12653
  /**
12532
12654
  * Compressed image data requested by the `startScreencast`.
@@ -13424,6 +13546,15 @@ export declare namespace Storage {
13424
13546
  debugData: AttributionReportingAggregatableDebugReportingData[];
13425
13547
  aggregationCoordinatorOrigin?: string;
13426
13548
  }
13549
+ interface AttributionScopesData {
13550
+ values: string[];
13551
+ /**
13552
+ * number instead of integer because not all uint32 can be represented by
13553
+ * int
13554
+ */
13555
+ limit: number;
13556
+ maxEventStates: number;
13557
+ }
13427
13558
  interface AttributionReportingSourceRegistration {
13428
13559
  time: Network.TimeSinceEpoch;
13429
13560
  /**
@@ -13447,6 +13578,7 @@ export declare namespace Storage {
13447
13578
  triggerDataMatching: AttributionReportingTriggerDataMatching;
13448
13579
  destinationLimitPriority: SignedInt64AsBase10;
13449
13580
  aggregatableDebugReportingConfig: AttributionReportingAggregatableDebugReportingConfig;
13581
+ scopesData?: AttributionScopesData;
13450
13582
  }
13451
13583
  const enum AttributionReportingSourceRegistrationResult {
13452
13584
  Success = "success",
@@ -13461,7 +13593,9 @@ export declare namespace Storage {
13461
13593
  DestinationBothLimitsReached = "destinationBothLimitsReached",
13462
13594
  ReportingOriginsPerSiteLimitReached = "reportingOriginsPerSiteLimitReached",
13463
13595
  ExceedsMaxChannelCapacity = "exceedsMaxChannelCapacity",
13596
+ ExceedsMaxScopesChannelCapacity = "exceedsMaxScopesChannelCapacity",
13464
13597
  ExceedsMaxTriggerStateCardinality = "exceedsMaxTriggerStateCardinality",
13598
+ ExceedsMaxEventStatesLimit = "exceedsMaxEventStatesLimit",
13465
13599
  DestinationPerDayReportingLimitReached = "destinationPerDayReportingLimitReached"
13466
13600
  }
13467
13601
  const enum AttributionReportingSourceRegistrationTimeConfig {
@@ -13509,6 +13643,7 @@ export declare namespace Storage {
13509
13643
  sourceRegistrationTimeConfig: AttributionReportingSourceRegistrationTimeConfig;
13510
13644
  triggerContextId?: string;
13511
13645
  aggregatableDebugReportingConfig: AttributionReportingAggregatableDebugReportingConfig;
13646
+ scopes: string[];
13512
13647
  }
13513
13648
  const enum AttributionReportingEventLevelResult {
13514
13649
  Success = "success",
@@ -15459,6 +15594,17 @@ export declare namespace WebAuthn {
15459
15594
  * defaultBackupState value.
15460
15595
  */
15461
15596
  backupState?: boolean;
15597
+ /**
15598
+ * The credential's user.name property. Equivalent to empty if not set.
15599
+ * https://w3c.github.io/webauthn/#dom-publickeycredentialentity-name
15600
+ */
15601
+ userName?: string;
15602
+ /**
15603
+ * The credential's user.displayName property. Equivalent to empty if
15604
+ * not set.
15605
+ * https://w3c.github.io/webauthn/#dom-publickeycredentialuserentity-displayname
15606
+ */
15607
+ userDisplayName?: string;
15462
15608
  }
15463
15609
  interface EnableRequest {
15464
15610
  /**
@@ -15542,6 +15688,22 @@ export declare namespace WebAuthn {
15542
15688
  authenticatorId: AuthenticatorId;
15543
15689
  credential: Credential;
15544
15690
  }
15691
+ /**
15692
+ * Triggered when a credential is deleted, e.g. through
15693
+ * PublicKeyCredential.signalUnknownCredential().
15694
+ */
15695
+ interface CredentialDeletedEvent {
15696
+ authenticatorId: AuthenticatorId;
15697
+ credentialId: binary;
15698
+ }
15699
+ /**
15700
+ * Triggered when a credential is updated, e.g. through
15701
+ * PublicKeyCredential.signalCurrentUserDetails().
15702
+ */
15703
+ interface CredentialUpdatedEvent {
15704
+ authenticatorId: AuthenticatorId;
15705
+ credential: Credential;
15706
+ }
15545
15707
  /**
15546
15708
  * Triggered when a credential is used in a webauthn assertion.
15547
15709
  */
@@ -15874,7 +16036,9 @@ export declare namespace Preload {
15874
16036
  AllPrerenderingCanceled = "AllPrerenderingCanceled",
15875
16037
  WindowClosed = "WindowClosed",
15876
16038
  SlowNetwork = "SlowNetwork",
15877
- OtherPrerenderedPageActivated = "OtherPrerenderedPageActivated"
16039
+ OtherPrerenderedPageActivated = "OtherPrerenderedPageActivated",
16040
+ V8OptimizerDisabled = "V8OptimizerDisabled",
16041
+ PrerenderFailedDuringPrefetch = "PrerenderFailedDuringPrefetch"
15878
16042
  }
15879
16043
  /**
15880
16044
  * Preloading status values, see also PreloadingTriggeringOutcome. This
@@ -15899,7 +16063,6 @@ export declare namespace Preload {
15899
16063
  PrefetchFailedMIMENotSupported = "PrefetchFailedMIMENotSupported",
15900
16064
  PrefetchFailedNetError = "PrefetchFailedNetError",
15901
16065
  PrefetchFailedNon2XX = "PrefetchFailedNon2XX",
15902
- PrefetchFailedPerPageLimitExceeded = "PrefetchFailedPerPageLimitExceeded",
15903
16066
  PrefetchEvictedAfterCandidateRemoved = "PrefetchEvictedAfterCandidateRemoved",
15904
16067
  PrefetchEvictedForNewerPrefetch = "PrefetchEvictedForNewerPrefetch",
15905
16068
  PrefetchHeldback = "PrefetchHeldback",
@@ -16179,6 +16342,78 @@ export declare namespace PWA {
16179
16342
  displayMode?: DisplayMode;
16180
16343
  }
16181
16344
  }
16345
+ /**
16346
+ * This domain allows configuring virtual Bluetooth devices to test
16347
+ * the web-bluetooth API.
16348
+ */
16349
+ export declare namespace BluetoothEmulation {
16350
+ /**
16351
+ * Indicates the various states of Central.
16352
+ */
16353
+ const enum CentralState {
16354
+ Absent = "absent",
16355
+ PoweredOff = "powered-off",
16356
+ PoweredOn = "powered-on"
16357
+ }
16358
+ /**
16359
+ * Stores the manufacturer data
16360
+ */
16361
+ interface ManufacturerData {
16362
+ /**
16363
+ * Company identifier
16364
+ * https://bitbucket.org/bluetooth-SIG/public/src/main/assigned_numbers/company_identifiers/company_identifiers.yaml
16365
+ * https://usb.org/developers
16366
+ */
16367
+ key: integer;
16368
+ /**
16369
+ * Manufacturer-specific data
16370
+ */
16371
+ data: binary;
16372
+ }
16373
+ /**
16374
+ * Stores the byte data of the advertisement packet sent by a Bluetooth device.
16375
+ */
16376
+ interface ScanRecord {
16377
+ name?: string;
16378
+ uuids?: string[];
16379
+ /**
16380
+ * Stores the external appearance description of the device.
16381
+ */
16382
+ appearance?: integer;
16383
+ /**
16384
+ * Stores the transmission power of a broadcasting device.
16385
+ */
16386
+ txPower?: integer;
16387
+ /**
16388
+ * Key is the company identifier and the value is an array of bytes of
16389
+ * manufacturer specific data.
16390
+ */
16391
+ manufacturerData?: ManufacturerData[];
16392
+ }
16393
+ /**
16394
+ * Stores the advertisement packet information that is sent by a Bluetooth device.
16395
+ */
16396
+ interface ScanEntry {
16397
+ deviceAddress: string;
16398
+ rssi: integer;
16399
+ scanRecord: ScanRecord;
16400
+ }
16401
+ interface EnableRequest {
16402
+ /**
16403
+ * State of the simulated central.
16404
+ */
16405
+ state: CentralState;
16406
+ }
16407
+ interface SimulatePreconnectedPeripheralRequest {
16408
+ address: string;
16409
+ name: string;
16410
+ manufacturerData: ManufacturerData[];
16411
+ knownServiceUuids: string[];
16412
+ }
16413
+ interface SimulateAdvertisementRequest {
16414
+ entry: ScanEntry;
16415
+ }
16416
+ }
16182
16417
  /**
16183
16418
  * Debugger domain exposes JavaScript debugging capabilities. It allows setting and removing
16184
16419
  * breakpoints, stepping through execution, exploring stack traces, etc.
@@ -16357,7 +16592,6 @@ export declare namespace Debugger {
16357
16592
  WebAssembly = "WebAssembly"
16358
16593
  }
16359
16594
  const enum DebugSymbolsType {
16360
- None = "None",
16361
16595
  SourceMap = "SourceMap",
16362
16596
  EmbeddedDWARF = "EmbeddedDWARF",
16363
16597
  ExternalDWARF = "ExternalDWARF"
@@ -16618,11 +16852,21 @@ export declare namespace Debugger {
16618
16852
  */
16619
16853
  maxDepth: integer;
16620
16854
  }
16855
+ interface SetBlackboxExecutionContextsRequest {
16856
+ /**
16857
+ * Array of execution context unique ids for the debugger to ignore.
16858
+ */
16859
+ uniqueIds: string[];
16860
+ }
16621
16861
  interface SetBlackboxPatternsRequest {
16622
16862
  /**
16623
16863
  * Array of regexps that will be used to check script url for blackbox state.
16624
16864
  */
16625
16865
  patterns: string[];
16866
+ /**
16867
+ * If true, also ignore scripts with no source url.
16868
+ */
16869
+ skipAnonymous?: boolean;
16626
16870
  }
16627
16871
  interface SetBlackboxedRangesRequest {
16628
16872
  /**
@@ -17052,9 +17296,9 @@ export declare namespace Debugger {
17052
17296
  */
17053
17297
  scriptLanguage?: Debugger.ScriptLanguage;
17054
17298
  /**
17055
- * If the scriptLanguage is WebASsembly, the source of debug symbols for the module.
17299
+ * If the scriptLanguage is WebAssembly, the source of debug symbols for the module.
17056
17300
  */
17057
- debugSymbols?: Debugger.DebugSymbols;
17301
+ debugSymbols?: Debugger.DebugSymbols[];
17058
17302
  /**
17059
17303
  * The name the embedder supplied for this script.
17060
17304
  */
@@ -1,8 +1,8 @@
1
1
  import * as Handlers from './handlers/handlers.js';
2
2
  import * as Lantern from './lantern/lantern.js';
3
3
  import type * as Types from './types/types.js';
4
- type NetworkRequest = Lantern.Types.NetworkRequest<Types.TraceEvents.SyntheticNetworkRequest>;
5
- declare function createProcessedNavigation(traceEngineData: Handlers.Types.TraceParseData): Lantern.Types.Simulation.ProcessedNavigation;
6
- declare function createNetworkRequests(trace: Lantern.Types.Trace, traceEngineData: Handlers.Types.TraceParseData): NetworkRequest[];
7
- declare function createGraph(requests: Lantern.Types.NetworkRequest[], trace: Lantern.Types.Trace, traceEngineData: Handlers.Types.TraceParseData, url?: Lantern.Types.Simulation.URL): Lantern.Graph.Node<Types.TraceEvents.SyntheticNetworkRequest>;
4
+ type NetworkRequest = Lantern.Types.NetworkRequest<Types.Events.SyntheticNetworkRequest>;
5
+ declare function createProcessedNavigation(parsedTrace: Handlers.Types.ParsedTrace, frameId: string, navigationId: string): Lantern.Types.Simulation.ProcessedNavigation;
6
+ declare function createNetworkRequests(trace: Lantern.Types.Trace, parsedTrace: Handlers.Types.ParsedTrace, startTime?: number, endTime?: number): NetworkRequest[];
7
+ declare function createGraph(requests: Lantern.Types.NetworkRequest[], trace: Lantern.Types.Trace, parsedTrace: Handlers.Types.ParsedTrace, url?: Lantern.Types.Simulation.URL): Lantern.Graph.Node<Types.Events.SyntheticNetworkRequest>;
8
8
  export { createProcessedNavigation, createNetworkRequests, createGraph, };
@@ -3,15 +3,12 @@
3
3
  // found in the LICENSE file.
4
4
  import * as Handlers from './handlers/handlers.js';
5
5
  import * as Lantern from './lantern/lantern.js';
6
- function createProcessedNavigation(traceEngineData) {
7
- const Meta = traceEngineData.Meta;
8
- const frameId = Meta.mainFrameId;
9
- const scoresByNav = traceEngineData.PageLoadMetrics.metricScoresByFrameId.get(frameId);
6
+ function createProcessedNavigation(parsedTrace, frameId, navigationId) {
7
+ const scoresByNav = parsedTrace.PageLoadMetrics.metricScoresByFrameId.get(frameId);
10
8
  if (!scoresByNav) {
11
- throw new Lantern.Core.LanternError('missing metric scores for main frame');
9
+ throw new Lantern.Core.LanternError('missing metric scores for frame');
12
10
  }
13
- const lastNavigationId = Meta.mainFrameNavigations.at(-1)?.args.data?.navigationId;
14
- const scores = lastNavigationId && scoresByNav.get(lastNavigationId);
11
+ const scores = scoresByNav.get(navigationId);
15
12
  if (!scores) {
16
13
  throw new Lantern.Core.LanternError('missing metric scores for specified navigation');
17
14
  }
@@ -51,7 +48,7 @@ function createParsedUrl(url) {
51
48
  * Returns a map of `pid` -> `tid[]`.
52
49
  */
53
50
  function findWorkerThreads(trace) {
54
- // TODO: WorkersHandler in TraceEngine needs to be updated to also include `pid` (only had `tid`).
51
+ // TODO: WorkersHandler in Trace Engine needs to be updated to also include `pid` (only had `tid`).
55
52
  const workerThreads = new Map();
56
53
  const workerCreationEvents = ['ServiceWorker thread', 'DedicatedWorker thread'];
57
54
  for (const event of trace.traceEvents) {
@@ -71,7 +68,7 @@ function findWorkerThreads(trace) {
71
68
  }
72
69
  return workerThreads;
73
70
  }
74
- function createLanternRequest(traceEngineData, workerThreads, request) {
71
+ function createLanternRequest(parsedTrace, workerThreads, request) {
75
72
  if (request.args.data.connectionId === undefined || request.args.data.connectionReused === undefined) {
76
73
  throw new Lantern.Core.LanternError('Trace is too old');
77
74
  }
@@ -95,9 +92,9 @@ function createLanternRequest(traceEngineData, workerThreads, request) {
95
92
  if (tids?.includes(request.tid)) {
96
93
  fromWorker = true;
97
94
  }
98
- // TraceEngine collects worker thread ids in a different manner than `workerThreads` does.
95
+ // Trace Engine collects worker thread ids in a different manner than `workerThreads` does.
99
96
  // AFAIK these should be equivalent, but in case they are not let's also check this for now.
100
- if (traceEngineData.Workers.workerIdByThread.has(request.tid)) {
97
+ if (parsedTrace.Workers.workerIdByThread.has(request.tid)) {
101
98
  fromWorker = true;
102
99
  }
103
100
  // `initiator` in the trace does not contain the stack trace for JS-initiated
@@ -238,16 +235,18 @@ function linkInitiators(lanternRequests) {
238
235
  }
239
236
  }
240
237
  }
241
- function createNetworkRequests(trace, traceEngineData) {
238
+ function createNetworkRequests(trace, parsedTrace, startTime = 0, endTime = Number.POSITIVE_INFINITY) {
242
239
  const workerThreads = findWorkerThreads(trace);
243
240
  const lanternRequests = [];
244
- for (const request of traceEngineData.NetworkRequests.byTime) {
245
- const lanternRequest = createLanternRequest(traceEngineData, workerThreads, request);
246
- if (lanternRequest) {
247
- lanternRequests.push(lanternRequest);
241
+ for (const request of parsedTrace.NetworkRequests.byTime) {
242
+ if (request.ts >= startTime && request.ts < endTime) {
243
+ const lanternRequest = createLanternRequest(parsedTrace, workerThreads, request);
244
+ if (lanternRequest) {
245
+ lanternRequests.push(lanternRequest);
246
+ }
248
247
  }
249
248
  }
250
- // TraceEngine consolidates all redirects into a single request object, but lantern needs
249
+ // Trace Engine consolidates all redirects into a single request object, but lantern needs
251
250
  // an entry for each redirected request.
252
251
  for (const request of [...lanternRequests]) {
253
252
  if (!request.rawRequest) {
@@ -287,10 +286,10 @@ function createNetworkRequests(trace, traceEngineData) {
287
286
  };
288
287
  redirectedRequest.url = redirect.url;
289
288
  redirectedRequest.parsedURL = createParsedUrl(redirect.url);
290
- // TODO: TraceEngine is not retaining the actual status code.
289
+ // TODO: Trace Engine is not retaining the actual status code.
291
290
  redirectedRequest.statusCode = 302;
292
291
  redirectedRequest.resourceType = undefined;
293
- // TODO: TraceEngine is not retaining transfer size of redirected request.
292
+ // TODO: Trace Engine is not retaining transfer size of redirected request.
294
293
  redirectedRequest.transferSize = 400;
295
294
  requestChain.push(redirectedRequest);
296
295
  lanternRequests.push(redirectedRequest);
@@ -317,8 +316,8 @@ function createNetworkRequests(trace, traceEngineData) {
317
316
  // above.
318
317
  return lanternRequests.sort((a, b) => a.rendererStartTime - b.rendererStartTime);
319
318
  }
320
- function collectMainThreadEvents(trace, traceEngineData) {
321
- const Meta = traceEngineData.Meta;
319
+ function collectMainThreadEvents(trace, parsedTrace) {
320
+ const Meta = parsedTrace.Meta;
322
321
  const mainFramePids = Meta.mainFrameNavigations.length ? new Set(Meta.mainFrameNavigations.map(nav => nav.pid)) :
323
322
  Meta.topLevelRendererIds;
324
323
  const rendererPidToTid = new Map();
@@ -347,8 +346,8 @@ function collectMainThreadEvents(trace, traceEngineData) {
347
346
  }
348
347
  return trace.traceEvents.filter(e => rendererPidToTid.get(e.pid) === e.tid);
349
348
  }
350
- function createGraph(requests, trace, traceEngineData, url) {
351
- const mainThreadEvents = collectMainThreadEvents(trace, traceEngineData);
349
+ function createGraph(requests, trace, parsedTrace, url) {
350
+ const mainThreadEvents = collectMainThreadEvents(trace, parsedTrace);
352
351
  // url defines the initial request that the Lantern graph starts at (the root node) and the
353
352
  // main document request. These are equal if there are no redirects.
354
353
  if (!url) {