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
@@ -4,106 +4,40 @@
4
4
  * found in the LICENSE file.
5
5
  */
6
6
 
7
- .workspace-settings-tab header {
8
- padding: 0 0 6px;
7
+ .mappings-info,
8
+ .folder-exclude-pattern {
9
+ height: var(--settings-single-item-height);
9
10
  }
10
11
 
11
- .workspace-settings-tab header > h1 {
12
- font-size: 18px;
13
- font-weight: normal;
14
- margin: 0;
15
- padding-bottom: 3px;
12
+ .mapping-view-container {
13
+ padding-left: 0;
14
+ padding-right: 0;
16
15
  }
17
16
 
18
- .workspace-settings-tab .settings-content {
19
- overflow-y: auto;
20
- overflow-x: hidden;
21
- margin: 8px 8px 8px 0;
22
- padding: 0 4px;
23
- flex: auto;
24
- }
25
-
26
- .workspace-settings-tab .settings-container {
27
- width: 100%;
28
- column-width: 288px;
29
- }
30
-
31
- .workspace-settings-tab .settings-tab.settings-container {
32
- column-width: 308px;
33
- }
34
-
35
- .workspace-settings-tab .settings-container-wrapper {
36
- position: absolute;
37
- top: 31px;
38
- left: 0;
39
- right: 0;
40
- bottom: 0;
41
- overflow: auto;
42
- padding-top: 9px;
43
- }
44
-
45
- .workspace-settings-tab .settings-tab.settings-content {
46
- margin: 0;
47
- padding: 0;
48
- }
49
-
50
- .workspace-settings-tab .settings-tab p {
51
- margin: 12px 0;
52
- }
53
-
54
- .workspace-settings-tab p.folder-exclude-pattern {
55
- display: grid;
56
- align-items: center;
57
- }
58
-
59
- .workspace-settings-tab p.folder-exclude-pattern > input {
60
- width: 80%;
61
- margin-left: 10px;
62
- }
63
-
64
- .workspace-settings-tab .settings-tab .file-system-container {
65
- border-top: 1px solid var(--sys-color-divider);
66
- padding: 19px 0 10px;
67
- margin: 20px 0;
68
- }
69
-
70
- .workspace-settings-tab .settings-tab .file-system-header {
17
+ .folder-exclude-pattern {
71
18
  display: flex;
72
- flex-direction: row;
73
19
  align-items: center;
74
- }
75
20
 
76
- .workspace-settings-tab .settings-tab .file-system-name {
77
- font-weight: bold;
78
- flex: none;
79
- margin-right: 10px;
80
- font-size: 15px;
81
- overflow: hidden;
82
- text-overflow: ellipsis;
83
- max-width: 70%;
21
+ & > input {
22
+ flex: 1;
23
+ }
84
24
  }
85
25
 
86
- .workspace-settings-tab .settings-tab .file-system-path {
87
- white-space: nowrap;
88
- overflow: hidden;
89
- text-overflow: ellipsis;
90
- flex: auto;
26
+ label {
27
+ padding-bottom: 0;
91
28
  }
92
29
 
93
- .workspace-settings-tab .settings-info-message {
94
- background-color: var(--sys-color-neutral-container);
95
- border-radius: 5px;
96
- padding: 10px;
97
- margin: 20px 0;
30
+ .mappings-info {
31
+ border: none;
98
32
  }
99
33
 
100
- .workspace-settings-tab .settings-tab.settings-content.settings-container {
101
- column-width: initial;
102
- overflow: hidden;
103
- padding-bottom: 1px;
104
- padding-right: 10px;
34
+ .add-button-container {
35
+ max-width: var(--sys-size-37);
36
+ margin-left: var(--sys-size-8);
37
+ width: 100%;
105
38
 
106
- > devtools-button {
107
- margin: 0 0 3px 5px;
39
+ & .add-folder {
40
+ min-width: var(--sys-size-31);
41
+ max-width: var(--sys-size-37);
108
42
  }
109
43
  }
@@ -1,14 +1,8 @@
1
1
  // Copyright 2019 The Chromium Authors. All rights reserved.
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
- import * as TimelineJSProfile from './TimelineJSProfile.js';
5
- import * as TimelineModelFilter from './TimelineModelFilter.js';
6
- import * as TimelineProfileTree from './TimelineProfileTree.js';
7
4
  import * as TracingLayerTree from './TracingLayerTree.js';
8
5
 
9
6
  export {
10
- TimelineJSProfile,
11
- TimelineModelFilter,
12
- TimelineProfileTree,
13
7
  TracingLayerTree,
14
8
  };
@@ -139,6 +139,7 @@ describeWithEnvironment('TraceProcessor', function() {
139
139
  const baseHandler = {
140
140
  data() {},
141
141
  handleEvent() {},
142
+ async finalize() {},
142
143
  reset() {},
143
144
  };
144
145
 
@@ -262,7 +263,7 @@ describeWithEnvironment('TraceProcessor', function() {
262
263
  generateInsight: () => {
263
264
  throw new Error('forced error');
264
265
  },
265
- deps: Trace.Insights.InsightRunners.RenderBlocking.deps,
266
+ deps: Trace.Insights.Models.RenderBlocking.deps,
266
267
  },
267
268
  };
268
269
  });
@@ -277,8 +278,8 @@ describeWithEnvironment('TraceProcessor', function() {
277
278
 
278
279
  const insights = Array.from(processor.insights.values());
279
280
  assert.strictEqual(insights.length, 2);
280
- assert(insights[1].data.RenderBlocking instanceof Error, 'RenderBlocking did not throw an error');
281
- assert.strictEqual(insights[1].data.RenderBlocking.message, 'forced error');
281
+ assert(insights[1].model.RenderBlocking instanceof Error, 'RenderBlocking did not throw an error');
282
+ assert.strictEqual(insights[1].model.RenderBlocking.message, 'forced error');
282
283
  });
283
284
 
284
285
  it('skips insights that are missing one or more dependencies', async function() {
@@ -298,8 +299,8 @@ describeWithEnvironment('TraceProcessor', function() {
298
299
  ]);
299
300
 
300
301
  const insights = Array.from(processor.insights.values());
301
- assert.isUndefined(insights[0].data.RenderBlocking);
302
- assert.isUndefined(insights[1].data.RenderBlocking);
302
+ assert.isUndefined(insights[0].model.RenderBlocking);
303
+ assert.isUndefined(insights[1].model.RenderBlocking);
303
304
  });
304
305
 
305
306
  it('returns insights for a navigation', async function() {
@@ -317,15 +318,15 @@ describeWithEnvironment('TraceProcessor', function() {
317
318
  ]);
318
319
 
319
320
  const insights = Array.from(processor.insights.values());
320
- if (insights[0].data.RenderBlocking instanceof Error) {
321
+ if (insights[0].model.RenderBlocking instanceof Error) {
321
322
  throw new Error('RenderBlocking threw an error');
322
323
  }
323
- if (insights[1].data.RenderBlocking instanceof Error) {
324
+ if (insights[1].model.RenderBlocking instanceof Error) {
324
325
  throw new Error('RenderBlocking threw an error');
325
326
  }
326
327
 
327
- assert.strictEqual(insights[0].data.RenderBlocking.renderBlockingRequests.length, 0);
328
- assert.strictEqual(insights[1].data.RenderBlocking.renderBlockingRequests.length, 2);
328
+ assert.strictEqual(insights[0].model.RenderBlocking.renderBlockingRequests.length, 0);
329
+ assert.strictEqual(insights[1].model.RenderBlocking.renderBlockingRequests.length, 2);
329
330
  });
330
331
 
331
332
  it('returns insights for multiple navigations', async function() {
@@ -345,23 +346,23 @@ describeWithEnvironment('TraceProcessor', function() {
345
346
  ]);
346
347
 
347
348
  const insights = Array.from(processor.insights.values());
348
- if (insights[0].data.RenderBlocking instanceof Error) {
349
+ if (insights[0].model.RenderBlocking instanceof Error) {
349
350
  throw new Error('RenderBlocking threw an error');
350
351
  }
351
- if (insights[1].data.RenderBlocking instanceof Error) {
352
+ if (insights[1].model.RenderBlocking instanceof Error) {
352
353
  throw new Error('RenderBlocking threw an error');
353
354
  }
354
- if (insights[2].data.RenderBlocking instanceof Error) {
355
+ if (insights[2].model.RenderBlocking instanceof Error) {
355
356
  throw new Error('RenderBlocking threw an error');
356
357
  }
357
- if (insights[3].data.RenderBlocking instanceof Error) {
358
+ if (insights[3].model.RenderBlocking instanceof Error) {
358
359
  throw new Error('RenderBlocking threw an error');
359
360
  }
360
361
 
361
- assert.strictEqual(insights[0].data.RenderBlocking.renderBlockingRequests.length, 0);
362
- assert.strictEqual(insights[1].data.RenderBlocking.renderBlockingRequests.length, 0);
363
- assert.strictEqual(insights[2].data.RenderBlocking.renderBlockingRequests.length, 0);
364
- assert.strictEqual(insights[3].data.RenderBlocking.renderBlockingRequests.length, 1);
362
+ assert.strictEqual(insights[0].model.RenderBlocking.renderBlockingRequests.length, 0);
363
+ assert.strictEqual(insights[1].model.RenderBlocking.renderBlockingRequests.length, 0);
364
+ assert.strictEqual(insights[2].model.RenderBlocking.renderBlockingRequests.length, 0);
365
+ assert.strictEqual(insights[3].model.RenderBlocking.renderBlockingRequests.length, 1);
365
366
  });
366
367
  });
367
368
  });
@@ -52,6 +52,7 @@ declare global {
52
52
  export interface ParseOptions {
53
53
  /**
54
54
  * If the trace was just recorded on the current page, rather than an imported file.
55
+ * TODO(paulirish): Maybe remove. This is currently unused by the Processor and Handlers
55
56
  * @default false
56
57
  */
57
58
  isFreshRecording?: boolean;
@@ -75,9 +76,9 @@ export class TraceProcessor extends EventTarget {
75
76
  return new TraceProcessor(Handlers.ModelHandlers, Types.Configuration.defaults());
76
77
  }
77
78
 
78
- static getEnabledInsightRunners(parsedTrace: Handlers.Types.ParsedTrace): Partial<Insights.Types.InsightRunnersType> {
79
- const enabledInsights = {} as Insights.Types.InsightRunnersType;
80
- for (const [name, insight] of Object.entries(Insights.InsightRunners)) {
79
+ static getEnabledInsightRunners(parsedTrace: Handlers.Types.ParsedTrace): Partial<Insights.Types.InsightModelsType> {
80
+ const enabledInsights = {} as Insights.Types.InsightModelsType;
81
+ for (const [name, insight] of Object.entries(Insights.Models)) {
81
82
  const deps = insight.deps();
82
83
  if (deps.some(dep => !parsedTrace[dep])) {
83
84
  continue;
@@ -170,7 +171,7 @@ export class TraceProcessor extends EventTarget {
170
171
  }
171
172
  try {
172
173
  this.#status = Status.PARSING;
173
- await this.#computeParsedTrace(traceEvents, Boolean(options.isFreshRecording));
174
+ await this.#computeParsedTrace(traceEvents);
174
175
  if (this.#data && !options.isCPUProfile) { // We do not calculate insights for CPU Profiles.
175
176
  this.#computeInsights(this.#data, traceEvents);
176
177
  }
@@ -184,7 +185,7 @@ export class TraceProcessor extends EventTarget {
184
185
  /**
185
186
  * Run all the handlers and set the result to `#data`.
186
187
  */
187
- async #computeParsedTrace(traceEvents: readonly Types.Events.Event[], freshRecording: boolean): Promise<void> {
188
+ async #computeParsedTrace(traceEvents: readonly Types.Events.Event[]): Promise<void> {
188
189
  /**
189
190
  * We want to yield regularly to maintain responsiveness. If we yield too often, we're wasting idle time.
190
191
  * We could do this by checking `performance.now()` regularly, but it's an expensive call in such a hot loop.
@@ -202,11 +203,6 @@ export class TraceProcessor extends EventTarget {
202
203
  handler.reset();
203
204
  }
204
205
 
205
- // Initialize.
206
- for (const handler of sortedHandlers) {
207
- handler.initialize?.(freshRecording);
208
- }
209
-
210
206
  // Handle each event.
211
207
  for (let i = 0; i < traceEvents.length; ++i) {
212
208
  // Every so often we take a break just to render.
@@ -348,8 +344,8 @@ export class TraceProcessor extends EventTarget {
348
344
 
349
345
  #computeInsightSets(
350
346
  insights: Insights.Types.TraceInsightSets, parsedTrace: Handlers.Types.ParsedTrace,
351
- insightRunners: Partial<typeof Insights.InsightRunners>, context: Insights.Types.InsightSetContext): void {
352
- const data = {} as Insights.Types.InsightSets['data'];
347
+ insightRunners: Partial<typeof Insights.Models>, context: Insights.Types.InsightSetContext): void {
348
+ const model = {} as Insights.Types.InsightSet['model'];
353
349
 
354
350
  for (const [name, insight] of Object.entries(insightRunners)) {
355
351
  let insightResult;
@@ -358,7 +354,7 @@ export class TraceProcessor extends EventTarget {
358
354
  } catch (err) {
359
355
  insightResult = err;
360
356
  }
361
- Object.assign(data, {[name]: insightResult});
357
+ Object.assign(model, {[name]: insightResult});
362
358
  }
363
359
 
364
360
  let id, urlString, navigation;
@@ -386,7 +382,7 @@ export class TraceProcessor extends EventTarget {
386
382
  navigation,
387
383
  frameId: context.frameId,
388
384
  bounds: context.bounds,
389
- data,
385
+ model,
390
386
  };
391
387
  insights.set(insightSets.id, insightSets);
392
388
  }
@@ -21,7 +21,6 @@ This folder contains the new trace engine that was first implemented for the Per
21
21
  │NetworkRequestHandler│ │...many more handlers │
22
22
  │ │ │ │
23
23
  │ reset() │ │ │
24
- │ initialize() │ │ │
25
24
  │ │ │ │
26
25
  │ handleEvent() │ │ │
27
26
  │ │ │ │
@@ -4,19 +4,12 @@
4
4
 
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
 
7
- import * as i18n from '../../core/i18n/i18n.js';
8
- import type * as Protocol from '../../generated/protocol.js';
9
- import * as Trace from '../trace/trace.js';
7
+ import type * as Protocol from '../../../generated/protocol.js';
8
+ import * as Types from '../types/types.js';
10
9
 
11
- const UIStrings = {
12
- /**
13
- *@description Text for the name of a thread of the page
14
- *@example {1} PH1
15
- */
16
- threadS: 'Thread {PH1}',
17
- };
18
- const str_ = i18n.i18n.registerUIStrings('models/timeline_model/TimelineJSProfile.ts', UIStrings);
19
- const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
10
+ // TODO(paulirish): Delete this file.
11
+ // - Move isNativeRuntimeFrame and nativeGroup to TraceEvents.d.ts (or TraceTree)
12
+ // - Move createFakeTraceFromCpuProfile to TimelineLoader
20
13
  export class TimelineJSProfileProcessor {
21
14
  static isNativeRuntimeFrame(frame: Protocol.Runtime.CallFrame): boolean {
22
15
  return frame.url === 'native V8Runtime';
@@ -32,14 +25,13 @@ export class TimelineJSProfileProcessor {
32
25
  return null;
33
26
  }
34
27
 
35
- static createFakeTraceFromCpuProfile(profile: Protocol.Profiler.Profile, tid: Trace.Types.Events.ThreadID):
36
- Trace.Types.Events.Event[] {
37
- const events: Trace.Types.Events.Event[] = [];
28
+ static createFakeTraceFromCpuProfile(profile: Protocol.Profiler.Profile, tid: Types.Events.ThreadID):
29
+ Types.Events.Event[] {
30
+ const events: Types.Events.Event[] = [];
38
31
 
39
- const threadName = i18nString(UIStrings.threadS, {PH1: tid});
40
- appendEvent('TracingStartedInPage', {data: {sessionId: '1'}}, 0, 0, Trace.Types.Events.Phase.METADATA);
41
- appendEvent(
42
- Trace.Types.Events.Name.THREAD_NAME, {name: threadName}, 0, 0, Trace.Types.Events.Phase.METADATA, '__metadata');
32
+ const threadName = `Thread ${tid}`;
33
+ appendEvent('TracingStartedInPage', {data: {sessionId: '1'}}, 0, 0, Types.Events.Phase.METADATA);
34
+ appendEvent(Types.Events.Name.THREAD_NAME, {name: threadName}, 0, 0, Types.Events.Phase.METADATA, '__metadata');
43
35
  if (!profile) {
44
36
  return events;
45
37
  }
@@ -49,28 +41,26 @@ export class TimelineJSProfileProcessor {
49
41
  // 'JSRoot' doesn't exist in the new engine and is not the name of an actual trace event, but changing it might break other trace processing tools that rely on this, so we stick with this name.
50
42
  // TODO(crbug.com/341234884): consider removing this or clarify why it's required.
51
43
  appendEvent(
52
- 'JSRoot', {}, profile.startTime, profile.endTime - profile.startTime, Trace.Types.Events.Phase.COMPLETE,
53
- 'toplevel');
44
+ 'JSRoot', {}, profile.startTime, profile.endTime - profile.startTime, Types.Events.Phase.COMPLETE, 'toplevel');
54
45
 
55
46
  // TODO: create a `Profile` event instead, as `cpuProfile` is legacy
56
- appendEvent('CpuProfile', {data: {cpuProfile: profile}}, profile.endTime, 0, Trace.Types.Events.Phase.COMPLETE);
47
+ appendEvent('CpuProfile', {data: {cpuProfile: profile}}, profile.endTime, 0, Types.Events.Phase.COMPLETE);
57
48
  return events;
58
49
 
59
50
  function appendEvent(
60
- name: string, args: any, ts: number, dur?: number, ph?: Trace.Types.Events.Phase,
61
- cat?: string): Trace.Types.Events.Event {
62
- const event: Trace.Types.Events.Event = {
51
+ name: string, args: any, ts: number, dur?: number, ph?: Types.Events.Phase, cat?: string): Types.Events.Event {
52
+ const event: Types.Events.Event = {
63
53
  cat: cat || 'disabled-by-default-devtools.timeline',
64
54
  name,
65
- ph: ph || Trace.Types.Events.Phase.COMPLETE,
66
- pid: Trace.Types.Events.ProcessID(1),
55
+ ph: ph || Types.Events.Phase.COMPLETE,
56
+ pid: Types.Events.ProcessID(1),
67
57
  tid,
68
- ts: Trace.Types.Timing.MicroSeconds(ts),
58
+ ts: Types.Timing.MicroSeconds(ts),
69
59
  args,
70
60
  };
71
61
 
72
62
  if (dur) {
73
- event.dur = Trace.Types.Timing.MicroSeconds(dur);
63
+ event.dur = Types.Timing.MicroSeconds(dur);
74
64
  }
75
65
  events.push(event);
76
66
  return event;
@@ -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 {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
6
- import {TraceLoader} from '../../testing/TraceLoader.js';
7
- import * as TimelineModel from '../timeline_model/timeline_model.js';
8
- import * as Trace from '../trace/trace.js';
5
+ import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
6
+ import {TraceLoader} from '../../../testing/TraceLoader.js';
7
+ import * as Trace from '../trace.js';
9
8
 
10
- describeWithEnvironment('TimelineModelFilter', () => {
11
- describe('TimelineVisibleEventsFilter', () => {
9
+ import * as TraceFilter from './TraceFilter.js';
10
+
11
+ describeWithEnvironment('TraceFilter', () => {
12
+ describe('VisibleEventsFilter', () => {
12
13
  it('accepts events that are set in the constructor and rejects other events', async function() {
13
14
  const {parsedTrace} = await TraceLoader.traceEngine(this, 'user-timings.json.gz');
14
15
  const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
15
16
  assert.isOk(userTimingEvent);
16
17
 
17
- const visibleFilter = new TimelineModel.TimelineModelFilter.TimelineVisibleEventsFilter([
18
+ const visibleFilter = new TraceFilter.VisibleEventsFilter([
18
19
  // Set an random record type to be visible - the exact type is not important for the test.
19
20
  Trace.Types.Events.Name.USER_TIMING,
20
21
  ]);
@@ -28,8 +29,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
28
29
  const consoleTimingEvent = (parsedTrace.UserTimings.consoleTimings).at(0);
29
30
  assert.isOk(consoleTimingEvent);
30
31
  assert.strictEqual(
31
- TimelineModel.TimelineModelFilter.TimelineVisibleEventsFilter.eventType(consoleTimingEvent),
32
- Trace.Types.Events.Name.CONSOLE_TIME);
32
+ TraceFilter.VisibleEventsFilter.eventType(consoleTimingEvent), Trace.Types.Events.Name.CONSOLE_TIME);
33
33
  });
34
34
 
35
35
  it('returns UserTiming if the event has the blink.user_timing category', async function() {
@@ -37,8 +37,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
37
37
  const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
38
38
  assert.isOk(userTimingEvent);
39
39
  assert.strictEqual(
40
- TimelineModel.TimelineModelFilter.TimelineVisibleEventsFilter.eventType(userTimingEvent),
41
- Trace.Types.Events.Name.USER_TIMING);
40
+ TraceFilter.VisibleEventsFilter.eventType(userTimingEvent), Trace.Types.Events.Name.USER_TIMING);
42
41
  });
43
42
 
44
43
  it('returns the event name if the event is any other category', async function() {
@@ -46,8 +45,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
46
45
  const layoutShiftEvent = parsedTrace.LayoutShifts.clusters.at(0)?.events.at(0);
47
46
  assert.isOk(layoutShiftEvent);
48
47
  assert.strictEqual(
49
- TimelineModel.TimelineModelFilter.TimelineVisibleEventsFilter.eventType(layoutShiftEvent),
50
- Trace.Types.Events.Name.LAYOUT_SHIFT);
48
+ TraceFilter.VisibleEventsFilter.eventType(layoutShiftEvent), Trace.Types.Events.Name.LAYOUT_SHIFT);
51
49
  });
52
50
  });
53
51
  });
@@ -58,7 +56,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
58
56
  const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
59
57
  assert.isOk(userTimingEvent);
60
58
 
61
- const invisibleFilter = new TimelineModel.TimelineModelFilter.TimelineInvisibleEventsFilter([
59
+ const invisibleFilter = new TraceFilter.InvisibleEventsFilter([
62
60
  Trace.Types.Events.Name.USER_TIMING,
63
61
 
64
62
  ]);
@@ -70,7 +68,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
70
68
  const layoutShiftEvent = parsedTrace.LayoutShifts.clusters.at(0)?.events.at(0);
71
69
  assert.isOk(layoutShiftEvent);
72
70
 
73
- const invisibleFilter = new TimelineModel.TimelineModelFilter.TimelineInvisibleEventsFilter([
71
+ const invisibleFilter = new TraceFilter.InvisibleEventsFilter([
74
72
  Trace.Types.Events.Name.USER_TIMING,
75
73
 
76
74
  ]);
@@ -84,7 +82,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
84
82
  const userTimingEvent = (parsedTrace.UserTimings.performanceMeasures).at(0);
85
83
  assert.isOk(userTimingEvent);
86
84
 
87
- const filter = new TimelineModel.TimelineModelFilter.ExclusiveNameFilter([
85
+ const filter = new TraceFilter.ExclusiveNameFilter([
88
86
  Trace.Types.Events.Name.LAYOUT_SHIFT,
89
87
  ]);
90
88
  assert.isTrue(filter.accept(userTimingEvent));
@@ -95,7 +93,7 @@ describeWithEnvironment('TimelineModelFilter', () => {
95
93
  const layoutShiftEvent = parsedTrace.LayoutShifts.clusters.at(0)?.events.at(0);
96
94
  assert.isOk(layoutShiftEvent);
97
95
 
98
- const filter = new TimelineModel.TimelineModelFilter.ExclusiveNameFilter([
96
+ const filter = new TraceFilter.ExclusiveNameFilter([
99
97
  Trace.Types.Events.Name.LAYOUT_SHIFT,
100
98
  ]);
101
99
  assert.isFalse(filter.accept(layoutShiftEvent));
@@ -0,0 +1,62 @@
1
+ // Copyright 2017 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import type * as Handlers from '../handlers/handlers.js';
6
+ import * as Types from '../types/types.js';
7
+
8
+ export abstract class TraceFilter {
9
+ abstract accept(_event: Types.Events.Event, parsedTrace?: Handlers.Types.ParsedTrace): boolean;
10
+ }
11
+
12
+ export class VisibleEventsFilter extends TraceFilter {
13
+ private readonly visibleTypes: Set<string>;
14
+ constructor(visibleTypes: string[]) {
15
+ super();
16
+ this.visibleTypes = new Set(visibleTypes);
17
+ }
18
+
19
+ accept(event: Types.Events.Event): boolean {
20
+ if (Types.Extensions.isSyntheticExtensionEntry(event)) {
21
+ return true;
22
+ }
23
+ return this.visibleTypes.has(VisibleEventsFilter.eventType(event));
24
+ }
25
+
26
+ static eventType(event: Types.Events.Event): Types.Events.Name {
27
+ // Any blink.console category events are treated as ConsoleTime events
28
+ if (event.cat.includes('blink.console')) {
29
+ return Types.Events.Name.CONSOLE_TIME;
30
+ }
31
+ // Any blink.user_timing egory events are treated as UserTiming events
32
+ if (event.cat.includes('blink.user_timing')) {
33
+ return Types.Events.Name.USER_TIMING;
34
+ }
35
+ return event.name as Types.Events.Name;
36
+ }
37
+ }
38
+
39
+ export class InvisibleEventsFilter extends TraceFilter {
40
+ #invisibleTypes: Set<Types.Events.Name>;
41
+
42
+ constructor(invisibleTypes: Types.Events.Name[]) {
43
+ super();
44
+ this.#invisibleTypes = new Set(invisibleTypes);
45
+ }
46
+
47
+ accept(event: Types.Events.Event): boolean {
48
+ return !this.#invisibleTypes.has(VisibleEventsFilter.eventType(event));
49
+ }
50
+ }
51
+
52
+ export class ExclusiveNameFilter extends TraceFilter {
53
+ #excludeNames: Set<Types.Events.Name>;
54
+ constructor(excludeNames: Types.Events.Name[]) {
55
+ super();
56
+ this.#excludeNames = new Set(excludeNames);
57
+ }
58
+
59
+ accept(event: Types.Events.Event): boolean {
60
+ return !this.#excludeNames.has(event.name as Types.Events.Name);
61
+ }
62
+ }