chrome-devtools-frontend 1.0.1376716 → 1.0.1380117

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 (434) hide show
  1. package/config/gni/devtools_grd_files.gni +15 -7
  2. package/config/gni/devtools_image_files.gni +2 -0
  3. package/front_end/Images/src/animation.svg +3 -0
  4. package/front_end/Images/src/brush-2.svg +3 -0
  5. package/front_end/core/common/SettingRegistration.ts +1 -1
  6. package/front_end/core/host/AidaClient.ts +1 -0
  7. package/front_end/core/host/InspectorFrontendHost.ts +4 -0
  8. package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
  9. package/front_end/core/i18n/ByteUtilities.ts +65 -0
  10. package/front_end/core/i18n/NumberFormatter.ts +75 -0
  11. package/front_end/core/i18n/i18n.ts +4 -0
  12. package/front_end/core/i18n/time-utilities.test.ts +20 -2
  13. package/front_end/core/i18n/time-utilities.ts +125 -86
  14. package/front_end/core/platform/NumberUtilities.test.ts +3 -26
  15. package/front_end/core/platform/NumberUtilities.ts +0 -20
  16. package/front_end/core/root/Runtime.ts +6 -3
  17. package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
  18. package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
  19. package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
  20. package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
  21. package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
  22. package/front_end/core/sdk/CSSModel.ts +18 -0
  23. package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
  24. package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
  25. package/front_end/core/sdk/sdk-meta.ts +8 -0
  26. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
  27. package/front_end/generated/ARIAProperties.js +4 -0
  28. package/front_end/generated/InspectorBackendCommands.js +8 -6
  29. package/front_end/generated/SupportedCSSProperties.js +17 -4
  30. package/front_end/generated/protocol-mapping.d.ts +15 -1
  31. package/front_end/generated/protocol-proxy-api.d.ts +14 -1
  32. package/front_end/generated/protocol.ts +26 -2
  33. package/front_end/models/extensions/ExtensionAPI.ts +9 -1
  34. package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
  35. package/front_end/models/javascript_metadata/NativeFunctions.js +8 -21
  36. package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
  37. package/front_end/models/persistence/EditFileSystemView.ts +19 -9
  38. package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
  39. package/front_end/models/persistence/editFileSystemView.css +35 -15
  40. package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
  41. package/front_end/models/timeline_model/timeline_model.ts +0 -6
  42. package/front_end/models/trace/Processor.test.ts +18 -17
  43. package/front_end/models/trace/Processor.ts +10 -14
  44. package/front_end/models/trace/README.md +0 -1
  45. package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
  46. package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
  47. package/front_end/models/trace/extras/TraceFilter.ts +62 -0
  48. package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
  49. package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +65 -59
  50. package/front_end/models/trace/extras/extras.ts +3 -0
  51. package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
  52. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
  53. package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
  54. package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
  55. package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
  56. package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
  57. package/front_end/models/trace/handlers/ImagePaintingHandler.ts +3 -0
  58. package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
  59. package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
  60. package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
  61. package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
  62. package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
  63. package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
  64. package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
  65. package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
  66. package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
  67. package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
  68. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
  69. package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
  70. package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
  71. package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
  72. package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
  73. package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
  74. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
  75. package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
  76. package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
  77. package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
  78. package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
  79. package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
  80. package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
  81. package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
  82. package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
  83. package/front_end/models/trace/handlers/Threads.test.ts +1 -2
  84. package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
  85. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
  86. package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
  87. package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
  88. package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
  89. package/front_end/models/trace/handlers/types.ts +1 -8
  90. package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
  91. package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +24 -5
  92. package/front_end/models/trace/insights/Common.ts +5 -55
  93. package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
  94. package/front_end/models/trace/insights/DocumentLatency.ts +26 -6
  95. package/front_end/models/trace/insights/FontDisplay.ts +24 -5
  96. package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
  97. package/front_end/models/trace/insights/InteractionToNextPaint.ts +26 -6
  98. package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
  99. package/front_end/models/trace/insights/LCPDiscovery.ts +101 -0
  100. package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
  101. package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +37 -38
  102. package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +4 -3
  103. package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
  104. package/front_end/models/trace/insights/RenderBlocking.ts +33 -28
  105. package/front_end/models/trace/insights/SlowCSSSelector.ts +26 -5
  106. package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
  107. package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +24 -5
  108. package/front_end/models/trace/insights/Viewport.test.ts +1 -1
  109. package/front_end/models/trace/insights/Viewport.ts +27 -9
  110. package/front_end/models/trace/insights/insights.ts +1 -1
  111. package/front_end/models/trace/insights/types.ts +11 -9
  112. package/front_end/models/trace/types/TraceEvents.ts +51 -22
  113. package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
  114. package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
  115. package/front_end/panels/application/StorageView.ts +3 -3
  116. package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
  117. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +34 -31
  118. package/front_end/panels/coverage/CoverageView.ts +3 -3
  119. package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
  120. package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
  121. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
  122. package/front_end/panels/elements/ElementStatePaneWidget.test.ts +84 -30
  123. package/front_end/panels/elements/ElementStatePaneWidget.ts +42 -24
  124. package/front_end/panels/elements/ElementsTreeElement.ts +24 -11
  125. package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
  126. package/front_end/panels/elements/PropertyMatchers.ts +3 -0
  127. package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
  128. package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
  129. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
  130. package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
  131. package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
  132. package/front_end/panels/freestyler/AiAgent.test.ts +58 -1
  133. package/front_end/panels/freestyler/AiAgent.ts +58 -3
  134. package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +99 -23
  135. package/front_end/panels/freestyler/DrJonesFileAgent.ts +53 -20
  136. package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +15 -7
  137. package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +36 -15
  138. package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +6 -6
  139. package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +48 -8
  140. package/front_end/panels/freestyler/FreestylerAgent.test.ts +15 -14
  141. package/front_end/panels/freestyler/FreestylerAgent.ts +52 -8
  142. package/front_end/panels/freestyler/FreestylerPanel.test.ts +539 -39
  143. package/front_end/panels/freestyler/FreestylerPanel.ts +349 -215
  144. package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
  145. package/front_end/panels/freestyler/components/FreestylerChatUi.ts +320 -268
  146. package/front_end/panels/freestyler/components/UserActionRow.ts +156 -47
  147. package/front_end/panels/freestyler/components/freestylerChatUi.css +69 -34
  148. package/front_end/panels/freestyler/components/userActionRow.css +40 -67
  149. package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
  150. package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
  151. package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -2
  152. package/front_end/panels/layer_viewer/PaintProfilerView.ts +5 -5
  153. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
  154. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
  155. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
  156. package/front_end/panels/network/BinaryResourceView.ts +6 -7
  157. package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
  158. package/front_end/panels/network/NetworkDataGridNode.ts +3 -3
  159. package/front_end/panels/network/NetworkLogView.ts +7 -8
  160. package/front_end/panels/network/RequestTimingView.test.ts +35 -1
  161. package/front_end/panels/network/RequestTimingView.ts +96 -0
  162. package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
  163. package/front_end/panels/network/networkTimingTable.css +2 -1
  164. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
  165. package/front_end/panels/profiler/HeapProfileView.ts +3 -3
  166. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
  167. package/front_end/panels/profiler/HeapTimelineOverview.ts +12 -12
  168. package/front_end/panels/profiler/IsolateSelector.ts +3 -4
  169. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +1 -1
  170. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
  171. package/front_end/panels/profiler/ProfileView.ts +1 -1
  172. package/front_end/panels/recorder/components/RecordingView.ts +2 -2
  173. package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
  174. package/front_end/panels/recorder/recorderController.css +0 -4
  175. package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
  176. package/front_end/panels/security/CookieReportView.ts +120 -0
  177. package/front_end/panels/security/SecurityPanel.ts +8 -2
  178. package/front_end/panels/security/cookieReportView.css +46 -0
  179. package/front_end/panels/security/sidebar.css +1 -2
  180. package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
  181. package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
  182. package/front_end/panels/settings/AISettingsTab.ts +6 -15
  183. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
  184. package/front_end/panels/settings/SettingsScreen.ts +61 -56
  185. package/front_end/panels/settings/aiSettingsTab.css +3 -14
  186. package/front_end/panels/settings/components/SyncSection.ts +1 -2
  187. package/front_end/panels/settings/components/syncSection.css +0 -10
  188. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +3 -1
  189. package/front_end/panels/settings/keybindsSettingsTab.css +7 -10
  190. package/front_end/panels/settings/settingsScreen.css +27 -125
  191. package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
  192. package/front_end/panels/sources/NavigatorView.ts +11 -13
  193. package/front_end/panels/timeline/ActiveFilters.ts +3 -4
  194. package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -2
  195. package/front_end/panels/timeline/CountersGraph.ts +2 -4
  196. package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
  197. package/front_end/panels/timeline/README.md +2 -1
  198. package/front_end/panels/timeline/TimelineController.ts +14 -4
  199. package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
  200. package/front_end/panels/timeline/TimelineFilters.ts +3 -4
  201. package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
  202. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -10
  203. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -2
  204. package/front_end/panels/timeline/TimelineFlameChartView.ts +21 -12
  205. package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
  206. package/front_end/panels/timeline/TimelineLoader.ts +3 -4
  207. package/front_end/panels/timeline/TimelineMiniMap.ts +10 -0
  208. package/front_end/panels/timeline/TimelinePanel.ts +20 -8
  209. package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
  210. package/front_end/panels/timeline/TimelineTreeView.ts +35 -40
  211. package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
  212. package/front_end/panels/timeline/TimelineUIUtils.ts +12 -14
  213. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
  214. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +3 -3
  215. package/front_end/panels/timeline/components/LiveMetricsView.ts +14 -26
  216. package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
  217. package/front_end/panels/timeline/components/MetricCard.ts +46 -0
  218. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
  219. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +2 -0
  220. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +41 -36
  221. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +19 -33
  222. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +29 -40
  223. package/front_end/panels/timeline/components/insights/FontDisplay.ts +17 -23
  224. package/front_end/panels/timeline/components/insights/Helpers.ts +12 -16
  225. package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +14 -26
  226. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +25 -37
  227. package/front_end/panels/timeline/components/insights/LCPPhases.ts +20 -47
  228. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +19 -28
  229. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +1 -2
  230. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +18 -31
  231. package/front_end/panels/timeline/components/insights/Table.ts +5 -3
  232. package/front_end/panels/timeline/components/insights/ThirdParties.ts +18 -25
  233. package/front_end/panels/timeline/components/insights/Viewport.ts +14 -25
  234. package/front_end/panels/timeline/components/liveMetricsView.css +5 -13
  235. package/front_end/panels/timeline/components/metricCard.css +11 -0
  236. package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
  237. package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
  238. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +13 -12
  239. package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
  240. package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
  241. package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
  242. package/front_end/testing/EnvironmentHelpers.ts +5 -18
  243. package/front_end/testing/InsightHelpers.ts +4 -4
  244. package/front_end/testing/TraceHelpers.ts +1 -1
  245. package/front_end/third_party/puppeteer/README.chromium +2 -2
  246. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +2 -3
  247. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  249. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
  250. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
  252. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
  254. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
  256. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
  257. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
  259. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
  260. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  263. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
  264. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
  266. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
  268. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
  270. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
  272. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
  274. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
  275. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
  276. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
  278. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
  279. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
  280. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  281. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
  282. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
  283. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
  284. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
  285. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
  286. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
  287. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
  288. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
  289. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
  290. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
  291. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
  292. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
  293. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
  294. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  295. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  296. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  297. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  298. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  299. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  300. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  301. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  302. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  303. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
  304. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  305. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
  306. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
  307. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +51 -10
  308. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +215 -97
  309. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +2 -3
  310. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  311. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  312. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
  313. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  314. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
  315. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  316. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
  317. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
  318. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
  319. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
  320. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  321. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
  322. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
  323. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  324. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
  325. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  326. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
  327. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
  328. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
  329. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
  330. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
  331. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  332. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
  333. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
  334. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
  335. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
  336. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
  337. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
  338. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
  339. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  340. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
  341. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
  342. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
  343. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  344. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
  345. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
  346. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
  347. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
  348. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
  349. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
  350. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
  351. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
  352. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
  353. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
  354. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
  355. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
  356. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
  357. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  358. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  359. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  360. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  361. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  362. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  363. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  364. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
  365. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  366. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
  367. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
  368. package/front_end/third_party/puppeteer/package/lib/types.d.ts +51 -10
  369. package/front_end/third_party/puppeteer/package/package.json +4 -4
  370. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +2 -3
  371. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
  372. package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
  373. package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
  374. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
  375. package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
  376. package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
  377. package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
  378. package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
  379. package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
  380. package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
  381. package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
  382. package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
  383. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  384. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  385. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  386. package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
  387. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
  388. package/front_end/ui/components/buttons/Button.test.ts +14 -0
  389. package/front_end/ui/components/buttons/Button.ts +27 -4
  390. package/front_end/ui/components/cards/card.css +7 -4
  391. package/front_end/ui/components/dialogs/Dialog.ts +2 -4
  392. package/front_end/ui/components/dialogs/ShortcutDialog.ts +15 -13
  393. package/front_end/ui/components/dialogs/dialog.css +2 -6
  394. package/front_end/ui/components/dialogs/shortcutDialog.css +33 -41
  395. package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
  396. package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
  397. package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
  398. package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
  399. package/front_end/ui/components/markdown_view/MarkdownView.ts +77 -14
  400. package/front_end/ui/components/markdown_view/markdownView.css +15 -0
  401. package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
  402. package/front_end/ui/legacy/ContextMenu.ts +2 -2
  403. package/front_end/ui/legacy/InplaceEditor.ts +18 -14
  404. package/front_end/ui/legacy/TabbedPane.ts +0 -14
  405. package/front_end/ui/legacy/UIUtils.ts +0 -7
  406. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
  407. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
  408. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +20 -11
  409. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
  410. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
  411. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  412. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +5 -22
  413. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
  414. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
  415. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
  416. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +6 -6
  417. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +22 -4
  418. package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
  419. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
  420. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
  421. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
  422. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  423. package/front_end/ui/legacy/textPrompt.css +1 -1
  424. package/front_end/ui/legacy/toolbar.css +4 -5
  425. package/front_end/ui/visual_logging/KnownContextValues.ts +174 -0
  426. package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
  427. package/package.json +7 -6
  428. package/scripts/build/ninja/bundle.gni +3 -3
  429. package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
  430. package/scripts/devtools_paths.py +8 -4
  431. package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
  432. package/scripts/tools/update_goldens_v2.py +1 -1
  433. package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
  434. /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -2,19 +2,20 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import type * as Protocol from '../../generated/protocol.js';
