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,7 +2,6 @@
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 TimelineModel from '../../models/timeline_model/timeline_model.js';
6
5
  import * as Trace from '../../models/trace/trace.js';
7
6
  import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
8
7
  import {TraceLoader} from '../../testing/TraceLoader.js';
@@ -35,13 +34,13 @@ describeWithEnvironment('TimelineTreeView', function() {
35
34
  eventTreeView.setModelWithEvents(consoleTimings, parsedTrace);
36
35
  const tree = eventTreeView.buildTree();
37
36
  const topNodesIterator = tree.children().values();
38
- const firstNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
37
+ const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
39
38
  assert.strictEqual(firstNode.event?.name, 'first console time');
40
39
 
41
- const secondNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
40
+ const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
42
41
  assert.strictEqual(secondNode.event?.name, 'third console time');
43
42
 
44
- const bottomNode = firstNode.children().values().next().value as TimelineModel.TimelineProfileTree.Node;
43
+ const bottomNode = firstNode.children().values().next().value as Trace.Extras.TraceTree.Node;
45
44
  assert.strictEqual(bottomNode.event?.name, 'second console time');
46
45
  });
47
46
 
@@ -52,10 +51,10 @@ describeWithEnvironment('TimelineTreeView', function() {
52
51
  eventTreeView.setModelWithEvents(consoleTimings, parsedTrace);
53
52
  const tree = eventTreeView.buildTree();
54
53
  const topNodesIterator = tree.children().values();
55
- const firstNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
54
+ const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
56
55
  assert.strictEqual(firstNode.event?.name, 'mark1');
57
56
 
58
- const secondNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
57
+ const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
59
58
  assert.strictEqual(secondNode.event?.name, 'mark3');
60
59
  });
61
60
 
@@ -110,16 +109,16 @@ describeWithEnvironment('TimelineTreeView', function() {
110
109
 
111
110
  const tree = bottomUpTreeView.buildTree();
112
111
  const topNodesIterator = tree.children().values();
113
- const firstNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
112
+ const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
114
113
  assert.strictEqual(firstNode.event?.name, 'second console time');
115
114
 
116
- const secondNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
115
+ const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
117
116
  assert.strictEqual(secondNode.event?.name, 'first console time');
118
117
 
119
- const thirdNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
118
+ const thirdNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
120
119
  assert.strictEqual(thirdNode.event?.name, 'third console time');
121
120
 
122
- const childNode = firstNode.children().values().next().value as TimelineModel.TimelineProfileTree.Node;
121
+ const childNode = firstNode.children().values().next().value as Trace.Extras.TraceTree.Node;
123
122
  assert.strictEqual(childNode.event?.name, 'first console time');
124
123
  });
125
124
  });
@@ -136,13 +135,13 @@ describeWithEnvironment('TimelineTreeView', function() {
136
135
 
137
136
  const tree = callTreeView.buildTree();
138
137
  const topNodesIterator = tree.children().values();
139
- const firstNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
138
+ const firstNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
140
139
  assert.strictEqual(firstNode.event?.name, 'first console time');
141
140
 
142
- const secondNode = topNodesIterator.next().value as TimelineModel.TimelineProfileTree.Node;
141
+ const secondNode = topNodesIterator.next().value as Trace.Extras.TraceTree.Node;
143
142
  assert.strictEqual(secondNode.event?.name, 'third console time');
144
143
 
145
- const childNode = firstNode.children().values().next().value as TimelineModel.TimelineProfileTree.Node;
144
+ const childNode = firstNode.children().values().next().value as Trace.Extras.TraceTree.Node;
146
145
  assert.strictEqual(childNode.event?.name, 'second console time');
147
146
  });
148
147
  });
@@ -6,7 +6,6 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import * as Platform from '../../core/platform/platform.js';
8
8
  import * as SDK from '../../core/sdk/sdk.js';
9
- import * as TimelineModel from '../../models/timeline_model/timeline_model.js';
10
9
  import * as Trace from '../../models/trace/trace.js';
11
10
  import * as ThirdPartyWeb from '../../third_party/third-party-web/third-party-web.js';
12
11
  import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
