chrome-devtools-frontend 1.0.1380117 → 1.0.1386602

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 (595) hide show
  1. package/.stylelintrc.json +2 -1
  2. package/config/gni/devtools_grd_files.gni +25 -4
  3. package/config/gni/devtools_image_files.gni +2 -0
  4. package/docs/README.md +4 -0
  5. package/docs/contributing/issues.md +13 -10
  6. package/docs/get_the_code.md +4 -1
  7. package/docs/policy/README.md +6 -0
  8. package/docs/policy/slow-close.md +52 -0
  9. package/docs/styleguide/ux/README.md +1 -0
  10. package/docs/styleguide/ux/numbers.md +106 -0
  11. package/front_end/Images/src/cookie_off.svg +3 -0
  12. package/front_end/Images/src/domain.svg +3 -0
  13. package/front_end/core/common/Color.ts +3 -3
  14. package/front_end/core/common/SettingRegistration.ts +7 -0
  15. package/front_end/core/host/AidaClient.ts +3 -3
  16. package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
  17. package/front_end/core/host/UserMetrics.ts +0 -8
  18. package/front_end/core/i18n/locales/af.json +1031 -887
  19. package/front_end/core/i18n/locales/am.json +1036 -892
  20. package/front_end/core/i18n/locales/ar.json +1039 -895
  21. package/front_end/core/i18n/locales/as.json +1032 -888
  22. package/front_end/core/i18n/locales/az.json +1034 -890
  23. package/front_end/core/i18n/locales/be.json +1031 -887
  24. package/front_end/core/i18n/locales/bg.json +1031 -887
  25. package/front_end/core/i18n/locales/bn.json +1033 -889
  26. package/front_end/core/i18n/locales/bs.json +1036 -892
  27. package/front_end/core/i18n/locales/ca.json +1031 -887
  28. package/front_end/core/i18n/locales/cs.json +1030 -886
  29. package/front_end/core/i18n/locales/cy.json +1032 -888
  30. package/front_end/core/i18n/locales/da.json +1031 -887
  31. package/front_end/core/i18n/locales/de.json +1033 -889
  32. package/front_end/core/i18n/locales/el.json +1031 -887
  33. package/front_end/core/i18n/locales/en-GB.json +1033 -889
  34. package/front_end/core/i18n/locales/es-419.json +1029 -885
  35. package/front_end/core/i18n/locales/es.json +1032 -888
  36. package/front_end/core/i18n/locales/et.json +1033 -889
  37. package/front_end/core/i18n/locales/eu.json +1031 -887
  38. package/front_end/core/i18n/locales/fa.json +1035 -891
  39. package/front_end/core/i18n/locales/fi.json +1035 -891
  40. package/front_end/core/i18n/locales/fil.json +1034 -890
  41. package/front_end/core/i18n/locales/fr-CA.json +1031 -887
  42. package/front_end/core/i18n/locales/fr.json +1049 -905
  43. package/front_end/core/i18n/locales/gl.json +1032 -888
  44. package/front_end/core/i18n/locales/gu.json +1035 -891
  45. package/front_end/core/i18n/locales/he.json +1031 -887
  46. package/front_end/core/i18n/locales/hi.json +1034 -890
  47. package/front_end/core/i18n/locales/hr.json +1031 -887
  48. package/front_end/core/i18n/locales/hu.json +1033 -889
  49. package/front_end/core/i18n/locales/hy.json +1046 -902
  50. package/front_end/core/i18n/locales/id.json +1023 -879
  51. package/front_end/core/i18n/locales/is.json +1032 -888
  52. package/front_end/core/i18n/locales/it.json +1031 -887
  53. package/front_end/core/i18n/locales/ja.json +1042 -898
  54. package/front_end/core/i18n/locales/ka.json +1034 -890
  55. package/front_end/core/i18n/locales/kk.json +1035 -891
  56. package/front_end/core/i18n/locales/km.json +1035 -891
  57. package/front_end/core/i18n/locales/kn.json +1036 -892
  58. package/front_end/core/i18n/locales/ko.json +1031 -887
  59. package/front_end/core/i18n/locales/ky.json +1032 -888
  60. package/front_end/core/i18n/locales/lo.json +1030 -886
  61. package/front_end/core/i18n/locales/lt.json +1032 -888
  62. package/front_end/core/i18n/locales/lv.json +1032 -888
  63. package/front_end/core/i18n/locales/mk.json +1032 -888
  64. package/front_end/core/i18n/locales/ml.json +1033 -889
  65. package/front_end/core/i18n/locales/mn.json +1034 -890
  66. package/front_end/core/i18n/locales/mr.json +1035 -891
  67. package/front_end/core/i18n/locales/ms.json +1033 -889
  68. package/front_end/core/i18n/locales/my.json +1033 -889
  69. package/front_end/core/i18n/locales/ne.json +1036 -892
  70. package/front_end/core/i18n/locales/nl.json +1033 -889
  71. package/front_end/core/i18n/locales/no.json +1036 -892
  72. package/front_end/core/i18n/locales/or.json +1043 -899
  73. package/front_end/core/i18n/locales/pa.json +1030 -886
  74. package/front_end/core/i18n/locales/pl.json +1032 -888
  75. package/front_end/core/i18n/locales/pt-PT.json +1033 -889
  76. package/front_end/core/i18n/locales/pt.json +1033 -889
  77. package/front_end/core/i18n/locales/ro.json +1029 -885
  78. package/front_end/core/i18n/locales/ru.json +1026 -882
  79. package/front_end/core/i18n/locales/si.json +1031 -887
  80. package/front_end/core/i18n/locales/sk.json +1033 -889
  81. package/front_end/core/i18n/locales/sl.json +1031 -887
  82. package/front_end/core/i18n/locales/sq.json +1061 -917
  83. package/front_end/core/i18n/locales/sr-Latn.json +1033 -889
  84. package/front_end/core/i18n/locales/sr.json +1033 -889
  85. package/front_end/core/i18n/locales/sv.json +1031 -887
  86. package/front_end/core/i18n/locales/sw.json +1033 -889
  87. package/front_end/core/i18n/locales/ta.json +1058 -914
  88. package/front_end/core/i18n/locales/te.json +1037 -893
  89. package/front_end/core/i18n/locales/th.json +1032 -888
  90. package/front_end/core/i18n/locales/tr.json +1031 -887
  91. package/front_end/core/i18n/locales/uk.json +1030 -886
  92. package/front_end/core/i18n/locales/ur.json +1031 -887
  93. package/front_end/core/i18n/locales/uz.json +1023 -879
  94. package/front_end/core/i18n/locales/vi.json +1032 -888
  95. package/front_end/core/i18n/locales/zh-HK.json +1032 -888
  96. package/front_end/core/i18n/locales/zh-TW.json +1032 -888
  97. package/front_end/core/i18n/locales/zh.json +1033 -889
  98. package/front_end/core/i18n/locales/zu.json +1032 -888
  99. package/front_end/core/root/Runtime.ts +0 -1
  100. package/front_end/core/sdk/NetworkManager.test.ts +50 -0
  101. package/front_end/core/sdk/NetworkManager.ts +6 -4
  102. package/front_end/core/sdk/SourceMap.test.ts +5 -5
  103. package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +7 -2
  104. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
  105. package/front_end/core/sdk/SourceMapScopes.test.ts +112 -45
  106. package/front_end/core/sdk/SourceMapScopes.ts +39 -14
  107. package/front_end/core/sdk/SourceMapScopesInfo.test.ts +51 -50
  108. package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
  109. package/front_end/core/sdk/sdk-meta.ts +27 -0
  110. package/front_end/devtools_compatibility.js +0 -1
  111. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
  112. package/front_end/entrypoints/inspector_main/renderingOptions.css +1 -1
  113. package/front_end/entrypoints/main/ExecutionContextSelector.test.ts +13 -3
  114. package/front_end/entrypoints/main/ExecutionContextSelector.ts +23 -1
  115. package/front_end/entrypoints/main/MainImpl.ts +0 -5
  116. package/front_end/generated/Deprecation.ts +0 -15
  117. package/front_end/generated/InspectorBackendCommands.js +1 -1
  118. package/front_end/generated/SupportedCSSProperties.js +0 -40
  119. package/front_end/generated/protocol.ts +1 -0
  120. package/front_end/models/bindings/IgnoreListManager.ts +25 -2
  121. package/front_end/models/crux-manager/CrUXManager.test.ts +25 -6
  122. package/front_end/models/crux-manager/CrUXManager.ts +23 -4
  123. package/front_end/models/extensions/ExtensionServer.test.ts +14 -0
  124. package/front_end/models/extensions/ExtensionServer.ts +28 -15
  125. package/front_end/models/issues_manager/CookieIssue.ts +79 -2
  126. package/front_end/models/issues_manager/IssuesManager.ts +1 -1
  127. package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  128. package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  129. package/front_end/models/javascript_metadata/NativeFunctions.js +14 -4
  130. package/front_end/models/persistence/EditFileSystemView.ts +2 -2
  131. package/front_end/models/persistence/editFileSystemView.css +6 -3
  132. package/front_end/models/persistence/workspaceSettingsTab.css +2 -2
  133. package/front_end/models/trace/extras/Metadata.test.ts +35 -2
  134. package/front_end/models/trace/extras/Metadata.ts +24 -5
  135. package/front_end/models/trace/extras/TraceTree.ts +28 -18
  136. package/front_end/models/trace/extras/URLForEntry.ts +6 -5
  137. package/front_end/models/trace/handlers/ImagePaintingHandler.ts +12 -0
  138. package/front_end/models/trace/helpers/Timing.ts +8 -0
  139. package/front_end/models/trace/insights/CLSCulprits.ts +11 -3
  140. package/front_end/models/trace/insights/DocumentLatency.ts +16 -3
  141. package/front_end/models/trace/insights/FontDisplay.ts +10 -3
  142. package/front_end/models/trace/insights/ImageDelivery.test.ts +98 -0
  143. package/front_end/models/trace/insights/ImageDelivery.ts +183 -0
  144. package/front_end/models/trace/insights/InteractionToNextPaint.ts +9 -3
  145. package/front_end/models/trace/insights/LCPDiscovery.ts +24 -3
  146. package/front_end/models/trace/insights/LCPPhases.ts +25 -3
  147. package/front_end/models/trace/insights/Models.ts +1 -0
  148. package/front_end/models/trace/insights/RenderBlocking.ts +10 -2
  149. package/front_end/models/trace/insights/SlowCSSSelector.ts +10 -3
  150. package/front_end/models/trace/insights/ThirdParties.ts +11 -3
  151. package/front_end/models/trace/insights/Viewport.ts +16 -3
  152. package/front_end/models/trace/insights/types.ts +13 -2
  153. package/front_end/models/trace/types/File.ts +7 -0
  154. package/front_end/models/trace/types/TraceEvents.ts +9 -2
  155. package/front_end/panels/animation/AnimationTimeline.ts +2 -4
  156. package/front_end/panels/application/ApplicationPanelSidebar.test.ts +0 -5
  157. package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -21
  158. package/front_end/panels/application/IndexedDBViews.ts +4 -1
  159. package/front_end/panels/application/ServiceWorkerCacheViews.ts +4 -1
  160. package/front_end/panels/application/StorageView.test.ts +1 -1
  161. package/front_end/panels/application/resourcesSidebar.css +1 -1
  162. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
  163. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
  164. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +1 -1
  165. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
  166. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +1 -1
  167. package/front_end/panels/console/ConsoleViewMessage.test.ts +25 -0
  168. package/front_end/panels/console/ConsoleViewMessage.ts +23 -0
  169. package/front_end/panels/coverage/CoverageListView.ts +1 -1
  170. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  171. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  172. package/front_end/panels/elements/ElementStatePaneWidget.test.ts +3 -2
  173. package/front_end/panels/elements/ElementStatePaneWidget.ts +7 -2
  174. package/front_end/panels/elements/ElementsSidebarPane.ts +3 -3
  175. package/front_end/panels/elements/ElementsTreeElement.ts +1 -0
  176. package/front_end/panels/elements/LayersWidget.ts +1 -1
  177. package/front_end/panels/elements/PropertyMatchers.test.ts +7 -0
  178. package/front_end/panels/elements/PropertyMatchers.ts +3 -0
  179. package/front_end/panels/elements/classesPaneWidget.css +1 -1
  180. package/front_end/panels/emulation/DeviceModeView.ts +1 -1
  181. package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
  182. package/front_end/panels/emulation/InspectedPagePlaceholder.ts +1 -1
  183. package/front_end/panels/freestyler/AiAgent.test.ts +319 -50
  184. package/front_end/panels/freestyler/AiAgent.ts +193 -141
  185. package/front_end/panels/freestyler/AiHistoryStorage.test.ts +159 -0
  186. package/front_end/panels/freestyler/AiHistoryStorage.ts +73 -0
  187. package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +14 -15
  188. package/front_end/panels/freestyler/DrJonesFileAgent.ts +3 -14
  189. package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +14 -13
  190. package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +3 -3
  191. package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +38 -36
  192. package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +3 -14
  193. package/front_end/panels/freestyler/FreestylerAgent.test.ts +195 -14
  194. package/front_end/panels/freestyler/FreestylerAgent.ts +13 -18
  195. package/front_end/panels/freestyler/FreestylerPanel.test.ts +71 -0
  196. package/front_end/panels/freestyler/FreestylerPanel.ts +99 -74
  197. package/front_end/panels/freestyler/components/FreestylerChatUi.ts +128 -29
  198. package/front_end/panels/freestyler/components/UserActionRow.ts +1 -0
  199. package/front_end/panels/freestyler/components/freestylerChatUi.css +21 -1
  200. package/front_end/panels/freestyler/components/userActionRow.css +2 -1
  201. package/front_end/panels/freestyler/freestyler.ts +1 -0
  202. package/front_end/panels/issues/IssueAggregator.test.ts +50 -0
  203. package/front_end/panels/issues/IssueAggregator.ts +10 -10
  204. package/front_end/panels/issues/issuesTree.css +1 -1
  205. package/front_end/panels/layer_viewer/LayerDetailsView.ts +1 -1
  206. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  207. package/front_end/panels/layer_viewer/PaintProfilerView.ts +1 -1
  208. package/front_end/panels/layers/LayersPanel.ts +1 -1
  209. package/front_end/panels/lighthouse/lighthouseStartView.css +1 -1
  210. package/front_end/panels/media/TickingFlameChart.ts +1 -1
  211. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +1 -1
  212. package/front_end/panels/network/BlockedURLsPane.ts +1 -1
  213. package/front_end/panels/network/NetworkDataGridNode.ts +1 -0
  214. package/front_end/panels/network/NetworkLogView.test.ts +1 -1
  215. package/front_end/panels/network/NetworkPanel.ts +40 -32
  216. package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
  217. package/front_end/panels/profiler/HeapProfileView.ts +9 -9
  218. package/front_end/panels/profiler/HeapTimelineOverview.ts +1 -1
  219. package/front_end/panels/profiler/IsolateSelector.ts +1 -1
  220. package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
  221. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -3
  222. package/front_end/panels/profiler/ProfileView.ts +2 -2
  223. package/front_end/panels/profiler/profileLauncherView.css +1 -1
  224. package/front_end/panels/profiler/profilesSidebarTree.css +1 -1
  225. package/front_end/panels/recorder/recorderController.css +1 -1
  226. package/front_end/panels/security/CookieControlsTreeElement.ts +18 -0
  227. package/front_end/panels/security/CookieControlsView.test.ts +29 -0
  228. package/front_end/panels/security/CookieControlsView.ts +265 -0
  229. package/front_end/panels/security/CookieReportView.test.ts +157 -0
  230. package/front_end/panels/security/CookieReportView.ts +208 -12
  231. package/front_end/panels/security/SecurityPanel.ts +5 -3
  232. package/front_end/panels/security/SecurityPanelSidebar.ts +6 -1
  233. package/front_end/panels/security/cookieControlsView.css +101 -0
  234. package/front_end/panels/security/cookieReportView.css +26 -3
  235. package/front_end/panels/security/security.ts +4 -0
  236. package/front_end/panels/security/sidebar.css +1 -1
  237. package/front_end/panels/settings/KeybindsSettingsTab.ts +3 -2
  238. package/front_end/panels/settings/SettingsScreen.ts +5 -1
  239. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +1 -1
  240. package/front_end/panels/settings/keybindsSettingsTab.css +6 -1
  241. package/front_end/panels/settings/settings-meta.ts +3 -1
  242. package/front_end/panels/settings/settingsScreen.css +10 -0
  243. package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
  244. package/front_end/panels/sources/NavigatorView.ts +1 -0
  245. package/front_end/panels/sources/navigatorTree.css +1 -1
  246. package/front_end/panels/sources/sourcesPanel.css +2 -2
  247. package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -7
  248. package/front_end/panels/timeline/AppenderUtils.ts +1 -1
  249. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +38 -41
  250. package/front_end/panels/timeline/ExtensionTrackAppender.ts +4 -13
  251. package/front_end/panels/timeline/InteractionsTrackAppender.ts +3 -4
  252. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +6 -12
  253. package/front_end/panels/timeline/ServerTimingsTrackAppender.ts +1 -10
  254. package/front_end/panels/timeline/ThreadAppender.ts +9 -12
  255. package/front_end/panels/timeline/TimelineController.ts +1 -1
  256. package/front_end/panels/timeline/TimelineDetailsView.test.ts +3 -2
  257. package/front_end/panels/timeline/TimelineDetailsView.ts +18 -17
  258. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +55 -36
  259. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -1
  260. package/front_end/panels/timeline/TimelineFlameChartView.ts +33 -14
  261. package/front_end/panels/timeline/TimelineHistoryManager.test.ts +20 -15
  262. package/front_end/panels/timeline/TimelineHistoryManager.ts +46 -58
  263. package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
  264. package/front_end/panels/timeline/TimelineLoader.ts +16 -0
  265. package/front_end/panels/timeline/TimelineMiniMap.ts +2 -2
  266. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
  267. package/front_end/panels/timeline/TimelinePanel.ts +145 -28
  268. package/front_end/panels/timeline/TimelineTreeView.ts +65 -16
  269. package/front_end/panels/timeline/TimelineUIUtils.ts +44 -0
  270. package/front_end/panels/timeline/TimingsTrackAppender.ts +6 -13
  271. package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +1 -0
  272. package/front_end/panels/timeline/components/FieldSettingsDialog.ts +6 -1
  273. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +12 -0
  274. package/front_end/panels/timeline/components/LiveMetricsView.ts +13 -18
  275. package/front_end/panels/timeline/components/Sidebar.ts +1 -4
  276. package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +1 -1
  277. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +1 -1
  278. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +21 -35
  279. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +16 -9
  280. package/front_end/panels/timeline/components/TimelineSummary.test.ts +75 -0
  281. package/front_end/panels/timeline/components/TimelineSummary.ts +101 -0
  282. package/front_end/panels/timeline/components/Utils.test.ts +49 -0
  283. package/front_end/panels/timeline/components/Utils.ts +2 -2
  284. package/front_end/panels/timeline/components/components.ts +2 -0
  285. package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +84 -0
  286. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +291 -0
  287. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +17 -41
  288. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +28 -46
  289. package/front_end/panels/timeline/components/insights/EventRef.ts +70 -2
  290. package/front_end/panels/timeline/components/insights/FontDisplay.ts +28 -46
  291. package/front_end/panels/timeline/components/insights/Helpers.ts +5 -208
  292. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +142 -0
  293. package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +30 -53
  294. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +36 -75
  295. package/front_end/panels/timeline/components/insights/LCPPhases.ts +15 -49
  296. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +27 -44
  297. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -197
  298. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +51 -74
  299. package/front_end/panels/timeline/components/insights/Table.ts +6 -5
  300. package/front_end/panels/timeline/components/insights/ThirdParties.ts +41 -61
  301. package/front_end/panels/timeline/components/insights/Viewport.ts +20 -31
  302. package/front_end/panels/timeline/components/insights/{sidebarInsight.css → baseInsightComponent.css} +9 -9
  303. package/front_end/panels/timeline/components/insights/insights.ts +4 -0
  304. package/front_end/panels/timeline/components/insights/types.ts +0 -7
  305. package/front_end/panels/timeline/components/liveMetricsView.css +5 -5
  306. package/front_end/panels/timeline/components/timelineSummary.css +67 -0
  307. package/front_end/panels/timeline/docs/flame_chart_migration.md +1 -1
  308. package/front_end/panels/timeline/fixtures/traces/README.md +4 -0
  309. package/front_end/panels/timeline/fixtures/traces/image-delivery.json.gz +0 -0
  310. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +22 -0
  311. package/front_end/panels/timeline/timeline-meta.ts +1 -1
  312. package/front_end/panels/timeline/timelineFlamechartPopover.css +14 -4
  313. package/front_end/panels/timeline/timelineHistoryManager.css +7 -3
  314. package/front_end/panels/timeline/timelinePanel.css +0 -1
  315. package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +5 -5
  316. package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +5 -6
  317. package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +11 -2
  318. package/front_end/panels/timeline/track_appenders/ServerTimingsTrackAppender.test.ts +0 -9
  319. package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +37 -44
  320. package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +44 -30
  321. package/front_end/panels/timeline/utils/EntryName.ts +1 -2
  322. package/front_end/panels/timeline/utils/Helpers.ts +19 -0
  323. package/front_end/panels/timeline/utils/IgnoreList.test.ts +52 -0
  324. package/front_end/panels/timeline/utils/IgnoreList.ts +68 -7
  325. package/front_end/panels/timeline/utils/SourceMapsResolver.ts +2 -0
  326. package/front_end/panels/webauthn/webauthnPane.css +1 -1
  327. package/front_end/panels/whats_new/ReleaseNote.test.ts +90 -0
  328. package/front_end/panels/whats_new/ReleaseNoteText.ts +52 -0
  329. package/front_end/panels/whats_new/ReleaseNoteView.ts +157 -0
  330. package/front_end/panels/whats_new/WhatsNewImpl.ts +102 -0
  331. package/front_end/panels/whats_new/releaseNoteView.css +121 -0
  332. package/front_end/panels/whats_new/resources/WNDT.md +6 -0
  333. package/front_end/panels/whats_new/resources/whatsnew.avif +0 -0
  334. package/front_end/panels/whats_new/whats_new-meta.ts +142 -0
  335. package/front_end/panels/whats_new/whats_new.ts +13 -0
  336. package/front_end/services/puppeteer/PuppeteerConnection.ts +4 -3
  337. package/front_end/testing/EnvironmentHelpers.ts +1 -2
  338. package/front_end/testing/SourceMapEncoder.ts +27 -11
  339. package/front_end/testing/TraceHelpers.ts +2 -1
  340. package/front_end/testing/TraceLoader.ts +6 -2
  341. package/front_end/third_party/lighthouse/README.chromium +2 -2
  342. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1380 -1369
  343. package/front_end/third_party/lighthouse/locales/ar-XB.json +88 -85
  344. package/front_end/third_party/lighthouse/locales/ar.json +98 -95
  345. package/front_end/third_party/lighthouse/locales/bg.json +88 -85
  346. package/front_end/third_party/lighthouse/locales/ca.json +91 -88
  347. package/front_end/third_party/lighthouse/locales/cs.json +91 -88
  348. package/front_end/third_party/lighthouse/locales/da.json +94 -91
  349. package/front_end/third_party/lighthouse/locales/de.json +92 -89
  350. package/front_end/third_party/lighthouse/locales/el.json +92 -89
  351. package/front_end/third_party/lighthouse/locales/en-GB.json +89 -86
  352. package/front_end/third_party/lighthouse/locales/en-US.json +23 -20
  353. package/front_end/third_party/lighthouse/locales/en-XA.json +88 -85
  354. package/front_end/third_party/lighthouse/locales/en-XL.json +23 -20
  355. package/front_end/third_party/lighthouse/locales/es-419.json +92 -89
  356. package/front_end/third_party/lighthouse/locales/es.json +91 -88
  357. package/front_end/third_party/lighthouse/locales/fi.json +92 -89
  358. package/front_end/third_party/lighthouse/locales/fil.json +93 -90
  359. package/front_end/third_party/lighthouse/locales/fr.json +94 -91
  360. package/front_end/third_party/lighthouse/locales/he.json +97 -94
  361. package/front_end/third_party/lighthouse/locales/hi.json +92 -89
  362. package/front_end/third_party/lighthouse/locales/hr.json +90 -87
  363. package/front_end/third_party/lighthouse/locales/hu.json +90 -87
  364. package/front_end/third_party/lighthouse/locales/id.json +91 -88
  365. package/front_end/third_party/lighthouse/locales/it.json +90 -87
  366. package/front_end/third_party/lighthouse/locales/ja.json +90 -87
  367. package/front_end/third_party/lighthouse/locales/ko.json +90 -87
  368. package/front_end/third_party/lighthouse/locales/lt.json +90 -87
  369. package/front_end/third_party/lighthouse/locales/lv.json +91 -88
  370. package/front_end/third_party/lighthouse/locales/nl.json +90 -87
  371. package/front_end/third_party/lighthouse/locales/no.json +92 -89
  372. package/front_end/third_party/lighthouse/locales/pl.json +90 -87
  373. package/front_end/third_party/lighthouse/locales/pt-PT.json +111 -108
  374. package/front_end/third_party/lighthouse/locales/pt.json +97 -94
  375. package/front_end/third_party/lighthouse/locales/ro.json +94 -91
  376. package/front_end/third_party/lighthouse/locales/ru.json +93 -90
  377. package/front_end/third_party/lighthouse/locales/sk.json +93 -90
  378. package/front_end/third_party/lighthouse/locales/sl.json +91 -88
  379. package/front_end/third_party/lighthouse/locales/sr-Latn.json +91 -88
  380. package/front_end/third_party/lighthouse/locales/sr.json +91 -88
  381. package/front_end/third_party/lighthouse/locales/sv.json +92 -89
  382. package/front_end/third_party/lighthouse/locales/ta.json +101 -98
  383. package/front_end/third_party/lighthouse/locales/te.json +92 -89
  384. package/front_end/third_party/lighthouse/locales/th.json +95 -92
  385. package/front_end/third_party/lighthouse/locales/tr.json +91 -88
  386. package/front_end/third_party/lighthouse/locales/uk.json +93 -90
  387. package/front_end/third_party/lighthouse/locales/vi.json +95 -92
  388. package/front_end/third_party/lighthouse/locales/zh-HK.json +92 -89
  389. package/front_end/third_party/lighthouse/locales/zh-TW.json +98 -95
  390. package/front_end/third_party/lighthouse/locales/zh.json +96 -93
  391. package/front_end/third_party/puppeteer/README.chromium +2 -2
  392. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +8 -0
  393. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  394. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  395. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +3 -1
  397. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  398. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +1 -0
  399. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  400. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +1 -0
  401. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
  402. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +4 -0
  403. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  404. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  405. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -0
  406. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  407. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -0
  408. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  409. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -2
  410. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  411. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +10 -4
  412. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  413. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  414. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
  415. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  416. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +2 -0
  417. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  418. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +7 -0
  419. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  420. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  421. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  422. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
  423. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  424. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts +1 -2
  425. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  426. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js +4 -4
  427. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js.map +1 -1
  428. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  429. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +24 -12
  430. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
  431. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -0
  432. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  433. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -0
  434. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  435. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +5 -0
  436. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  437. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts +30 -0
  438. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
  439. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js +8 -0
  440. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js.map +1 -0
  441. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts +1 -0
  442. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts.map +1 -1
  443. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  444. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  445. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  446. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  447. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +2 -2
  448. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  449. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  450. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  451. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  452. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  453. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +49 -0
  454. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +118 -88
  455. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +8 -0
  456. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  457. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  458. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  459. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +3 -1
  460. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  461. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +1 -0
  462. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  463. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +1 -0
  464. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
  465. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +4 -0
  466. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  467. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  468. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -0
  469. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  470. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -0
  471. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  472. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -2
  473. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  474. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +10 -4
  475. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  476. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  477. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
  478. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  479. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +2 -0
  480. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  481. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +7 -0
  482. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  483. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  484. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  485. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
  486. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  487. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts +1 -2
  488. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  489. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js +4 -4
  490. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js.map +1 -1
  491. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  492. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +24 -12
  493. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
  494. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -0
  495. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  496. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -0
  497. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  498. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +5 -0
  499. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  500. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts +30 -0
  501. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
  502. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js +7 -0
  503. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js.map +1 -0
  504. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts +1 -0
  505. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts.map +1 -1
  506. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  507. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  508. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  509. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +2 -2
  510. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  511. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  512. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  513. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  514. package/front_end/third_party/puppeteer/package/lib/types.d.ts +49 -0
  515. package/front_end/third_party/puppeteer/package/package.json +3 -3
  516. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +8 -0
  517. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +3 -1
  518. package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +1 -0
  519. package/front_end/third_party/puppeteer/package/src/api/Page.ts +5 -0
  520. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -0
  521. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -3
  522. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -0
  523. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +11 -0
  524. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
  525. package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +3 -5
  526. package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +34 -17
  527. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +4 -0
  528. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +5 -0
  529. package/front_end/third_party/puppeteer/package/src/common/DownloadBehavior.ts +31 -0
  530. package/front_end/third_party/puppeteer/package/src/common/common.ts +1 -0
  531. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  532. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +2 -0
  533. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  534. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
  535. package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +4 -1
  536. package/front_end/ui/components/dialogs/ButtonDialog.test.ts +78 -0
  537. package/front_end/ui/components/dialogs/ButtonDialog.ts +131 -0
  538. package/front_end/ui/components/dialogs/Dialog.test.ts +43 -0
  539. package/front_end/ui/components/dialogs/Dialog.ts +64 -2
  540. package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +15 -1
  541. package/front_end/ui/components/dialogs/ShortcutDialog.ts +28 -20
  542. package/front_end/ui/components/dialogs/buttonDialog.css +9 -0
  543. package/front_end/ui/components/dialogs/dialog.css +15 -0
  544. package/front_end/ui/components/dialogs/dialogs.ts +2 -0
  545. package/front_end/ui/components/dialogs/shortcutDialog.css +34 -6
  546. package/front_end/ui/components/docs/dialog/button_dialog.html +28 -0
  547. package/front_end/ui/components/docs/dialog/button_dialog.ts +29 -0
  548. package/front_end/ui/components/docs/performance_panel/basic.ts +1 -1
  549. package/front_end/ui/components/docs/performance_panel/timeline_history_manager.ts +6 -4
  550. package/front_end/ui/components/floating_button/FloatingButton.ts +3 -2
  551. package/front_end/ui/components/icon_button/fileSourceIcon.css +7 -3
  552. package/front_end/ui/components/issue_counter/IssueCounter.ts +15 -2
  553. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
  554. package/front_end/ui/components/markdown_view/MarkdownView.ts +15 -0
  555. package/front_end/ui/components/markdown_view/markdownView.css +1 -1
  556. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +24 -18
  557. package/front_end/ui/components/switch/SwitchImpl.ts +2 -2
  558. package/front_end/ui/legacy/Infobar.ts +6 -0
  559. package/front_end/ui/legacy/InspectorView.ts +40 -0
  560. package/front_end/ui/legacy/ListWidget.ts +4 -2
  561. package/front_end/ui/legacy/ThrottledWidget.ts +2 -2
  562. package/front_end/ui/legacy/Toolbar.ts +3 -3
  563. package/front_end/ui/legacy/UIUtils.ts +8 -6
  564. package/front_end/ui/legacy/Widget.ts +32 -0
  565. package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +6 -9
  566. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +35 -34
  567. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +1 -1
  568. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -2
  569. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
  570. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +32 -25
  571. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +18 -4
  572. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +80 -39
  573. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +4 -4
  574. package/front_end/ui/legacy/components/utils/jsUtils.css +8 -0
  575. package/front_end/ui/legacy/filter.css +1 -1
  576. package/front_end/ui/legacy/inspectorCommon.css +1 -1
  577. package/front_end/ui/legacy/listWidget.css +4 -1
  578. package/front_end/ui/legacy/reportView.css +1 -1
  579. package/front_end/ui/legacy/toolbar.css +3 -6
  580. package/front_end/ui/legacy/treeoutline.css +3 -1
  581. package/front_end/ui/visual_logging/KnownContextValues.ts +12 -1
  582. package/front_end/ui/visual_logging/LoggingDriver.test.ts +27 -1
  583. package/front_end/ui/visual_logging/LoggingDriver.ts +7 -4
  584. package/package.json +2 -3
  585. package/scripts/build/wasm-as.py +1 -1
  586. package/scripts/freestyler/auto_freestyler.js +12 -4
  587. package/scripts/freestyler/to_tsv.mjs +40 -0
  588. package/scripts/tools/update_goldens.py +11 -13
  589. package/front_end/panels/timeline/components/insights/SidebarInsight.test.ts +0 -72
  590. package/front_end/ui/components/docs/two_states_counter/basic.html +0 -27
  591. package/front_end/ui/components/docs/two_states_counter/basic.ts +0 -45
  592. package/front_end/ui/components/two_states_counter/TwoStatesCounter.test.ts +0 -73
  593. package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +0 -104
  594. package/front_end/ui/components/two_states_counter/twoStatesCounter.css +0 -37
  595. package/front_end/ui/components/two_states_counter/two_states_counter.ts +0 -9