6
- import * as Timeline from '../../panels/timeline/timeline.js';
7
- import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
5
+ import type * as Protocol from '../../../generated/protocol.js';
6
+ import * as Timeline from '../../../panels/timeline/timeline.js';
7
+ import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
8
8
  import {
9
9
  getMainThread,
10
10
  makeCompleteEvent,
11
11
  makeProfileCall,
12
- } from '../../testing/TraceHelpers.js';
13
- import {TraceLoader} from '../../testing/TraceLoader.js';
14
- import * as TimelineModel from '../timeline_model/timeline_model.js';
15
- import * as Trace from '../trace/trace.js';
12
+ } from '../../../testing/TraceHelpers.js';
13
+ import {TraceLoader} from '../../../testing/TraceLoader.js';
14
+ import * as Trace from '../trace.js';
16
15
 
17
- describeWithEnvironment('TimelineProfileTree', () => {
16
+ import * as TraceTree from './TraceTree.js';
17
+
18
+ describeWithEnvironment('TraceTree', () => {
18
19
  describe('TopDownRootNode', () => {
19
20
  it('builds the root node and its children properly from an event tree', () => {
20
21
  // This builds the following tree:
@@ -28,7 +29,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
28
29
  eventB,
29
30
  eventC,
30
31
  ];
31
- const root = new TimelineModel.TimelineProfileTree.TopDownRootNode(
32
+ const root = new TraceTree.TopDownRootNode(
32
33
  events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
33
34
 
34
35
  const children = root.children();
@@ -56,14 +57,14 @@ describeWithEnvironment('TimelineProfileTree', () => {
56
57
  eventD,
57
58
  eventB,
58
59
  ];
59
- const root = new TimelineModel.TimelineProfileTree.TopDownRootNode(
60
+ const root = new TraceTree.TopDownRootNode(
60
61
  events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
61
62
 
62
63
  const rootChildren = root.children();
63
64
  assert.strictEqual(rootChildren.size, 2);
64
65
 
65
66
  const rootChildIterator = rootChildren.values();
66
- const nodeA = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
67
+ const nodeA = rootChildIterator.next().value as TraceTree.TopDownNode;
67
68
  assert.strictEqual(nodeA.event, eventA);
68
69
  assert.strictEqual(rootChildIterator.next().value!.event, eventB);
69
70
 
@@ -91,7 +92,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
91
92
  eventC,
92
93
  eventD,
93
94
  ];
94
- const root = new TimelineModel.TimelineProfileTree.TopDownRootNode(
95
+ const root = new TraceTree.TopDownRootNode(
95
96
  events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
96
97
 
97
98
  const rootChildren = root.children();
@@ -99,7 +100,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
99
100
 
100
101
  const rootChildIterator = rootChildren.values();
101
102
  assert.strictEqual(rootChildIterator.next().value!.event, eventA);
102
- const nodeB = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
103
+ const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
103
104
  assert.strictEqual(nodeB.event, eventB);
104
105
 
105
106
  const nodeBChildren = nodeB.children();
@@ -129,7 +130,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
129
130
  eventD,
130
131
  eventE,
131
132
  ];
132
- const root = new TimelineModel.TimelineProfileTree.TopDownRootNode(
133
+ const root = new TraceTree.TopDownRootNode(
133
134
  events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
134
135
 
135
136
  const rootChildren = root.children();
@@ -139,7 +140,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
139
140
  assert.strictEqual(
140
141
  rootChildIterator.next().value!.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventA.dur));
141
142
 
142
- const nodeB = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
143
+ const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
143
144
  const nodeBSelfTime = Trace.Types.Timing.MicroSeconds(eventB.dur - eventC.dur - eventD.dur);
144
145
  assert.strictEqual(nodeB.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(nodeBSelfTime));
145
146
 
@@ -176,7 +177,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
176
177
  eventB,
177
178
  eventC,
178
179
  ];
179
- const root = new TimelineModel.TimelineProfileTree.TopDownRootNode(
180
+ const root = new TraceTree.TopDownRootNode(
180
181
  events, [], Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000));
181
182
 
182
183
  const children = root.children();
@@ -204,24 +205,24 @@ describeWithEnvironment('TimelineProfileTree', () => {
204
205
  eventD,
205
206
  eventB,
206
207
  ];
207
- const root = new TimelineModel.TimelineProfileTree.BottomUpRootNode(
208
- events, new TimelineModel.TimelineModelFilter.TimelineInvisibleEventsFilter([]), [],
209
- Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000), null);
208
+ const root = new TraceTree.BottomUpRootNode(
209
+ events, new Trace.Extras.TraceFilter.InvisibleEventsFilter([]), [], Trace.Types.Timing.MilliSeconds(0),
210
+ Trace.Types.Timing.MilliSeconds(200_000), null);
210
211
  const rootChildren = root.children();
211
212
  assert.strictEqual(rootChildren.size, 4);
212
213
 
213
214
  const rootChildIterator = rootChildren.values();
214
215
 
215
- const nodeC = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
216
+ const nodeC = rootChildIterator.next().value as TraceTree.TopDownNode;
216
217
  assert.strictEqual(nodeC.event, eventC);
217
218
 
218
- const nodeD = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
219
+ const nodeD = rootChildIterator.next().value as TraceTree.TopDownNode;
219
220
  assert.strictEqual(nodeD.event, eventD);
220
221
 
221
- const nodeA = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
222
+ const nodeA = rootChildIterator.next().value as TraceTree.TopDownNode;
222
223
  assert.strictEqual(nodeA.event, eventA);
223
224
 
224
- const nodeB = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
225
+ const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
225
226
  assert.strictEqual(nodeB.event, eventB);
226
227
 
227
228
  const nodeCChildren = nodeC.children();
@@ -258,24 +259,24 @@ describeWithEnvironment('TimelineProfileTree', () => {
258
259
  eventD,
259
260
  ];
260
261
 
261
- const root = new TimelineModel.TimelineProfileTree.BottomUpRootNode(
262
- events, new TimelineModel.TimelineModelFilter.TimelineInvisibleEventsFilter([]), [],
263
- Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000), null);
262
+ const root = new TraceTree.BottomUpRootNode(
263
+ events, new Trace.Extras.TraceFilter.InvisibleEventsFilter([]), [], Trace.Types.Timing.MilliSeconds(0),
264
+ Trace.Types.Timing.MilliSeconds(200_000), null);
264
265
  const rootChildren = root.children();
265
266
  assert.strictEqual(rootChildren.size, 4);
266
267
 
267
268
  const rootChildIterator = rootChildren.values();
268
269
 
269
- const nodeA = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
270
+ const nodeA = rootChildIterator.next().value as TraceTree.TopDownNode;
270
271
  assert.strictEqual(nodeA.event, eventA);
271
272
 
272
- const nodeC = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
273
+ const nodeC = rootChildIterator.next().value as TraceTree.TopDownNode;
273
274
  assert.strictEqual(nodeC.event, eventC);
274
275
 
275
- const nodeD = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
276
+ const nodeD = rootChildIterator.next().value as TraceTree.TopDownNode;
276
277
  assert.strictEqual(nodeD.event, eventD);
277
278
 
278
- const nodeB = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
279
+ const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
279
280
  assert.strictEqual(nodeB.event, eventB);
280
281
 
281
282
  const nodeCChildren = nodeC.children();
@@ -314,9 +315,9 @@ describeWithEnvironment('TimelineProfileTree', () => {
314
315
  eventD,
315
316
  eventE,
316
317
  ];
317
- const root = new TimelineModel.TimelineProfileTree.BottomUpRootNode(
318
- events, new TimelineModel.TimelineModelFilter.TimelineInvisibleEventsFilter([]), [],
319
- Trace.Types.Timing.MilliSeconds(0), Trace.Types.Timing.MilliSeconds(200_000), null);
318
+ const root = new TraceTree.BottomUpRootNode(
319
+ events, new Trace.Extras.TraceFilter.InvisibleEventsFilter([]), [], Trace.Types.Timing.MilliSeconds(0),
320
+ Trace.Types.Timing.MilliSeconds(200_000), null);
320
321
 
321
322
  const rootChildren = root.children();
322
323
  assert.strictEqual(rootChildren.size, 5);
@@ -325,17 +326,17 @@ describeWithEnvironment('TimelineProfileTree', () => {
325
326
  assert.strictEqual(
326
327
  rootChildIterator.next().value!.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventA.dur));
327
328
 
328
- const nodeC = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
329
+ const nodeC = rootChildIterator.next().value as TraceTree.TopDownNode;
329
330
  assert.strictEqual(nodeC.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventC.dur));
330
331
 
331
- const nodeE = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
332
+ const nodeE = rootChildIterator.next().value as TraceTree.TopDownNode;
332
333
  assert.strictEqual(nodeE.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(eventE.dur));
333
334
 
334
- const nodeD = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
335
+ const nodeD = rootChildIterator.next().value as TraceTree.TopDownNode;
335
336
  const nodeDSelfTime = Trace.Types.Timing.MicroSeconds(eventD.dur - eventE.dur);
336
337
  assert.strictEqual(nodeD.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(nodeDSelfTime));
337
338
 
338
- const nodeB = rootChildIterator.next().value as TimelineModel.TimelineProfileTree.TopDownNode;
339
+ const nodeB = rootChildIterator.next().value as TraceTree.TopDownNode;
339
340
  const nodeBSelfTime = Trace.Types.Timing.MicroSeconds(eventB.dur - eventC.dur - eventD.dur);
340
341
  assert.strictEqual(nodeB.selfTime, Trace.Helpers.Timing.microSecondsToMilliseconds(nodeBSelfTime));
341
342
  });
@@ -349,12 +350,12 @@ describeWithEnvironment('TimelineProfileTree', () => {
349
350
  const textFilter = new Timeline.TimelineFilters.TimelineRegExp();
350
351
  const modelFilters = [
351
352
  Timeline.TimelineUIUtils.TimelineUIUtils.visibleEventsFilter(),
352
- new TimelineModel.TimelineModelFilter.ExclusiveNameFilter([
353
+ new Trace.Extras.TraceFilter.ExclusiveNameFilter([
353
354
  Trace.Types.Events.Name.RUN_TASK,
354
355
  ]),
355
356
  ];
356
- const root = new TimelineModel.TimelineProfileTree.BottomUpRootNode(
357
- mainThread.entries, textFilter, modelFilters, bounds.min, bounds.max, null);
357
+ const root =
358
+ new TraceTree.BottomUpRootNode(mainThread.entries, textFilter, modelFilters, bounds.min, bounds.max, null);
358
359
  const rootChildren = root.children();
359
360
  const values = Array.from(rootChildren.values());
360
361
  // Find the list of profile calls that have been calculated as the top level rows in the Bottom Up table.
@@ -380,7 +381,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
380
381
  if (!profileCallEntry) {
381
382
  throw new Error('Could not find a profile call');
382
383
  }
383
- const eventId = TimelineModel.TimelineProfileTree.generateEventID(profileCallEntry);
384
+ const eventId = TraceTree.generateEventID(profileCallEntry);
384
385
  assert.strictEqual(eventId, 'f:performConcurrentWorkOnRoot@7');
385
386
  });
386
387
 
@@ -397,7 +398,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
397
398
  if (!profileCallEntry) {
398
399
  throw new Error('Could not find a profile call');
399
400
  }
400
- const eventId = TimelineModel.TimelineProfileTree.generateEventID(profileCallEntry);
401
+ const eventId = TraceTree.generateEventID(profileCallEntry);
401
402
  assert.strictEqual(eventId, 'f:Compile@0');
402
403
  });
403
404
  });
@@ -405,7 +406,7 @@ describeWithEnvironment('TimelineProfileTree', () => {
405
406
  describe('eventStackFrame', () => {
406
407
  it('extracts the stackFrame for ProfileCalls', async function() {
407
408
  const event = makeProfileCall('somefunc', 100, 10, undefined, undefined, undefined, 'https://x.com/file.mjs');
408
- const stackFrame = TimelineModel.TimelineProfileTree.eventStackFrame(event) as Protocol.Runtime.CallFrame;
409
+ const stackFrame = TraceTree.eventStackFrame(event) as Protocol.Runtime.CallFrame;
409
410
  assert.strictEqual(stackFrame.functionName, 'somefunc');
410
411
  assert.strictEqual(stackFrame.url, 'https://x.com/file.mjs');
411
412
  });
@@ -2,23 +2,24 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import type * as Protocol from '../../generated/protocol.js';
6
- import * as Trace from '../../models/trace/trace.js';
5
+ import type * as Protocol from '../../../generated/protocol.js';
6
+ import * as Helpers from '../helpers/helpers.js';
7
+ import * as Types from '../types/types.js';
7
8
 
8
9
  import {TimelineJSProfileProcessor} from './TimelineJSProfile.js';
9
- import type {TimelineModelFilter} from './TimelineModelFilter.js';
10
+ import type {TraceFilter} from './TraceFilter.js';
10
11
 
11
12
  export class Node {
12
13
  totalTime: number;
13
14
  selfTime: number;
14
15
  id: string|symbol;
15
- event: Trace.Types.Events.Event|null;
16
+ event: Types.Events.Event|null;
16
17
  parent!: Node|null;
17
18
  groupId: string;
18
19
  isGroupNodeInternal: boolean;
19
20
  depth: number;
20
21
 
21
- constructor(id: string|symbol, event: Trace.Types.Events.Event|null) {
22
+ constructor(id: string|symbol, event: Types.Events.Event|null) {
22
23
  this.totalTime = 0;
23
24
  this.selfTime = 0;
24
25
  this.id = id;
@@ -48,7 +49,7 @@ export class Node {
48
49
  throw 'Not implemented';
49
50
  }
50
51
 
51
- searchTree(matchFunction: (arg0: Trace.Types.Events.Event) => boolean, results?: Node[]): Node[] {
52
+ searchTree(matchFunction: (arg0: Types.Events.Event) => boolean, results?: Node[]): Node[] {
52
53
  results = results || [];
53
54
  if (this.event && matchFunction(this.event)) {
54
55
  results.push(this);
@@ -66,7 +67,7 @@ export class TopDownNode extends Node {
66
67
  childrenInternal: ChildrenCache|null;
67
68
  override parent: TopDownNode|null;
68
69
 
69
- constructor(id: string|symbol, event: Trace.Types.Events.Event|null, parent: TopDownNode|null) {
70
+ constructor(id: string|symbol, event: Types.Events.Event|null, parent: TopDownNode|null) {
70
71
  super(id, event);
71
72
  this.root = parent && parent.root;
72
73
  this.hasChildrenInternal = false;
@@ -102,7 +103,7 @@ export class TopDownNode extends Node {
102
103
  }
103
104
  const startTime = root.startTime;
104
105
  const endTime = root.endTime;
105
- const instantEventCallback = root.doNotAggregate ? onInstantEvent : undefined;
106
+ const instantEventCallback = (root.doNotAggregate || root.includeInstantEvents) ? onInstantEvent : undefined;
106
107
  const eventIdCallback = root.doNotAggregate ? undefined : generateEventID;
107
108
  const eventGroupIdCallback = root.getEventGroupIdCallback();
108
109
  let depth = 0;
@@ -112,21 +113,21 @@ export class TopDownNode extends Node {
112
113
  let currentDirectChild: Node|null = null;
113
114
 
114
115
  // Walk on the full event tree to find this node's children.
115
- Trace.Helpers.Trace.forEachEvent(
116
+ Helpers.Trace.forEachEvent(
116
117
  root.events,
117
118
  {
118
119
  onStartEvent,
119
120
  onEndEvent,
120
121
  onInstantEvent: instantEventCallback,
121
- startTime: Trace.Helpers.Timing.millisecondsToMicroseconds(startTime),
122
- endTime: Trace.Helpers.Timing.millisecondsToMicroseconds(endTime),
122
+ startTime: Helpers.Timing.millisecondsToMicroseconds(startTime),
123
+ endTime: Helpers.Timing.millisecondsToMicroseconds(endTime),
123
124
  eventFilter: root.filter,
124
125
  ignoreAsyncEvents: false,
125
126
  },
126
127
  );
127
128
 
128
- function onStartEvent(e: Trace.Types.Events.Event): void {
129
- const {startTime: currentStartTime, endTime: currentEndTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(e);
129
+ function onStartEvent(e: Types.Events.Event): void {
130
+ const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
130
131
 
131
132
  ++depth;
132
133
  if (depth > path.length + 2) {
@@ -143,7 +144,7 @@ export class TopDownNode extends Node {
143
144
  processEvent(e, duration);
144
145
  }
145
146
 
146
- function onInstantEvent(e: Trace.Types.Events.Event): void {
147
+ function onInstantEvent(e: Types.Events.Event): void {
147
148
  ++depth;
148
149
  if (matchedDepth === path.length && depth <= path.length + 2) {
149
150
  processEvent(e, 0);
@@ -154,7 +155,7 @@ export class TopDownNode extends Node {
154
155
  /**
155
156
  * Creates a child node.
156
157
  */
157
- function processEvent(e: Trace.Types.Events.Event, duration: number): void {
158
+ function processEvent(e: Types.Events.Event, duration: number): void {
158
159
  if (depth === path.length + 2) {
159
160
  if (!currentDirectChild) {
160
161
  return;
@@ -191,8 +192,8 @@ export class TopDownNode extends Node {
191
192
  * is a child of this node. As the check is done, the partial result
192
193
  * is cached on `matchedDepth`, for future checks.
193
194
  */
194
- function matchPath(e: Trace.Types.Events.Event): boolean {
195
- const {endTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(e);
195
+ function matchPath(e: Types.Events.Event): boolean {
196
+ const {endTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
196
197
  if (matchedDepth === path.length) {
197
198
  return true;
198
199
  }
@@ -236,27 +237,32 @@ export class TopDownNode extends Node {
236
237
  }
237
238
 
238
239
  export class TopDownRootNode extends TopDownNode {
239
- readonly filter: (e: Trace.Types.Events.Event) => boolean;
240
- readonly events: Trace.Types.Events.Event[];
241
- readonly startTime: Trace.Types.Timing.MilliSeconds;
242
- readonly endTime: Trace.Types.Timing.MilliSeconds;
243
- eventGroupIdCallback: ((arg0: Trace.Types.Events.Event) => string)|null|undefined;
240
+ readonly filter: (e: Types.Events.Event) => boolean;
241
+ /** This is all events passed in to create the tree, and it's very likely that it included events outside of the passed startTime/endTime as that filtering is done in `Helpers.Trace.forEachEvent` */
242
+ readonly events: Types.Events.Event[];
243
+ readonly startTime: Types.Timing.MilliSeconds;
244
+ readonly endTime: Types.Timing.MilliSeconds;
245
+ eventGroupIdCallback: ((arg0: Types.Events.Event) => string)|null|undefined;
246
+ /** Default behavior is to aggregate similar trace events into one Node based on generateEventID(), eventGroupIdCallback(), etc. Set true to keep nodes 1:1 with events. */
244
247
  readonly doNotAggregate: boolean|undefined;
248
+ readonly includeInstantEvents?: boolean;
245
249
  override totalTime: number;
246
250
  override selfTime: number;
247
251
 
248
252
  constructor(
249
- events: Trace.Types.Events.Event[], filters: TimelineModelFilter[], startTime: Trace.Types.Timing.MilliSeconds,
250
- endTime: Trace.Types.Timing.MilliSeconds, doNotAggregate?: boolean,
251
- eventGroupIdCallback?: ((arg0: Trace.Types.Events.Event) => string)|null) {
253
+ events: Types.Events.Event[], filters: TraceFilter[], startTime: Types.Timing.MilliSeconds,
254
+ endTime: Types.Timing.MilliSeconds, doNotAggregate?: boolean,
255
+ eventGroupIdCallback?: ((arg0: Types.Events.Event) => string)|null, includeInstantEvents?: boolean) {
252
256
  super('', null, null);
253
257
  this.root = this;
254
258
  this.events = events;
255
- this.filter = (e: Trace.Types.Events.Event): boolean => filters.every(f => f.accept(e));
259
+ this.filter = (e: Types.Events.Event): boolean => filters.every(f => f.accept(e));
256
260
  this.startTime = startTime;
257
261
  this.endTime = endTime;
258
262
  this.eventGroupIdCallback = eventGroupIdCallback;
259
263
  this.doNotAggregate = doNotAggregate;
264
+ this.includeInstantEvents = includeInstantEvents;
265
+
260
266
  this.totalTime = endTime - startTime;
261
267
  this.selfTime = this.totalTime;
262
268
  }
@@ -290,30 +296,30 @@ export class TopDownRootNode extends TopDownNode {
290
296
  return groupNodes;
291
297
  }
292
298
 
293
- getEventGroupIdCallback(): ((arg0: Trace.Types.Events.Event) => string)|null|undefined {
299
+ getEventGroupIdCallback(): ((arg0: Types.Events.Event) => string)|null|undefined {
294
300
  return this.eventGroupIdCallback;
295
301
  }
296
302
  }
297
303
 
298
304
  export class BottomUpRootNode extends Node {
299
305
  private childrenInternal: ChildrenCache|null;
300
- readonly events: Trace.Types.Events.Event[];
301
- private textFilter: TimelineModelFilter;
302
- readonly filter: (e: Trace.Types.Events.Event) => boolean;
303
- readonly startTime: Trace.Types.Timing.MilliSeconds;
304
- readonly endTime: Trace.Types.Timing.MilliSeconds;
305
- private eventGroupIdCallback: ((arg0: Trace.Types.Events.Event) => string)|null;
306
+ readonly events: Types.Events.Event[];
307
+ private textFilter: TraceFilter;
308
+ readonly filter: (e: Types.Events.Event) => boolean;
309
+ readonly startTime: Types.Timing.MilliSeconds;
310
+ readonly endTime: Types.Timing.MilliSeconds;
311
+ private eventGroupIdCallback: ((arg0: Types.Events.Event) => string)|null;
306
312
  override totalTime: number;
307
313
 
308
314
  constructor(
309
- events: Trace.Types.Events.Event[], textFilter: TimelineModelFilter, filters: TimelineModelFilter[],
310
- startTime: Trace.Types.Timing.MilliSeconds, endTime: Trace.Types.Timing.MilliSeconds,
311
- eventGroupIdCallback: ((arg0: Trace.Types.Events.Event) => string)|null) {
315
+ events: Types.Events.Event[], textFilter: TraceFilter, filters: TraceFilter[],
316
+ startTime: Types.Timing.MilliSeconds, endTime: Types.Timing.MilliSeconds,
317
+ eventGroupIdCallback: ((arg0: Types.Events.Event) => string)|null) {
312
318
  super('', null);
313
319
  this.childrenInternal = null;
314
320
  this.events = events;
315
321
  this.textFilter = textFilter;
316
- this.filter = (e: Trace.Types.Events.Event): boolean => filters.every(f => f.accept(e));
322
+ this.filter = (e: Types.Events.Event): boolean => filters.every(f => f.accept(e));
317
323
  this.startTime = startTime;
318
324
  this.endTime = endTime;
319
325
  this.eventGroupIdCallback = eventGroupIdCallback;
@@ -349,20 +355,20 @@ export class BottomUpRootNode extends Node {
349
355
  const selfTimeStack: number[] = [endTime - startTime];
350
356
  const firstNodeStack: boolean[] = [];
351
357
  const totalTimeById = new Map<string, number>();
352
- Trace.Helpers.Trace.forEachEvent(
358
+ Helpers.Trace.forEachEvent(
353
359
  this.events,
354
360
  {
355
361
  onStartEvent,
356
362
  onEndEvent,
357
- startTime: Trace.Helpers.Timing.millisecondsToMicroseconds(this.startTime),
358
- endTime: Trace.Helpers.Timing.millisecondsToMicroseconds(this.endTime),
363
+ startTime: Helpers.Timing.millisecondsToMicroseconds(this.startTime),
364
+ endTime: Helpers.Timing.millisecondsToMicroseconds(this.endTime),
359
365
  eventFilter: this.filter,
360
366
  ignoreAsyncEvents: false,
361
367
  },
362
368
  );
363
369
 
364
- function onStartEvent(e: Trace.Types.Events.Event): void {
365
- const {startTime: currentStartTime, endTime: currentEndTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(e);
370
+ function onStartEvent(e: Types.Events.Event): void {
371
+ const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
366
372
 
367
373
  const actualEndTime = currentEndTime !== undefined ? Math.min(currentEndTime, endTime) : endTime;
368
374
  const duration = actualEndTime - Math.max(currentStartTime, startTime);
@@ -376,7 +382,7 @@ export class BottomUpRootNode extends Node {
376
382
  firstNodeStack.push(noNodeOnStack);
377
383
  }
378
384
 
379
- function onEndEvent(event: Trace.Types.Events.Event): void {
385
+ function onEndEvent(event: Types.Events.Event): void {
380
386
  const id = generateEventID(event);
381
387
  let node = nodeById.get(id);
382
388
  if (!node) {
@@ -428,7 +434,7 @@ export class GroupNode extends Node {
428
434
  private readonly childrenInternal: ChildrenCache;
429
435
  override isGroupNodeInternal: boolean;
430
436
 
431
- constructor(id: string, parent: BottomUpRootNode|TopDownRootNode, event: Trace.Types.Events.Event) {
437
+ constructor(id: string, parent: BottomUpRootNode|TopDownRootNode, event: Types.Events.Event) {
432
438
  super(id, event);
433
439
  this.childrenInternal = new Map();
434
440
  this.parent = parent;
@@ -458,7 +464,7 @@ export class BottomUpNode extends Node {
458
464
  private cachedChildren: ChildrenCache|null;
459
465
  private hasChildrenInternal: boolean;
460
466
 
461
- constructor(root: BottomUpRootNode, id: string, event: Trace.Types.Events.Event, hasChildren: boolean, parent: Node) {
467
+ constructor(root: BottomUpRootNode, id: string, event: Types.Events.Event, hasChildren: boolean, parent: Node) {
462
468
  super(id, event);
463
469
  this.parent = parent;
464
470
  this.root = root;
@@ -481,25 +487,25 @@ export class BottomUpNode extends Node {
481
487
  }
482
488
  const selfTimeStack: number[] = [0];
483
489
  const eventIdStack: string[] = [];
484
- const eventStack: Trace.Types.Events.Event[] = [];
490
+ const eventStack: Types.Events.Event[] = [];
485
491
  const nodeById = new Map<string, BottomUpNode>();
486
492
  const startTime = this.root.startTime;
487
493
  const endTime = this.root.endTime;
488
494
  let lastTimeMarker: number = startTime;
489
495
  const self = this;
490
- Trace.Helpers.Trace.forEachEvent(
496
+ Helpers.Trace.forEachEvent(
491
497
  this.root.events,
492
498
  {
493
499
  onStartEvent,
494
500
  onEndEvent,
495
- startTime: Trace.Helpers.Timing.millisecondsToMicroseconds(startTime),
496
- endTime: Trace.Helpers.Timing.millisecondsToMicroseconds(endTime),
501
+ startTime: Helpers.Timing.millisecondsToMicroseconds(startTime),
502
+ endTime: Helpers.Timing.millisecondsToMicroseconds(endTime),
497
503
  eventFilter: this.root.filter,
498
504
  ignoreAsyncEvents: false,
499
505
  },
500
506
  );
501
- function onStartEvent(e: Trace.Types.Events.Event): void {
502
- const {startTime: currentStartTime, endTime: currentEndTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(e);
507
+ function onStartEvent(e: Types.Events.Event): void {
508
+ const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
503
509
  const actualEndTime = currentEndTime !== undefined ? Math.min(currentEndTime, endTime) : endTime;
504
510
  const duration = actualEndTime - Math.max(currentStartTime, startTime);
505
511
  if (duration < 0) {
@@ -512,8 +518,8 @@ export class BottomUpNode extends Node {
512
518
  eventStack.push(e);
513
519
  }
514
520
 
515
- function onEndEvent(e: Trace.Types.Events.Event): void {
516
- const {startTime: currentStartTime, endTime: currentEndTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(e);
521
+ function onEndEvent(e: Types.Events.Event): void {
522
+ const {startTime: currentStartTime, endTime: currentEndTime} = Helpers.Timing.eventTimingsMilliSeconds(e);
517
523
  const selfTime = selfTimeStack.pop();
518
524
  const id = eventIdStack.pop();
519
525
  eventStack.pop();
@@ -545,7 +551,7 @@ export class BottomUpNode extends Node {
545
551
  return this.cachedChildren;
546
552
  }
547
553
 
548
- override searchTree(matchFunction: (arg0: Trace.Types.Events.Event) => boolean, results?: Node[]): Node[] {
554
+ override searchTree(matchFunction: (arg0: Types.Events.Event) => boolean, results?: Node[]): Node[] {
549
555
  results = results || [];
550
556
  if (this.event && matchFunction(this.event)) {
551
557
  results.push(this);
@@ -554,8 +560,8 @@ export class BottomUpNode extends Node {
554
560
  }
555
561
  }
556
562
 
557
- export function eventStackFrame(event: Trace.Types.Events.Event): Protocol.Runtime.CallFrame|null {
558
- if (Trace.Types.Events.isProfileCall(event)) {
563
+ export function eventStackFrame(event: Types.Events.Event): Protocol.Runtime.CallFrame|null {
564
+ if (Types.Events.isProfileCall(event)) {
559
565
  return event.callFrame;
560
566
  }
561
567
  const topFrame = event.args?.data?.stackTrace?.[0];
@@ -565,8 +571,8 @@ export function eventStackFrame(event: Trace.Types.Events.Event): Protocol.Runti
565
571
  return {...topFrame, scriptId: String(topFrame.scriptId) as Protocol.Runtime.ScriptId};
566
572
  }
567
573
 
568
- export function generateEventID(event: Trace.Types.Events.Event): string {
569
- if (Trace.Types.Events.isProfileCall(event)) {
574
+ export function generateEventID(event: Types.Events.Event): string {
575
+ if (Types.Events.isProfileCall(event)) {
570
576
  const name = TimelineJSProfileProcessor.isNativeRuntimeFrame(event.callFrame) ?
571
577
  TimelineJSProfileProcessor.nativeGroup(event.callFrame.functionName) :
572
578
  event.callFrame.functionName;
@@ -574,7 +580,7 @@ export function generateEventID(event: Trace.Types.Events.Event): string {
574
580
  return `f:${name}@${location}`;
575
581
  }
576
582
 
577
- if (Trace.Types.Events.isTimeStamp(event)) {
583
+ if (Types.Events.isTimeStamp(event)) {
578
584
  return `${event.name}:${event.args.data.message}`;
579
585
  }
580
586
 
@@ -7,4 +7,7 @@ export * as FilmStrip from './FilmStrip.js';
7
7
  export * as MainThreadActivity from './MainThreadActivity.js';
8
8
  export * as Metadata from './Metadata.js';
9
9
  export * as ThirdParties from './ThirdParties.js';
10
+ export * as TimelineJSProfile from './TimelineJSProfile.js';
11
+ export * as TraceFilter from './TraceFilter.js';
12
+ export * as TraceTree from './TraceTree.js';
10
13
  export * as URLForEntry from './URLForEntry.js';
@@ -5,15 +5,12 @@
5
5
  import * as Helpers from '../helpers/helpers.js';
6
6
  import * as Types from '../types/types.js';
7
7
 
8
- import {HandlerState} from './types.js';
9
-
10
8
  const animations: Types.Events.Animation[] = [];
11
9
  const animationsSyntheticEvents: Types.Events.SyntheticAnimationPair[] = [];
12
10
 
13
11
  export interface AnimationData {
14
12
  animations: readonly Types.Events.SyntheticAnimationPair[];
15
13
  }
16
- let handlerState = HandlerState.UNINITIALIZED;
17
14
 
18
15
  export function reset(): void {
19
16
  animations.length = 0;
@@ -30,14 +27,9 @@ export function handleEvent(event: Types.Events.Event): void {
30
27
  export async function finalize(): Promise<void> {
31
28
  const syntheticEvents = Helpers.Trace.createMatchedSortedSyntheticEvents(animations);
32
29
  animationsSyntheticEvents.push(...syntheticEvents);
33
- handlerState = HandlerState.FINALIZED;
34
30
  }
35
31
 
36
32
  export function data(): AnimationData {
37
- if (handlerState !== HandlerState.FINALIZED) {
38
- throw new Error('Animation handler is not finalized');
39
- }
40
-
41
33
  return {
42
34
  animations: animationsSyntheticEvents,
43
35
  };
@@ -5,7 +5,7 @@
5
5
  import * as Helpers from '../helpers/helpers.js';
6
6
  import * as Types from '../types/types.js';
7
7
 
8
- import {type HandlerName, HandlerState} from './types.js';
8
+ import type {HandlerName} from './types.js';
9
9
  import {data as userTimingsData} from './UserTimingsHandler.js';
10
10
 
11
11
  const extensionFlameChartEntries: Types.Extensions.SyntheticExtensionTrackEntry[] = [];
@@ -18,14 +18,12 @@ export interface ExtensionTraceData {
18
18
  extensionMarkers: readonly Types.Extensions.SyntheticExtensionMarker[];
19
19
  entryToNode: Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>;
20
20
  }
21
- let handlerState = HandlerState.UNINITIALIZED;
22
21
 
23
22
  export function handleEvent(_event: Types.Events.Event): void {
24
23
  // Implementation not needed because data is sourced from UserTimingsHandler
25
24
  }
26
25
 
27
26
  export function reset(): void {
28
- handlerState = HandlerState.INITIALIZED;
29
27
  extensionFlameChartEntries.length = 0;
30
28
  extensionTrackData.length = 0;
31
29
  extensionMarkers.length = 0;
@@ -33,11 +31,7 @@ export function reset(): void {
33
31
  }
34
32
 
35
33
  export async function finalize(): Promise<void> {
36
- if (handlerState !== HandlerState.INITIALIZED) {
37
- throw new Error('ExtensionTraceData handler is not initialized');
38
- }
39
34
  createExtensionFlameChartEntries();
40
- handlerState = HandlerState.FINALIZED;
41
35
  }
42
36
 
43
37
  function createExtensionFlameChartEntries(): void {
@@ -120,10 +114,6 @@ export function extensionDataInTiming(timing: Types.Events.SyntheticUserTimingPa
120
114
  }
121
115
 
122
116
  export function data(): ExtensionTraceData {
123
- if (handlerState !== HandlerState.FINALIZED) {
124
- throw new Error('ExtensionTraceData handler is not finalized');
125
- }
126
-
127
117
  return {
128
118
  entryToNode,
129
119
  extensionTrackData: [...extensionTrackData],