@@ -152,12 +151,12 @@ const str_ = i18n.i18n.registerUIStrings('panels/timeline/TimelineTreeView.ts',
152
151
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
153
152
  export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableView.Searchable {
154
153
  #selectedEvents: Trace.Types.Events.Event[]|null;
155
- private searchResults: TimelineModel.TimelineProfileTree.Node[];
154
+ private searchResults: Trace.Extras.TraceTree.Node[];
156
155
  linkifier!: Components.Linkifier.Linkifier;
157
156
  dataGrid!: DataGrid.SortableDataGrid.SortableDataGrid<GridNode>;
158
- private lastHoveredProfileNode!: TimelineModel.TimelineProfileTree.Node|null;
157
+ private lastHoveredProfileNode!: Trace.Extras.TraceTree.Node|null;
159
158
  private textFilterInternal!: TimelineRegExp;
160
- private taskFilter!: TimelineModel.TimelineModelFilter.ExclusiveNameFilter;
159
+ private taskFilter!: Trace.Extras.TraceFilter.ExclusiveNameFilter;
161
160
  protected startTime!: Trace.Types.Timing.MilliSeconds;
162
161
  protected endTime!: Trace.Types.Timing.MilliSeconds;
163
162
  splitWidget!: UI.SplitWidget.SplitWidget;
@@ -166,8 +165,8 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
166
165
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
167
166
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
168
167
  private currentThreadSetting?: Common.Settings.Setting<any>;
169
- private lastSelectedNodeInternal?: TimelineModel.TimelineProfileTree.Node|null;
170
- private root?: TimelineModel.TimelineProfileTree.Node;
168
+ private lastSelectedNodeInternal?: Trace.Extras.TraceTree.Node|null;
169
+ private root?: Trace.Extras.TraceTree.Node;
171
170
  private currentResult?: number;
172
171
  textFilterUI?: UI.Toolbar.ToolbarInput;
173
172
  private caseSensitiveButton: UI.Toolbar.ToolbarToggle|undefined;
@@ -211,7 +210,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
211
210
  init(): void {
212
211
  this.linkifier = new Components.Linkifier.Linkifier();
213
212
 
214
- this.taskFilter = new TimelineModel.TimelineModelFilter.ExclusiveNameFilter([
213
+ this.taskFilter = new Trace.Extras.TraceFilter.ExclusiveNameFilter([
215
214
  Trace.Types.Events.Name.RUN_TASK,
216
215
  ]);
217
216
  this.textFilterInternal = new TimelineRegExp();
@@ -254,7 +253,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
254
253
  this.lastSelectedNodeInternal;
255
254
  }
256
255
 
257
- lastSelectedNode(): TimelineModel.TimelineProfileTree.Node|null|undefined {
256
+ lastSelectedNode(): Trace.Extras.TraceTree.Node|null|undefined {
258
257
  return this.lastSelectedNodeInternal;
259
258
  }
260
259
 
@@ -270,11 +269,11 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
270
269
  this.refreshTree();
271
270
  }
272
271
 
273
- filters(): TimelineModel.TimelineModelFilter.TimelineModelFilter[] {
272
+ filters(): Trace.Extras.TraceFilter.TraceFilter[] {
274
273
  return [this.taskFilter, this.textFilterInternal, ...(ActiveFilters.instance().activeFilters())];
275
274
  }
276
275
 
277
- filtersWithoutTextFilter(): TimelineModel.TimelineModelFilter.TimelineModelFilter[] {
276
+ filtersWithoutTextFilter(): Trace.Extras.TraceFilter.TraceFilter[] {
278
277
  return [this.taskFilter, ...(ActiveFilters.instance().activeFilters())];
279
278
  }
280
279
 
@@ -319,16 +318,15 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
319
318
  return this.#selectedEvents || [];
320
319
  }
321
320
 
322
- onHover(_node: TimelineModel.TimelineProfileTree.Node|null): void {
321
+ onHover(_node: Trace.Extras.TraceTree.Node|null): void {
323
322
  }
324
323
 
325
- appendContextMenuItems(_contextMenu: UI.ContextMenu.ContextMenu, _node: TimelineModel.TimelineProfileTree.Node):
326
- void {
324
+ appendContextMenuItems(_contextMenu: UI.ContextMenu.ContextMenu, _node: Trace.Extras.TraceTree.Node): void {
327
325
  }
328
326
 
329
- selectProfileNode(treeNode: TimelineModel.TimelineProfileTree.Node, suppressSelectedEvent: boolean): void {
327
+ selectProfileNode(treeNode: Trace.Extras.TraceTree.Node, suppressSelectedEvent: boolean): void {
330
328
  const pathToRoot = [];
331
- let node: (TimelineModel.TimelineProfileTree.Node|null)|TimelineModel.TimelineProfileTree.Node = treeNode;
329
+ let node: (Trace.Extras.TraceTree.Node|null)|Trace.Extras.TraceTree.Node = treeNode;
332
330
  for (; node; node = node.parent) {
333
331
  pathToRoot.push(node);
334
332
  }
@@ -385,13 +383,13 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
385
383
  }
386
384
  }
387
385
 
388
- buildTree(): TimelineModel.TimelineProfileTree.Node {
386
+ buildTree(): Trace.Extras.TraceTree.Node {
389
387
  throw new Error('Not Implemented');
390
388
  }
391
389
 
392
390
  buildTopDownTree(doNotAggregate: boolean, groupIdCallback: ((arg0: Trace.Types.Events.Event) => string)|null):
393
- TimelineModel.TimelineProfileTree.Node {
394
- return new TimelineModel.TimelineProfileTree.TopDownRootNode(
391
+ Trace.Extras.TraceTree.Node {
392
+ return new Trace.Extras.TraceTree.TopDownRootNode(
395
393
  this.selectedEvents(), this.filters(), this.startTime, this.endTime, doNotAggregate, groupIdCallback);
396
394
  }
397
395
 
@@ -521,7 +519,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
521
519
  UI.UIUtils.createTextChild(banner, i18nString(UIStrings.selectItemForDetails));
522
520
  }
523
521
 
524
- showDetailsForNode(_node: TimelineModel.TimelineProfileTree.Node): boolean {
522
+ showDetailsForNode(_node: Trace.Extras.TraceTree.Node): boolean {
525
523
  return false;
526
524
  }
527
525
 
@@ -551,7 +549,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
551
549
  }
552
550
  }
553
551
 
554
- dataGridNodeForTreeNode(treeNode: TimelineModel.TimelineProfileTree.Node): GridNode|null {
552
+ dataGridNodeForTreeNode(treeNode: Trace.Extras.TraceTree.Node): GridNode|null {
555
553
  return profileNodeToTreeGridNode.get(treeNode) || null;
556
554
  }
557
555
 
@@ -601,7 +599,7 @@ export class TimelineTreeView extends UI.Widget.VBox implements UI.SearchableVie
601
599
 
602
600
  export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<GridNode> {
603
601
  protected populated: boolean;
604
- profileNode: TimelineModel.TimelineProfileTree.Node;
602
+ profileNode: Trace.Extras.TraceTree.Node;
605
603
  protected treeView: TimelineTreeView;
606
604
  protected grandTotalTime: number;
607
605
  protected maxSelfTime: number;
@@ -609,8 +607,8 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
609
607
  linkElement: Element|null;
610
608
 
611
609
  constructor(
612
- profileNode: TimelineModel.TimelineProfileTree.Node, grandTotalTime: number, maxSelfTime: number,
613
- maxTotalTime: number, treeView: TimelineTreeView) {
610
+ profileNode: Trace.Extras.TraceTree.Node, grandTotalTime: number, maxSelfTime: number, maxTotalTime: number,
611
+ treeView: TimelineTreeView) {
614
612
  super(null, false);
615
613
  this.populated = false;
616
614
  this.profileNode = profileNode;
@@ -718,8 +716,8 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
718
716
 
719
717
  export class TreeGridNode extends GridNode {
720
718
  constructor(
721
- profileNode: TimelineModel.TimelineProfileTree.Node, grandTotalTime: number, maxSelfTime: number,
722
- maxTotalTime: number, treeView: TimelineTreeView) {
719
+ profileNode: Trace.Extras.TraceTree.Node, grandTotalTime: number, maxSelfTime: number, maxTotalTime: number,
720
+ treeView: TimelineTreeView) {
723
721
  super(profileNode, grandTotalTime, maxSelfTime, maxTotalTime, treeView);
724
722
  this.setHasChildren(this.profileNode.hasChildren());
725
723
  profileNodeToTreeGridNode.set(profileNode, this);
@@ -740,7 +738,7 @@ export class TreeGridNode extends GridNode {
740
738
  }
741
739
  }
742
740
 
743
- const profileNodeToTreeGridNode = new WeakMap<TimelineModel.TimelineProfileTree.Node, TreeGridNode>();
741
+ const profileNodeToTreeGridNode = new WeakMap<Trace.Extras.TraceTree.Node, TreeGridNode>();
744
742
 
745
743
  export class AggregatedTimelineTreeView extends TimelineTreeView {
746
744
  protected readonly groupBySetting: Common.Settings.Setting<AggregatedTimelineTreeView.GroupBy>;
@@ -790,7 +788,7 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
790
788
  return name;
791
789
  }
792
790
 
793
- displayInfoForGroupNode(node: TimelineModel.TimelineProfileTree.Node): {
791
+ displayInfoForGroupNode(node: Trace.Extras.TraceTree.Node): {
794
792
  name: string,
795
793
  color: string,
796
794
  icon: (Element|undefined),
@@ -863,17 +861,15 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
863
861
  i18nString(UIStrings.heaviestStackShown), i18nString(UIStrings.heaviestStackHidden)));
864
862
  }
865
863
 
866
- private buildHeaviestStack(treeNode: TimelineModel.TimelineProfileTree.Node):
867
- TimelineModel.TimelineProfileTree.Node[] {
864
+ private buildHeaviestStack(treeNode: Trace.Extras.TraceTree.Node): Trace.Extras.TraceTree.Node[] {
868
865
  console.assert(Boolean(treeNode.parent), 'Attempt to build stack for tree root');
869
- let result: TimelineModel.TimelineProfileTree.Node[] = [];
866
+ let result: Trace.Extras.TraceTree.Node[] = [];
870
867
  // Do not add root to the stack, as it's the tree itself.
871
- for (let node: TimelineModel.TimelineProfileTree.Node = treeNode; node && node.parent; node = node.parent) {
868
+ for (let node: Trace.Extras.TraceTree.Node = treeNode; node && node.parent; node = node.parent) {
872
869
  result.push(node);
873
870
  }
874
871
  result = result.reverse();
875
- for (let node: TimelineModel.TimelineProfileTree.Node = treeNode;
876
- node && node.children() && node.children().size;) {
872
+ for (let node: Trace.Extras.TraceTree.Node = treeNode; node && node.children() && node.children().size;) {
877
873
  const children = Array.from(node.children().values());
878
874
  node = children.reduce((a, b) => a.totalTime > b.totalTime ? a : b);
879
875
  result.push(node);
@@ -892,7 +888,7 @@ export class AggregatedTimelineTreeView extends TimelineTreeView {
892
888
  }
893
889
  }
894
890
 
895
- override showDetailsForNode(node: TimelineModel.TimelineProfileTree.Node): boolean {
891
+ override showDetailsForNode(node: Trace.Extras.TraceTree.Node): boolean {
896
892
  const stack = this.buildHeaviestStack(node);
897
893
  this.stackView.setStack(stack, node);
898
894
  this.stackView.show(this.detailsView.element);
@@ -1001,7 +997,7 @@ export class CallTreeTimelineTreeView extends AggregatedTimelineTreeView {
1001
997
  this.dataGrid.markColumnAsSortedBy('total', DataGrid.DataGrid.Order.Descending);
1002
998
  }
1003
999
 
1004
- override buildTree(): TimelineModel.TimelineProfileTree.Node {
1000
+ override buildTree(): Trace.Extras.TraceTree.Node {
1005
1001
  const grouping = this.groupBySetting.get();
1006
1002
  return this.buildTopDownTree(false, this.groupingFunction(grouping));
1007
1003
  }
@@ -1014,8 +1010,8 @@ export class BottomUpTimelineTreeView extends AggregatedTimelineTreeView {
1014
1010
  this.dataGrid.markColumnAsSortedBy('self', DataGrid.DataGrid.Order.Descending);
1015
1011
  }
1016
1012
 
1017
- override buildTree(): TimelineModel.TimelineProfileTree.Node {
1018
- return new TimelineModel.TimelineProfileTree.BottomUpRootNode(
1013
+ override buildTree(): Trace.Extras.TraceTree.Node {
1014
+ return new Trace.Extras.TraceTree.BottomUpRootNode(
1019
1015
  this.selectedEvents(), this.textFilter(), this.filtersWithoutTextFilter(), this.startTime, this.endTime,
1020
1016
  this.groupingFunction(this.groupBySetting.get()));
1021
1017
  }
@@ -1047,8 +1043,7 @@ export class TimelineStackView extends
1047
1043
  this.dataGrid.asWidget().show(this.element);
1048
1044
  }
1049
1045
 
1050
- setStack(stack: TimelineModel.TimelineProfileTree.Node[], selectedNode: TimelineModel.TimelineProfileTree.Node):
1051
- void {
1046
+ setStack(stack: Trace.Extras.TraceTree.Node[], selectedNode: Trace.Extras.TraceTree.Node): void {
1052
1047
  const rootNode = this.dataGrid.rootNode();
1053
1048
  rootNode.removeChildren();
1054
1049
  let nodeToReveal: GridNode|null = null;
@@ -1065,7 +1060,7 @@ export class TimelineStackView extends
1065
1060
  }
1066
1061
  }
1067
1062
 
1068
- selectedTreeNode(): TimelineModel.TimelineProfileTree.Node|null {
1063
+ selectedTreeNode(): Trace.Extras.TraceTree.Node|null {
1069
1064
  const selectedNode = this.dataGrid.selectedNode;
1070
1065
  return selectedNode && (selectedNode as GridNode).profileNode;
1071
1066
  }
@@ -631,7 +631,7 @@ describeWithMockConnection('TimelineUIUtils', function() {
631
631
  assert.deepEqual(rowData, [
632
632
  {
633
633
  title: 'Timestamp',
634
- value: '1058.3\xA0ms',
634
+ value: '1,058.3\xA0ms',
635
635
  },
636
636
  {title: 'Details', value: '{ "hello": "world"\n}'},
637
637
  ]);
@@ -653,7 +653,7 @@ describeWithMockConnection('TimelineUIUtils', function() {
653
653
  assert.deepEqual(rowData, [
654
654
  {
655
655
  title: 'Timestamp',
656
- value: '1005.5\xA0ms',
656
+ value: '1,005.5\xA0ms',
657
657
  },
658
658
  {
659
659
  title: 'Details',
@@ -40,7 +40,6 @@ import * as Root from '../../core/root/root.js';
40
40
  import * as SDK from '../../core/sdk/sdk.js';
41
41
  import type * as Protocol from '../../generated/protocol.js';
42
42
  import * as Bindings from '../../models/bindings/bindings.js';
43
- import * as TimelineModel from '../../models/timeline_model/timeline_model.js';
44
43
  import * as Trace from '../../models/trace/trace.js';
45
44
  import * as TraceBounds from '../../services/trace_bounds/trace_bounds.js';
46
45
  import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
@@ -577,14 +576,14 @@ type LinkifyLocationOptions = {
577
576
 
578
577
  export class TimelineUIUtils {
579
578
  static frameDisplayName(frame: Protocol.Runtime.CallFrame): string {
580
- if (!TimelineModel.TimelineJSProfile.TimelineJSProfileProcessor.isNativeRuntimeFrame(frame)) {
579
+ if (!Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.isNativeRuntimeFrame(frame)) {
581
580
  return UI.UIUtils.beautifyFunctionName(frame.functionName);
582
581
  }
583
- const nativeGroup = TimelineModel.TimelineJSProfile.TimelineJSProfileProcessor.nativeGroup(frame.functionName);
582
+ const nativeGroup = Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.nativeGroup(frame.functionName);
584
583
  switch (nativeGroup) {
585
- case TimelineModel.TimelineJSProfile.TimelineJSProfileProcessor.NativeGroups.COMPILE:
584
+ case Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.NativeGroups.COMPILE:
586
585
  return i18nString(UIStrings.compile);
587
- case TimelineModel.TimelineJSProfile.TimelineJSProfileProcessor.NativeGroups.PARSE:
586
+ case Trace.Extras.TimelineJSProfile.TimelineJSProfileProcessor.NativeGroups.PARSE:
588
587
  return i18nString(UIStrings.parse);
589
588
  }
590
589
  return frame.functionName;
@@ -723,7 +722,7 @@ export class TimelineUIUtils {
723
722
  case Trace.Types.Events.Name.MAJOR_GC:
724
723
  case Trace.Types.Events.Name.MINOR_GC: {
725
724
  const delta = unsafeEventArgs['usedHeapSizeBefore'] - unsafeEventArgs['usedHeapSizeAfter'];
726
- detailsText = i18nString(UIStrings.sCollected, {PH1: Platform.NumberUtilities.bytesToString(delta)});
725
+ detailsText = i18nString(UIStrings.sCollected, {PH1: i18n.ByteUtilities.bytesToString(delta)});
727
726
  break;
728
727
  }
729
728
  case Trace.Types.Events.Name.FUNCTION_CALL: {
@@ -1090,8 +1089,7 @@ export class TimelineUIUtils {
1090
1089
  contentHelper.appendTextRow(
1091
1090
  i18nString(UIStrings.compilationCacheStatus), i18nString(UIStrings.scriptLoadedFromCache));
1092
1091
  contentHelper.appendTextRow(
1093
- i18nString(UIStrings.compilationCacheSize),
1094
- Platform.NumberUtilities.bytesToString(eventData.consumedCacheSize));
1092
+ i18nString(UIStrings.compilationCacheSize), i18n.ByteUtilities.bytesToString(eventData.consumedCacheSize));
1095
1093
  const cacheKind = eventData.cacheKind;
1096
1094
  if (cacheKind) {
1097
1095
  contentHelper.appendTextRow(i18nString(UIStrings.compilationCacheKind), cacheKind);
@@ -1241,7 +1239,7 @@ export class TimelineUIUtils {
1241
1239
  case Trace.Types.Events.Name.MAJOR_GC:
1242
1240
  case Trace.Types.Events.Name.MINOR_GC: {
1243
1241
  const delta = unsafeEventArgs['usedHeapSizeBefore'] - unsafeEventArgs['usedHeapSizeAfter'];
1244
- contentHelper.appendTextRow(i18nString(UIStrings.collected), Platform.NumberUtilities.bytesToString(delta));
1242
+ contentHelper.appendTextRow(i18nString(UIStrings.collected), i18n.ByteUtilities.bytesToString(delta));
1245
1243
  break;
1246
1244
  }
1247
1245
 
@@ -1294,7 +1292,7 @@ export class TimelineUIUtils {
1294
1292
  url = unsafeEventData && unsafeEventData['url'] as Platform.DevToolsPath.UrlString;
1295
1293
  contentHelper.appendTextRow(
1296
1294
  i18nString(UIStrings.compilationCacheSize),
1297
- Platform.NumberUtilities.bytesToString(unsafeEventData['producedCacheSize']));
1295
+ i18n.ByteUtilities.bytesToString(unsafeEventData['producedCacheSize']));
1298
1296
  break;
1299
1297
  }
1300
1298
 
@@ -1306,7 +1304,7 @@ export class TimelineUIUtils {
1306
1304
  }
1307
1305
  contentHelper.appendTextRow(
1308
1306
  i18nString(UIStrings.compilationCacheSize),
1309
- Platform.NumberUtilities.bytesToString(unsafeEventData['producedCacheSize']));
1307
+ i18n.ByteUtilities.bytesToString(unsafeEventData['producedCacheSize']));
1310
1308
  break;
1311
1309
  }
1312
1310
 
@@ -1450,7 +1448,7 @@ export class TimelineUIUtils {
1450
1448
  contentHelper.appendTextRow(i18nString(UIStrings.relatedNode), nodeName);
1451
1449
  }
1452
1450
 
1453
- const CLSInsight = Trace.Insights.InsightRunners.CumulativeLayoutShift;
1451
+ const CLSInsight = Trace.Insights.Models.CLSCulprits;
1454
1452
  const failures = CLSInsight.getNonCompositedFailure(event);
1455
1453
  if (!failures.length) {
1456
1454
  break;
@@ -2197,8 +2195,8 @@ export class TimelineUIUtils {
2197
2195
  return eventDivider;
2198
2196
  }
2199
2197
 
2200
- static visibleEventsFilter(): TimelineModel.TimelineModelFilter.TimelineModelFilter {
2201
- return new TimelineModel.TimelineModelFilter.TimelineVisibleEventsFilter(Utils.EntryStyles.visibleTypes());
2198
+ static visibleEventsFilter(): Trace.Extras.TraceFilter.TraceFilter {
2199
+ return new Trace.Extras.TraceFilter.VisibleEventsFilter(Utils.EntryStyles.visibleTypes());
2202
2200
  }
2203
2201
 
2204
2202
  // Included only for layout tests.
@@ -173,8 +173,8 @@ export class LayoutShiftDetails extends HTMLElement {
173
173
  this.dispatchEvent(new Insights.EventRef.EventReferenceClick(event));
174
174
  }
175
175
 
176
- #renderAnimation(failure: Trace.Insights.InsightRunners.CumulativeLayoutShift.NoncompositedAnimationFailure):
177
- LitHtml.TemplateResult|null {
176
+ #renderAnimation(failure: Trace.Insights.Models.CLSCulprits.NoncompositedAnimationFailure): LitHtml.TemplateResult
177
+ |null {
178
178
  const event = failure.animation;
179
179
  if (!event) {
180
180
  return null;
@@ -201,7 +201,7 @@ export class LayoutShiftDetails extends HTMLElement {
201
201
  // clang-format on
202
202
  }
203
203
 
204
- #renderRootCauseValues(rootCauses: Trace.Insights.InsightRunners.CumulativeLayoutShift.LayoutShiftRootCausesData|
204
+ #renderRootCauseValues(rootCauses: Trace.Insights.Models.CLSCulprits.LayoutShiftRootCausesData|
205
205
  undefined): LitHtml.TemplateResult|null {
206
206
  return html`
207
207
  ${rootCauses?.fontRequests.map(fontReq => this.#renderFontRequest(fontReq))}
@@ -227,8 +227,7 @@ export class LayoutShiftDetails extends HTMLElement {
227
227
  #renderShiftRow(
228
228
  shift: Trace.Types.Events.SyntheticLayoutShift, parsedTrace: Trace.Handlers.Types.ParsedTrace,
229
229
  elementsShifted: Trace.Types.Events.TraceImpactedNode[],
230
- rootCauses: Trace.Insights.InsightRunners.CumulativeLayoutShift.LayoutShiftRootCausesData|
231
- undefined): LitHtml.TemplateResult|null {
230
+ rootCauses: Trace.Insights.Models.CLSCulprits.LayoutShiftRootCausesData|undefined): LitHtml.TemplateResult|null {
232
231
  const score = shift.args.data?.weighted_score_delta;
233
232
  if (!score) {
234
233
  return null;
@@ -291,7 +290,7 @@ export class LayoutShiftDetails extends HTMLElement {
291
290
  return null;
292
291
  }
293
292
  const insightsId = layoutShift.args.data?.navigationId ?? Trace.Types.Events.NO_NAVIGATION;
294
- const clsInsight = traceInsightsSets.get(insightsId)?.data.CumulativeLayoutShift;
293
+ const clsInsight = traceInsightsSets.get(insightsId)?.model.CLSCulprits;
295
294
  if (!clsInsight || clsInsight instanceof Error) {
296
295
  return null;
297
296
  }
@@ -337,7 +336,7 @@ export class LayoutShiftDetails extends HTMLElement {
337
336
  return null;
338
337
  }
339
338
  const insightsId = cluster.navigationId ?? Trace.Types.Events.NO_NAVIGATION;
340
- const clsInsight = traceInsightsSets.get(insightsId)?.data.CumulativeLayoutShift;
339
+ const clsInsight = traceInsightsSets.get(insightsId)?.model.CLSCulprits;
341
340
  if (!clsInsight || clsInsight instanceof Error) {
342
341
  return null;
343
342
  }
@@ -729,7 +729,7 @@ describeWithMockConnection('LiveMetricsView', () => {
729
729
  assert.match(fieldMessage!.innerText, /See how your local metrics compare/);
730
730
 
731
731
  const title = getLiveMetricsTitle(view);
732
- assert.strictEqual(title.innerText, 'Local metrics ');
732
+ assert.strictEqual(title.innerText, 'Local metrics');
733
733
  });
734
734
 
735
735
  it('should show when crux is enabled', async () => {
@@ -760,7 +760,7 @@ describeWithMockConnection('LiveMetricsView', () => {
760
760
  assert.match(fieldMessage!.innerText, /Jan.+2024/);
761
761
 
762
762
  const title = getLiveMetricsTitle(view);
763
- assert.strictEqual(title.innerText, 'Local and field metrics ');
763
+ assert.strictEqual(title.innerText, 'Local and field metrics');
764
764
  });
765
765
 
766
766
  it('should show empty values when crux is enabled but there is no field data', async () => {
@@ -784,7 +784,7 @@ describeWithMockConnection('LiveMetricsView', () => {
784
784
  assert.match(fieldMessage!.textContent!, /Not enough data/);
785
785
 
786
786
  const title = getLiveMetricsTitle(view);
787
- assert.strictEqual(title.innerText, 'Local and field metrics ');
787
+ assert.strictEqual(title.innerText, 'Local and field metrics');
788
788
  });
789
789
 
790
790
  it('should make initial request on render when crux is enabled', async () => {
@@ -10,7 +10,6 @@ import '../../../ui/components/menus/menus.js';
10
10
  import './MetricCard.js';
11
11
 
12
12
  import * as Common from '../../../core/common/common.js';
13
- import * as Host from '../../../core/host/host.js';
14
13
  import * as i18n from '../../../core/i18n/i18n.js';
15
14
  import type * as Platform from '../../../core/platform/platform.js';
16
15
  import type * as SDK from '../../../core/sdk/sdk.js';
@@ -175,11 +174,6 @@ const UIStrings = {
175
174
  * @description Text for a link that is inserted inside a larger text block that explains how to simulate different mobile and desktop devices.
176
175
  */
177
176
  simulateDifferentDevices: 'simulate different devices',
178
- /**
179
- * @description Tooltip text that explains how disabling the network cache can simulate the network connections of users that are visiting a page for the first time.
180
- */
181
- networkCacheExplanation:
182
- 'Disabling the network cache will simulate a network experience similar to a first time visitor.',
183
177
  /**
184
178
  * @description Text label for a checkbox that controls if the network cache is disabled.
185
179
  */
@@ -220,11 +214,15 @@ const UIStrings = {
220
214
  * @example {Chrome UX Report} PH1
221
215
  */
222
216
  seeHowYourLocalMetricsCompare: 'See how your local metrics compare to real user data in the {PH1}.',
217
+ /**
218
+ * @description Text for a link that goes to more documentation about local and field data. "Local" refers to performance metrics measured in the developers local environment. "field data" is data measured by real users in the field.
219
+ */
220
+ localFieldLearnMoreLink: 'Learn more about local and field data',
223
221
  /**
224
222
  * @description Tooltip text for a link that goes to documentation explaining the difference between local and field metrics. "Local metrics" are performance metrics measured in the developers local environment. "field data" is data measured by real users in the field.
225
223
  */
226
- learnMoreAboutMetrics:
227
- 'Local metrics are captured from the current page using your network connection and device. Field data is measured by real users using many different network connections and devices. Click to learn more about local and field metrics.',
224
+ localFieldLearnMoreTooltip:
225
+ 'Local metrics are captured from the current page using your network connection and device. Field data is measured by real users using many different network connections and devices.',
228
226
  /**
229
227
  * @description Tooltip text explaining that this user interaction was ignored when calculating the Interaction to Next Paint (INP) metric because the interaction delay fell beyond the 98th percentile of interaction delays on this page. "INP" is an acronym and should not be translated.
230
228
  */
@@ -664,12 +662,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
664
662
  textOverride: i18nString(UIStrings.disableNetworkCache),
665
663
  } as Settings.SettingCheckbox.SettingCheckboxData}
666
664
  ></setting-checkbox>
667
- <devtools-icon
668
- class="setting-hint"
669
- name="help"
670
- title=${i18nString(UIStrings.networkCacheExplanation)}
671
- ></devtools-icon>
672
- </div>
665
+ </div>
673
666
  `;
674
667
  // clang-format on
675
668
  }
@@ -1106,18 +1099,8 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
1106
1099
  const output = html`
1107
1100
  <div class="container">
1108
1101
  <div class="live-metrics-view">
1109
- <main class="live-metrics"
1110
- >
1111
- <h2 class="section-title">
1112
- ${liveMetricsTitle}
1113
- <devtools-button
1114
- class="section-title-help"
1115
- title=${i18nString(UIStrings.learnMoreAboutMetrics)}
1116
- .iconName=${'help'}
1117
- .variant=${Buttons.Button.Variant.ICON}
1118
- @click=${() => Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(helpLink)}
1119
- ></devtools-button>
1120
- </h2>
1102
+ <main class="live-metrics">
1103
+ <h2 class="section-title">${liveMetricsTitle}</h2>
1121
1104
  <div class="metric-cards"
1122
1105
  on-render=${ComponentHelpers.Directives.nodeRenderedCallback(node => {
1123
1106
  this.#tooltipContainerEl = node;
@@ -1133,6 +1116,11 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
1133
1116
  ${this.#renderInpCard()}
1134
1117
  </div>
1135
1118
  </div>
1119
+ <x-link
1120
+ href=${helpLink}
1121
+ class="local-field-link"
1122
+ title=${i18nString(UIStrings.localFieldLearnMoreTooltip)}
1123
+ >${i18nString(UIStrings.localFieldLearnMoreLink)}</x-link>
1136
1124
  ${this.#renderLogSection()}
1137
1125
  </main>
1138
1126
  <aside class="next-steps" aria-labelledby="next-steps-section-title">
@@ -145,7 +145,7 @@ describeWithMockConnection('MetricCard', () => {
145
145
 
146
146
  const localValueEl = getLocalMetricValue(view);
147
147
  assert.strictEqual(localValueEl.className, 'metric-value poor');
148
- assert.strictEqual(localValueEl.innerText, '2000 ms');
148
+ assert.strictEqual(localValueEl.innerText, '2,000 ms');
149
149
 
150
150
  const fieldValueEl = getFieldMetricValue(view);
151
151
  assert.strictEqual(fieldValueEl!.className, 'metric-value good');