@@ -131,6 +131,15 @@ dd.dl-title {
131
131
  align-items: center;
132
132
  }
133
133
 
134
+ .image-ref {
135
+ display: inline-flex;
136
+ align-items: center;
137
+
138
+ &:not(:empty) {
139
+ padding-top: var(--sys-size-5);
140
+ }
141
+ }
142
+
134
143
  .element-img {
135
144
  width: var(--sys-size-13);
136
145
  height: var(--sys-size-13);
@@ -194,16 +203,7 @@ ul.insight-icon-results {
194
203
  color: var(--sys-color-state-disabled);
195
204
  }
196
205
 
197
- .lcp-element {
198
- display: inline-flex;
199
- align-items: center;
200
- }
201
-
202
206
  .insight-results:not(:last-child) {
203
207
  border-bottom: var(--sys-size-1) solid var(--sys-color-divider);
204
208
  padding-bottom: var(--sys-size-5);
205
209
  }
206
-
207
- .lcp-element:not(:empty) {
208
- padding: inherit;
209
- }
@@ -2,11 +2,13 @@
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 * as BaseInsightComponent from './BaseInsightComponent.js';
5
6
  import * as CLSCulprits from './CLSCulprits.js';
6
7
  import * as DocumentLatency from './DocumentLatency.js';
7
8
  import * as EventRef from './EventRef.js';
8
9
  import * as FontDisplay from './FontDisplay.js';
9
10
  import * as Helpers from './Helpers.js';
11
+ import * as ImageDelivery from './ImageDelivery.js';
10
12
  import * as InteractionToNextPaint from './InteractionToNextPaint.js';
11
13
  import * as LCPDiscovery from './LCPDiscovery.js';
12
14
  import * as LCPPhases from './LCPPhases.js';
@@ -20,11 +22,13 @@ import * as Types from './types.js';
20
22
  import * as Viewport from './Viewport.js';
21
23
 
22
24
  export {
25
+ BaseInsightComponent,
23
26
  CLSCulprits,
24
27
  DocumentLatency,
25
28
  EventRef,
26
29
  FontDisplay,
27
30
  Helpers,
31
+ ImageDelivery,
28
32
  InteractionToNextPaint,
29
33
  LCPDiscovery,
30
34
  LCPPhases,
@@ -4,13 +4,6 @@
4
4
 
5
5
  import type * as Overlays from '../../overlays/overlays.js';
6
6
 
7
- export enum Category {
8
- ALL = 'All',
9
- INP = 'INP',
10
- LCP = 'LCP',
11
- CLS = 'CLS',
12
- }
13
-
14
7
  export interface ActiveInsight {
15
8
  name: string;
16
9
  insightSetKey: string;
@@ -277,6 +277,11 @@
277
277
  margin-bottom: 12px;
278
278
  }
279
279
 
280
+ .field-data-warning {
281
+ margin-top: 4px;
282
+ color: var(--color-error-text);
283
+ }
284
+
280
285
  .collection-period-range {
281
286
  font-weight: var(--ref-typeface-weight-medium);
282
287
  }
@@ -292,11 +297,6 @@ x-link { /* stylelint-disable-line selector-type-no-unknown */
292
297
  margin-top: 8px;
293
298
  }
294
299
 
295
- .environment-recs-title {
296
- margin-top: 12px;
297
- font-weight: var(--ref-typeface-weight-medium);
298
- }
299
-
300
300
  .environment-recs-list {
301
301
  margin: 0;
302
302
  padding-left: 20px;
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright 2024 The Chromium Authors. All rights reserved.
3
+ * Use of this source code is governed by a BSD-style license that can be
4
+ * found in the LICENSE file.
5
+ */
6
+
7
+ .timeline-summary {
8
+ font-size: var(--sys-typescale-body4-size);
9
+ display: flex;
10
+ flex-direction: column;
11
+ padding: var(--sys-size-4) var(--sys-size-8) var(--sys-size-4);
12
+ gap: var(--sys-size-5);
13
+ float: left;
14
+ }
15
+
16
+ .summary-range {
17
+ font-weight: var(--ref-typeface-weight-medium);
18
+ }
19
+
20
+ .category-summary {
21
+ gap: var(--sys-size-3);
22
+ display: flex;
23
+ flex-direction: column;
24
+ }
25
+
26
+ .category-row {
27
+ display: inline-block;
28
+ }
29
+
30
+ .category-swatch {
31
+ display: inline-block;
32
+ width: var(--sys-size-6);
33
+ height: var(--sys-size-6);
34
+ margin-right: var(--sys-size-4);
35
+ top: var(--sys-size-1);
36
+ position: relative;
37
+ border: var(--sys-size-1) solid var(--sys-color-neutral-outline);
38
+ }
39
+
40
+ .category-name {
41
+ display: inline-block;
42
+ }
43
+
44
+ .category-value {
45
+ text-align: right;
46
+ position: relative;
47
+ float: right;
48
+ z-index: 0;
49
+ width: var(--sys-size-19);
50
+ }
51
+
52
+ .background-bar-container {
53
+ position: absolute;
54
+ left: var(--sys-size-3);
55
+ right: 0;
56
+ top: 0;
57
+ bottom: 0;
58
+ z-index: -1;
59
+ }
60
+
61
+ .background-bar {
62
+ width: 100%;
63
+ float: right;
64
+ height: var(--sys-size-8);
65
+ background-color: var(--sys-color-surface-yellow);
66
+ border-bottom: var(--sys-size-1) solid var(--sys-color-yellow-outline);
67
+ }
@@ -48,7 +48,7 @@ Migrating a track consists of taking the code in the data provider corresponding
48
48
 
49
49
  5. Move the handling of the extra features.
50
50
 
51
- This is usually achieved by implementing the methods `colorForEvent`, `titleForEvent` and `highlightedEntryInfo`. Note how The implementation of these methods should be equivalent to the codepaths of the methods with the same names in the data provider related to the tracks/events being migrated. Here again we should look out for opportunities to introduce helpers to share between track appenders.
51
+ This is usually achieved by implementing the methods `colorForEvent`, `titleForEvent` and `popoverInfo`. Note how The implementation of these methods should be equivalent to the codepaths of the methods with the same names in the data provider related to the tracks/events being migrated. Here again we should look out for opportunities to introduce helpers to share between track appenders.
52
52
 
53
53
  Note: Queries done by the FlameChart renderer for events' extra features are passed from the data provider to the CompatibilityTracksAppender ([see example](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/TimelineFlameChartDataProvider.ts;l=1083)), which then [forwards](https://source.chromium.org/chromium/_/chromium/devtools/devtools-frontend/+/3925b7d73681966c9a8c844c49c7e815ecdcff82:front_end/panels/timeline/CompatibilityTracksAppender.ts;l=107) the query to the appropriate track appender using the data added when `registerTrackForLevel` was called.
54
54
 
@@ -213,3 +213,7 @@ Contains a trace where one Layout event has 26 invalidations associated with it.
213
213
  ### scheduler-post-task
214
214
 
215
215
  Generated from the [scheduler story](https://github.com/ChromeDevTools/performance-stories/tree/main/scheduler). Contains a series of `scheduler.postTask()` calls of different priority and delay, some nested and some ending up cancelled.
216
+
217
+ ### image-delivery
218
+
219
+ Generate from a page load [this HTML file](https://gist.github.com/adamraine/397e2bd08665f9e45f6072e446715115). Contains a series of test cases for the image delivery insight.
@@ -344,6 +344,22 @@ export class AnnotationOverlayActionEvent extends Event {
344
344
  }
345
345
  }
346
346
 
347
+ export class TimeRangeMouseOverEvent extends Event {
348
+ static readonly eventName = 'timerangemouseoverevent';
349
+
350
+ constructor(public overlay: TimeRangeLabel) {
351
+ super(TimeRangeMouseOverEvent.eventName, {bubbles: true});
352
+ }
353
+ }
354
+
355
+ export class TimeRangeMouseOutEvent extends Event {
356
+ static readonly eventName = 'timerangemouseoutevent';
357
+
358
+ constructor() {
359
+ super(TimeRangeMouseOutEvent.eventName, {bubbles: true});
360
+ }
361
+ }
362
+
347
363
  interface EntriesLinkVisibleEntries {
348
364
  entryFrom: Trace.Types.Events.Event;
349
365
  entryTo: Trace.Types.Events.Event|undefined;
@@ -1418,6 +1434,12 @@ export class Overlays extends EventTarget {
1418
1434
  component.addEventListener(Components.TimeRangeOverlay.TimeRangeRemoveEvent.eventName, () => {
1419
1435
  this.dispatchEvent(new AnnotationOverlayActionEvent(overlay, 'Remove'));
1420
1436
  });
1437
+ component.addEventListener('mouseover', () => {
1438
+ this.dispatchEvent(new TimeRangeMouseOverEvent(overlay));
1439
+ });
1440
+ component.addEventListener('mouseout', () => {
1441
+ this.dispatchEvent(new TimeRangeMouseOutEvent());
1442
+ });
1421
1443
  div.appendChild(component);
1422
1444
  return div;
1423
1445
  }
@@ -320,7 +320,7 @@ Common.Settings.registerSettingExtension({
320
320
  storageType: Common.Settings.SettingStorageType.SYNCED,
321
321
  settingName: 'annotations-hidden',
322
322
  settingType: Common.Settings.SettingType.BOOLEAN,
323
- defaultValue: true,
323
+ defaultValue: false,
324
324
  });
325
325
 
326
326
  Common.Linkifier.registerLinkifier({
@@ -16,19 +16,29 @@
16
16
  margin-right: 5px;
17
17
  }
18
18
 
19
- .timeline-flamechart-popover span.timeline-info-network-time {
19
+ .timeline-flamechart-popover span.popoverinfo-network-time {
20
20
  color: var(--sys-color-primary);
21
21
  }
22
22
 
23
- .timeline-flamechart-popover span.timeline-info-time {
23
+ .timeline-flamechart-popover span.popoverinfo-time {
24
24
  color: var(--sys-color-green);
25
25
  }
26
26
 
27
- .timeline-flamechart-popover span.timeline-info-warning {
27
+ .timeline-flamechart-popover span.popoverinfo-warning {
28
28
  color: var(--sys-color-error);
29
29
  }
30
30
 
31
- .timeline-flamechart-popover span.timeline-info-warning * {
31
+ .timeline-flamechart-popover span.popoverinfo-url-path,
32
+ .timeline-flamechart-popover span.popoverinfo-url-origin {
33
+ color: var(--sys-color-token-subtle);
34
+ font-size: 11px;
35
+ }
36
+
37
+ .timeline-flamechart-popover span.popoverinfo-url-origin {
38
+ font-style: italic;
39
+ }
40
+
41
+ .timeline-flamechart-popover span.popoverinfo-warning * {
32
42
  color: inherit;
33
43
  }
34
44
 
@@ -19,7 +19,7 @@
19
19
  padding: 6px 10px;
20
20
  position: relative;
21
21
 
22
- .time {
22
+ .metadata {
23
23
  margin-left: 3px;
24
24
  }
25
25
 
@@ -42,8 +42,12 @@
42
42
  height: 100%;
43
43
  }
44
44
 
45
+ .text-details {
46
+ flex-wrap: wrap;
47
+ justify-content: space-between;
48
+ }
49
+
45
50
  .text-details > span {
46
- flex: 1 0;
47
51
  padding-left: var(--sys-size-5);
48
52
  padding-right: var(--sys-size-5);
49
53
  }
@@ -52,7 +56,7 @@
52
56
  font: var(--sys-typescale-body4-medium);
53
57
  }
54
58
 
55
- .text-details span.time {
59
+ .text-details .metadata {
56
60
  color: var(--sys-color-token-subtle);
57
61
  font: var(--sys-typescale-body4-regular);
58
62
  text-align: right;
@@ -235,7 +235,6 @@
235
235
  user-select: text;
236
236
  text-overflow: ellipsis;
237
237
  overflow: hidden;
238
- padding: 0 3px;
239
238
  }
240
239
 
241
240
  .timeline-details-warning .timeline-details-view-row-value {
@@ -138,7 +138,7 @@ describeWithEnvironment('CompatibilityTracksAppender', function() {
138
138
  });
139
139
  });
140
140
 
141
- describe('highlightedEntryInfo', () => {
141
+ describe('popoverInfo', () => {
142
142
  it('shows the correct warning for a long task when hovered', async function() {
143
143
  await initTrackAppender(this, 'simple-js-program.json.gz');
144
144
  const events = parsedTrace.Renderer?.allTraceEntries;
@@ -149,7 +149,7 @@ describeWithEnvironment('CompatibilityTracksAppender', function() {
149
149
  if (!longTask) {
150
150
  throw new Error('Could not find long task');
151
151
  }
152
- const info = tracksAppender.highlightedEntryInfo(longTask, 2);
152
+ const info = tracksAppender.popoverInfo(longTask, 2);
153
153
  assert.strictEqual(info.warningElements?.length, 1);
154
154
  const warning = info.warningElements?.[0];
155
155
  if (!(warning instanceof HTMLSpanElement)) {
@@ -169,7 +169,7 @@ describeWithEnvironment('CompatibilityTracksAppender', function() {
169
169
  if (!recalcStyles) {
170
170
  throw new Error('Could not find recalc styles');
171
171
  }
172
- const info = tracksAppender.highlightedEntryInfo(recalcStyles, 2);
172
+ const info = tracksAppender.popoverInfo(recalcStyles, 2);
173
173
  assert.strictEqual(info.warningElements?.length, 1);
174
174
  const warning = info.warningElements?.[0];
175
175
  if (!(warning instanceof HTMLSpanElement)) {
@@ -189,7 +189,7 @@ describeWithEnvironment('CompatibilityTracksAppender', function() {
189
189
  if (!layout) {
190
190
  throw new Error('Could not find layout');
191
191
  }
192
- const info = tracksAppender.highlightedEntryInfo(layout, 2);
192
+ const info = tracksAppender.popoverInfo(layout, 2);
193
193
  assert.strictEqual(info.warningElements?.length, 1);
194
194
  const warning = info.warningElements?.[0];
195
195
  if (!(warning instanceof HTMLSpanElement)) {
@@ -217,7 +217,7 @@ describeWithEnvironment('CompatibilityTracksAppender', function() {
217
217
  if (!idleCallback) {
218
218
  throw new Error('Could not find idle callback');
219
219
  }
220
- const info = tracksAppender.highlightedEntryInfo(idleCallback, 2);
220
+ const info = tracksAppender.popoverInfo(idleCallback, 2);
221
221
  assert.strictEqual(info.warningElements?.length, 1);
222
222
  const warning = info.warningElements?.[0];
223
223
  if (!(warning instanceof HTMLSpanElement)) {
@@ -165,7 +165,7 @@ describeWithEnvironment('ExtensionTrackAppender', function() {
165
165
  const allExtensionTrackEntries =
166
166
  parsedTrace.ExtensionTraceData.extensionTrackData.map(track => Object.values(track.entriesByTrack)).flat(2);
167
167
  for (const event of allExtensionTrackEntries) {
168
- assert.strictEqual(extensionTrackAppenders[0].titleForEvent(event), event.name);
168
+ assert.notStrictEqual(extensionTrackAppenders[0].titleForEvent(event), event.name);
169
169
  if (event.args.color === 'tertiary') {
170
170
  // "tertiary" color category is mapped to --ref-palette-green70
171
171
  // which is faked out to 10, 10, 10
@@ -221,14 +221,13 @@ describeWithEnvironment('ExtensionTrackAppender', function() {
221
221
  });
222
222
  });
223
223
 
224
- describe('highlightedEntryInfo', function() {
225
- it('returns the info for an entry correctly', function() {
224
+ describe('titleForEvent', function() {
225
+ it('returns the title for an entry correctly', function() {
226
226
  const allExtensionTrackEntries =
227
227
  parsedTrace.ExtensionTraceData.extensionTrackData.map(track => Object.values(track.entriesByTrack)).flat(2);
228
- const highlightedEntryInfo = extensionTrackAppenders[0].highlightedEntryInfo(allExtensionTrackEntries[0]);
228
+ const title = extensionTrackAppenders[0].titleForEvent(allExtensionTrackEntries[0]);
229
229
  // The i18n encodes spaces using the u00A0 unicode character.
230
- assert.strictEqual(highlightedEntryInfo.formattedTime, '1.00\u00A0s');
231
- assert.strictEqual(highlightedEntryInfo.title, 'A hint if needed');
230
+ assert.strictEqual(title, 'A hint if needed');
232
231
  });
233
232
  });
234
233
  });
@@ -84,9 +84,18 @@ describeWithEnvironment('LayoutShiftsTrackAppender', function() {
84
84
  const {layoutShiftsTrackAppender, parsedTrace} = await renderTrackAppender(this, 'cls-no-nav.json.gz');
85
85
  const shifts = parsedTrace.LayoutShifts.clusters.flatMap(c => c.events);
86
86
  await layoutShiftsTrackAppender.preloadScreenshots(shifts);
87
- const info = layoutShiftsTrackAppender.highlightedEntryInfo(shifts[3]);
87
+
88
+ const info: Timeline.CompatibilityTracksAppender.PopoverInfo = {
89
+ title: 'title',
90
+ formattedTime: 'time',
91
+ warningElements: [],
92
+ additionalElements: [],
93
+ url: null,
94
+ };
95
+
96
+ layoutShiftsTrackAppender.setPopoverInfo(shifts[3], info);
88
97
  assert.strictEqual(info.title, 'Layout shift');
89
98
  assert.strictEqual(info.formattedTime, '0.0197');
90
- assert.strictEqual(info.additionalElement?.nodeName, 'DIV');
99
+ assert.strictEqual(info.additionalElements?.at(0)?.nodeName, 'DIV');
91
100
  });
92
101
  });
@@ -113,13 +113,4 @@ describeWithEnvironment('ServerTimingsTrackAppender', function() {
113
113
  }
114
114
  });
115
115
  });
116
-
117
- describe('highlightedEntryInfo', function() {
118
- it('returns the info for an entry correctly', function() {
119
- const serverTimings = parsedTrace.ServerTimings.serverTimings;
120
- const highlightedEntryInfo = serverTimingsTrackAppender.highlightedEntryInfo(serverTimings[0]);
121
- // The i18n encodes spaces using the u00A0 unicode character.
122
- assert.strictEqual(highlightedEntryInfo.formattedTime, '1.00\u00A0s');
123
- });
124
- });
125
116
  });
@@ -23,35 +23,20 @@ function initTrackAppender(
23
23
  parsedTrace: Trace.Handlers.Types.ParsedTrace,
24
24
  entryData: Trace.Types.Events.Event[],
25
25
  entryTypeByLevel: Timeline.TimelineFlameChartDataProvider.EntryType[],
26
- ): Timeline.ThreadAppender.ThreadAppender[] {
26
+ ): {
27
+ threadAppenders: Timeline.ThreadAppender.ThreadAppender[],
28
+ compatibilityTracksAppender: Timeline.CompatibilityTracksAppender.CompatibilityTracksAppender,
29
+ } {
27
30
  setupIgnoreListManagerEnvironment();
28
31
  const compatibilityTracksAppender = new Timeline.CompatibilityTracksAppender.CompatibilityTracksAppender(
29
32
  flameChartData, parsedTrace, entryData, entryTypeByLevel);
30
- return compatibilityTracksAppender.threadAppenders();
33
+ return {threadAppenders: compatibilityTracksAppender.threadAppenders(), compatibilityTracksAppender};
31
34
  }
32
- async function renderThreadAppendersFromTrace(context: Mocha.Context|Mocha.Suite, trace: string): Promise<{
33
- entryTypeByLevel: Timeline.TimelineFlameChartDataProvider.EntryType[],
34
- flameChartData: PerfUI.FlameChart.FlameChartTimelineData,
35
- threadAppenders: Timeline.ThreadAppender.ThreadAppender[],
36
- entryData: Trace.Types.Events.Event[],
37
- parsedTrace: Readonly<Trace.Handlers.Types.ParsedTrace>,
38
- }> {
39
- const entryTypeByLevel: Timeline.TimelineFlameChartDataProvider.EntryType[] = [];
40
- const entryData: Trace.Types.Events.Event[] = [];
41
- const flameChartData = PerfUI.FlameChart.FlameChartTimelineData.createEmpty();
35
+
36
+ async function renderThreadAppendersFromTrace(context: Mocha.Context|Mocha.Suite, trace: string):
37
+ Promise<ReturnType<typeof renderThreadAppendersFromParsedData>> {
42
38
  const {parsedTrace} = await TraceLoader.traceEngine(context, trace);
43
- const threadAppenders = initTrackAppender(flameChartData, parsedTrace, entryData, entryTypeByLevel);
44
- let level = 0;
45
- for (const appender of threadAppenders) {
46
- level = appender.appendTrackAtLevel(level);
47
- }
48
- return {
49
- entryTypeByLevel,
50
- parsedTrace,
51
- flameChartData,
52
- threadAppenders,
53
- entryData,
54
- };
39
+ return renderThreadAppendersFromParsedData(parsedTrace);
55
40
  }
56
41
 
57
42
  function renderThreadAppendersFromParsedData(parsedTrace: Trace.Handlers.Types.ParsedTrace): {
@@ -59,12 +44,14 @@ function renderThreadAppendersFromParsedData(parsedTrace: Trace.Handlers.Types.P
59
44
  flameChartData: PerfUI.FlameChart.FlameChartTimelineData,
60
45
  threadAppenders: Timeline.ThreadAppender.ThreadAppender[],
61
46
  entryData: Trace.Types.Events.Event[],
47
+ parsedTrace: Readonly<Trace.Handlers.Types.ParsedTrace>,
48
+ compatibilityTracksAppender: Timeline.CompatibilityTracksAppender.CompatibilityTracksAppender,
62
49
  } {
63
50
  const entryTypeByLevel: Timeline.TimelineFlameChartDataProvider.EntryType[] = [];
64
51
  const entryData: Trace.Types.Events.Event[] = [];
65
52
  const flameChartData = PerfUI.FlameChart.FlameChartTimelineData.createEmpty();
66
-
67
- const threadAppenders = initTrackAppender(flameChartData, parsedTrace, entryData, entryTypeByLevel);
53
+ const {threadAppenders, compatibilityTracksAppender} =
54
+ initTrackAppender(flameChartData, parsedTrace, entryData, entryTypeByLevel);
68
55
  let level = 0;
69
56
  for (const appender of threadAppenders) {
70
57
  level = appender.appendTrackAtLevel(level);
@@ -73,6 +60,8 @@ function renderThreadAppendersFromParsedData(parsedTrace: Trace.Handlers.Types.P
73
60
  return {
74
61
  entryTypeByLevel,
75
62
  flameChartData,
63
+ compatibilityTracksAppender,
64
+ parsedTrace,
76
65
  threadAppenders,
77
66
  entryData,
78
67
  };
@@ -268,16 +257,16 @@ describeWithEnvironment('ThreadAppender', function() {
268
257
  cpuProfileNode.setFunctionName(originalName);
269
258
  });
270
259
 
271
- it('shows the correct title for a trace event when hovered', async function() {
272
- const {threadAppenders, parsedTrace} = await renderThreadAppendersFromTrace(this, 'simple-js-program.json.gz');
273
- const events = parsedTrace.Renderer?.allTraceEntries;
274
- if (!events) {
275
- throw new Error('Could not find renderer events');
276
- }
277
- const info = threadAppenders[0].highlightedEntryInfo(events[0]);
278
- assert.strictEqual(info.title, 'Task');
279
- assert.strictEqual(info.formattedTime, '0.27\u00A0ms');
280
- });
260
+ function getDefaultInfo() {
261
+ const defaultInfo: Timeline.CompatibilityTracksAppender.PopoverInfo = {
262
+ title: 'title',
263
+ formattedTime: 'time',
264
+ warningElements: [],
265
+ additionalElements: [],
266
+ url: null,
267
+ };
268
+ return defaultInfo;
269
+ }
281
270
 
282
271
  it('shows self time only for events with self time above the threshold when hovered', async function() {
283
272
  const {threadAppenders, parsedTrace} = await renderThreadAppendersFromTrace(this, 'simple-js-program.json.gz');
@@ -285,14 +274,16 @@ describeWithEnvironment('ThreadAppender', function() {
285
274
  if (!events) {
286
275
  throw new Error('Could not find renderer events');
287
276
  }
288
- const infoForShortEvent = threadAppenders[0].highlightedEntryInfo(events[0]);
277
+ const infoForShortEvent = getDefaultInfo();
278
+ threadAppenders[0].setPopoverInfo(events[0], infoForShortEvent);
289
279
  assert.strictEqual(infoForShortEvent.formattedTime, '0.27\u00A0ms');
290
280
 
291
281
  const longTask = events.find(e => (e.dur || 0) > 1_000_000);
292
282
  if (!longTask) {
293
283
  throw new Error('Could not find long task');
294
284
  }
295
- const infoForLongEvent = threadAppenders[0].highlightedEntryInfo(longTask);
285
+ const infoForLongEvent = getDefaultInfo();
286
+ threadAppenders[0].setPopoverInfo(longTask, infoForLongEvent);
296
287
  assert.strictEqual(infoForLongEvent.formattedTime, '1.30\u00A0s (self 47\u00A0μs)');
297
288
  });
298
289
 
@@ -302,18 +293,20 @@ describeWithEnvironment('ThreadAppender', function() {
302
293
  if (!events) {
303
294
  throw new Error('Could not find renderer events');
304
295
  }
305
- const infoForShortEvent = threadAppenders[0].highlightedEntryInfo(events[0]);
296
+ const infoForShortEvent = getDefaultInfo();
297
+ threadAppenders[0].setPopoverInfo(events[0], infoForShortEvent);
306
298
  assert.strictEqual(infoForShortEvent.formattedTime, '0.27\u00A0ms');
307
299
 
308
300
  const longTask = events.find(e => (e.dur || 0) > 1_000_000);
309
301
  if (!longTask) {
310
302
  throw new Error('Could not find long task');
311
303
  }
312
- const infoForLongEvent = threadAppenders[0].highlightedEntryInfo(longTask);
304
+ const infoForLongEvent = getDefaultInfo();
305
+ threadAppenders[0].setPopoverInfo(longTask, infoForLongEvent);
313
306
  assert.strictEqual(infoForLongEvent.formattedTime, '1.30\u00A0s (self 47\u00A0μs)');
314
307
  });
315
308
 
316
- it('shows the correct title for a profile call when hovered', async function() {
309
+ it('shows the right time for a profile call when hovered', async function() {
317
310
  const {threadAppenders, parsedTrace} = await renderThreadAppendersFromTrace(this, 'simple-js-program.json.gz');
318
311
  const rendererHandler = parsedTrace.Renderer;
319
312
  if (!rendererHandler) {
@@ -327,8 +320,8 @@ describeWithEnvironment('ThreadAppender', function() {
327
320
  throw new Error('Could not find renderer events');
328
321
  }
329
322
 
330
- const info = threadAppenders[0].highlightedEntryInfo(profileCalls[0]);
331
- assert.strictEqual(info.title, '(anonymous)');
323
+ const info = getDefaultInfo();
324
+ threadAppenders[0].setPopoverInfo(profileCalls[0], info);
332
325
  assert.strictEqual(info.formattedTime, '15\u00A0μs');
333
326
  });
334
327
  it('candy-stripes long tasks', async function() {
@@ -488,7 +481,7 @@ describeWithEnvironment('ThreadAppender', function() {
488
481
  assert.deepEqual(flameChartData.entryStartTimes, [0.1, 0.1, 0.1, 0.2]);
489
482
  assert.deepEqual(flameChartData.entryTotalTimes, [0.2, 0.1, 0.025, 0.1]);
490
483
  assert.strictEqual(threadAppenders.length, 1);
491
- assert.strictEqual(threadAppenders[0].titleForEvent(callFrameB), 'On ignore list');
484
+ assert.strictEqual(threadAppenders[0].titleForEvent(callFrameB), 'On ignore list (\\\/bundled\\.js$)');
492
485
  });
493
486
  });
494
487
  describe('showAllEvents', () => {