chrome-devtools-frontend 1.0.1362775 → 1.0.1367881

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 (860) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.stylelintrc.json +2 -1
  3. package/config/gni/devtools_grd_files.gni +14 -2
  4. package/config/gni/devtools_image_files.gni +2 -1
  5. package/docs/contributing/issues.md +15 -0
  6. package/extensions/cxx_debugging/src/ExtensionOptions.ts +0 -1
  7. package/extensions/cxx_debugging/third_party/llvm/README.chromium +1 -1
  8. package/front_end/.eslintrc.js +0 -5
  9. package/front_end/Images/src/button-magic.svg +3 -0
  10. package/front_end/Images/src/performance-panel-delete-annotation.svg +32 -0
  11. package/front_end/Images/src/performance-panel-diagram.svg +19 -14
  12. package/front_end/Images/src/performance-panel-entry-label.svg +9 -16
  13. package/front_end/Images/src/performance-panel-time-range.svg +2 -8
  14. package/front_end/core/common/AppProvider.ts +1 -1
  15. package/front_end/core/common/Object.ts +2 -7
  16. package/front_end/core/common/SettingRegistration.ts +1 -1
  17. package/front_end/core/common/Settings.ts +1 -1
  18. package/front_end/core/host/AidaClient.ts +7 -1
  19. package/front_end/core/host/InspectorFrontendHost.ts +1 -1
  20. package/front_end/core/host/ResourceLoader.ts +1 -1
  21. package/front_end/core/host/UserMetrics.ts +14 -2
  22. package/front_end/core/i18n/time-utilities.ts +7 -1
  23. package/front_end/core/platform/ArrayUtilities.ts +1 -0
  24. package/front_end/core/platform/DevToolsPath.ts +1 -1
  25. package/front_end/core/platform/Timing.ts +1 -1
  26. package/front_end/core/platform/UIString.ts +1 -1
  27. package/front_end/core/platform/UserVisibleError.ts +1 -1
  28. package/front_end/core/root/Runtime.ts +11 -2
  29. package/front_end/core/sdk/AccessibilityModel.ts +3 -4
  30. package/front_end/core/sdk/CPUProfilerModel.ts +3 -4
  31. package/front_end/core/sdk/CSSContainerQuery.ts +3 -3
  32. package/front_end/core/sdk/CSSLayer.ts +2 -2
  33. package/front_end/core/sdk/CSSMatchedStyles.test.ts +1 -0
  34. package/front_end/core/sdk/CSSMatchedStyles.ts +10 -2
  35. package/front_end/core/sdk/CSSMedia.ts +2 -2
  36. package/front_end/core/sdk/CSSMetadata.ts +21 -0
  37. package/front_end/core/sdk/CSSModel.ts +1 -0
  38. package/front_end/core/sdk/CSSProperty.ts +2 -2
  39. package/front_end/core/sdk/CSSQuery.ts +2 -2
  40. package/front_end/core/sdk/CSSRule.ts +2 -2
  41. package/front_end/core/sdk/CSSScope.ts +2 -2
  42. package/front_end/core/sdk/CSSStyleDeclaration.ts +3 -3
  43. package/front_end/core/sdk/CSSStyleSheetHeader.ts +4 -4
  44. package/front_end/core/sdk/CSSSupports.ts +2 -2
  45. package/front_end/core/sdk/CookieModel.ts +1 -1
  46. package/front_end/core/sdk/DOMDebuggerModel.ts +1 -1
  47. package/front_end/core/sdk/DebuggerModel.ts +9 -3
  48. package/front_end/core/sdk/EnhancedTracesParser.test.ts +1 -5
  49. package/front_end/core/sdk/EnhancedTracesParser.ts +2 -6
  50. package/front_end/core/sdk/EventBreakpointsModel.ts +1 -2
  51. package/front_end/core/sdk/FrameAssociated.ts +1 -1
  52. package/front_end/core/sdk/FrameManager.ts +9 -7
  53. package/front_end/core/sdk/HeapProfilerModel.ts +3 -4
  54. package/front_end/core/sdk/IsolateManager.ts +2 -3
  55. package/front_end/core/sdk/LayerTreeBase.ts +2 -2
  56. package/front_end/core/sdk/NetworkManager.ts +1 -1
  57. package/front_end/core/sdk/OverlayModel.ts +2 -2
  58. package/front_end/core/sdk/OverlayPersistentHighlighter.ts +1 -1
  59. package/front_end/core/sdk/PageLoad.ts +1 -1
  60. package/front_end/core/sdk/PageResourceLoader.ts +1 -1
  61. package/front_end/core/sdk/RemoteObject.ts +3 -3
  62. package/front_end/core/sdk/Resource.ts +2 -2
  63. package/front_end/core/sdk/ResourceTreeModel.ts +1 -1
  64. package/front_end/core/sdk/SDKModel.ts +1 -1
  65. package/front_end/core/sdk/Script.ts +5 -5
  66. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +5 -7
  67. package/front_end/core/sdk/SourceMap.ts +1 -1
  68. package/front_end/core/sdk/SourceMapManager.ts +1 -1
  69. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
  70. package/front_end/core/sdk/SourceMapScopesInfo.ts +2 -2
  71. package/front_end/core/sdk/Target.ts +3 -2
  72. package/front_end/core/sdk/TargetManager.ts +4 -1
  73. package/front_end/core/sdk/WebAuthnModel.ts +20 -0
  74. package/front_end/core/sdk/sdk-meta.ts +7 -0
  75. package/front_end/devtools_compatibility.js +3 -3
  76. package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +1 -1
  77. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +1 -1
  78. package/front_end/entrypoints/formatter_worker/IdentityFormatter.ts +1 -1
  79. package/front_end/entrypoints/formatter_worker/JSONFormatter.ts +1 -1
  80. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +1 -1
  81. package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +1 -1
  82. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +12 -12
  83. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +1 -1
  84. package/front_end/entrypoints/main/MainImpl.ts +11 -1
  85. package/front_end/generated/InspectorBackendCommands.js +5 -3
  86. package/front_end/generated/SupportedCSSProperties.js +20 -14
  87. package/front_end/generated/protocol-mapping.d.ts +10 -0
  88. package/front_end/generated/protocol-proxy-api.d.ts +12 -0
  89. package/front_end/generated/protocol.ts +32 -1
  90. package/front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js +4 -2
  91. package/front_end/models/bindings/CSSWorkspaceBinding.ts +2 -2
  92. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -2
  93. package/front_end/models/bindings/DebuggerLanguagePlugins.test.ts +1 -1
  94. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +2 -2
  95. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
  96. package/front_end/models/bindings/DefaultScriptMapping.ts +1 -1
  97. package/front_end/models/bindings/IgnoreListManager.test.ts +49 -12
  98. package/front_end/models/bindings/IgnoreListManager.ts +79 -5
  99. package/front_end/models/bindings/ResourceMapping.ts +1 -1
  100. package/front_end/models/bindings/StylesSourceMapping.ts +11 -6
  101. package/front_end/models/breakpoints/BreakpointManager.test.ts +1 -1
  102. package/front_end/models/extensions/ExtensionPanel.ts +1 -1
  103. package/front_end/models/extensions/ExtensionServer.test.ts +1 -1
  104. package/front_end/models/extensions/ExtensionServer.ts +1 -1
  105. package/front_end/models/extensions/ExtensionView.ts +1 -1
  106. package/front_end/models/extensions/LanguageExtensionEndpoint.ts +1 -1
  107. package/front_end/models/extensions/RecorderPluginManager.ts +1 -1
  108. package/front_end/models/har/Importer.ts +1 -1
  109. package/front_end/models/issues_manager/AttributionReportingIssue.ts +1 -1
  110. package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -2
  111. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
  112. package/front_end/models/issues_manager/CorsIssue.ts +1 -1
  113. package/front_end/models/issues_manager/HeavyAdIssue.ts +1 -1
  114. package/front_end/models/issues_manager/Issue.ts +1 -1
  115. package/front_end/models/issues_manager/IssueResolver.ts +2 -2
  116. package/front_end/models/issues_manager/IssuesManager.ts +1 -1
  117. package/front_end/models/issues_manager/LowTextContrastIssue.ts +1 -1
  118. package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
  119. package/front_end/models/issues_manager/PropertyRuleIssue.ts +1 -1
  120. package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
  121. package/front_end/models/issues_manager/RelatedIssue.ts +1 -1
  122. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +3 -3
  123. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +1 -1
  124. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
  125. package/front_end/models/javascript_metadata/NativeFunctions.js +69 -61
  126. package/front_end/models/live-metrics/LiveMetrics.ts +41 -34
  127. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +1 -1
  128. package/front_end/models/persistence/EditFileSystemView.ts +1 -1
  129. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +2 -3
  130. package/front_end/models/persistence/IsolatedFileSystemManager.ts +2 -3
  131. package/front_end/models/persistence/WorkspaceSettingsTab.ts +2 -2
  132. package/front_end/models/text_utils/ContentProvider.ts +3 -3
  133. package/front_end/models/text_utils/StaticContentProvider.ts +1 -5
  134. package/front_end/models/text_utils/TextUtils.ts +1 -1
  135. package/front_end/models/text_utils/WasmDisassembly.ts +1 -1
  136. package/front_end/models/timeline_model/TimelineProfileTree.test.ts +21 -21
  137. package/front_end/models/timeline_model/TimelineProfileTree.ts +1 -1
  138. package/front_end/models/trace/ModelImpl.test.ts +1 -1
  139. package/front_end/models/trace/ModelImpl.ts +10 -27
  140. package/front_end/models/trace/Processor.test.ts +16 -15
  141. package/front_end/models/trace/Processor.ts +33 -9
  142. package/front_end/models/trace/extras/FilmStrip.ts +2 -2
  143. package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +2 -2
  144. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +10 -1
  145. package/front_end/models/trace/handlers/MetaHandler.ts +4 -0
  146. package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +1 -1
  147. package/front_end/models/trace/handlers/RendererHandler.test.ts +1 -1
  148. package/front_end/models/trace/handlers/SamplesHandler.test.ts +2 -2
  149. package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +5 -4
  150. package/front_end/models/trace/handlers/ScreenshotsHandler.ts +7 -5
  151. package/front_end/models/trace/handlers/Threads.ts +2 -2
  152. package/front_end/models/trace/handlers/WarningsHandler.ts +1 -1
  153. package/front_end/models/trace/helpers/Network.ts +20 -2
  154. package/front_end/models/trace/helpers/SyntheticEvents.test.ts +1 -1
  155. package/front_end/models/trace/helpers/Trace.test.ts +34 -3
  156. package/front_end/models/trace/helpers/Trace.ts +12 -0
  157. package/front_end/models/trace/helpers/TreeHelpers.test.ts +52 -0
  158. package/front_end/models/trace/helpers/TreeHelpers.ts +80 -1
  159. package/front_end/models/trace/insights/Common.ts +1 -1
  160. package/front_end/models/trace/insights/CumulativeLayoutShift.test.ts +24 -2
  161. package/front_end/models/trace/insights/CumulativeLayoutShift.ts +102 -27
  162. package/front_end/models/trace/insights/DocumentLatency.test.ts +22 -11
  163. package/front_end/models/trace/insights/DocumentLatency.ts +9 -6
  164. package/front_end/models/trace/insights/FontDisplay.ts +5 -1
  165. package/front_end/models/trace/insights/InteractionToNextPaint.ts +4 -3
  166. package/front_end/models/trace/insights/LargestContentfulPaint.test.ts +9 -1
  167. package/front_end/models/trace/insights/LargestContentfulPaint.ts +26 -6
  168. package/front_end/models/trace/insights/RenderBlocking.test.ts +10 -16
  169. package/front_end/models/trace/insights/RenderBlocking.ts +6 -4
  170. package/front_end/models/trace/insights/SlowCSSSelector.ts +3 -1
  171. package/front_end/models/trace/insights/ThirdPartyWeb.ts +15 -2
  172. package/front_end/models/trace/insights/Viewport.ts +1 -0
  173. package/front_end/models/trace/insights/types.ts +14 -11
  174. package/front_end/models/trace/lantern/graph/BaseNode.ts +2 -2
  175. package/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +4 -3
  176. package/front_end/models/trace/lantern/simulation/TCPConnection.ts +1 -1
  177. package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +1 -1
  178. package/front_end/models/trace/root-causes/LayoutShift.ts +3 -20
  179. package/front_end/models/trace/types/Extensions.ts +3 -7
  180. package/front_end/models/trace/types/File.ts +2 -8
  181. package/front_end/models/trace/types/TraceEvents.ts +10 -4
  182. package/front_end/models/workspace/UISourceCode.test.ts +3 -3
  183. package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
  184. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +1 -1
  185. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
  186. package/front_end/panels/animation/AnimationModel.ts +1 -1
  187. package/front_end/panels/animation/AnimationTimeline.ts +1 -1
  188. package/front_end/panels/animation/AnimationUI.ts +1 -1
  189. package/front_end/panels/application/ApplicationPanelSidebar.test.ts +90 -0
  190. package/front_end/panels/application/ApplicationPanelSidebar.ts +123 -20
  191. package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
  192. package/front_end/panels/application/BackForwardCacheTreeElement.ts +1 -1
  193. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +1 -1
  194. package/front_end/panels/application/DOMStorageItemsView.ts +4 -2
  195. package/front_end/panels/application/ExtensionStorageItemsView.test.ts +89 -0
  196. package/front_end/panels/application/ExtensionStorageItemsView.ts +219 -0
  197. package/front_end/panels/application/ExtensionStorageModel.test.ts +12 -0
  198. package/front_end/panels/application/ExtensionStorageModel.ts +56 -13
  199. package/front_end/panels/application/IndexedDBViews.ts +14 -19
  200. package/front_end/panels/application/InterestGroupTreeElement.ts +1 -1
  201. package/front_end/panels/application/PreloadingTreeElement.ts +1 -1
  202. package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
  203. package/front_end/panels/application/ResourcesPanel.ts +18 -1
  204. package/front_end/panels/application/ServiceWorkerCacheTreeElement.ts +1 -1
  205. package/front_end/panels/application/SharedStorageListTreeElement.ts +1 -1
  206. package/front_end/panels/application/SharedStorageTreeElement.ts +2 -2
  207. package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
  208. package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
  209. package/front_end/panels/application/application.ts +2 -0
  210. package/front_end/panels/application/components/BackForwardCacheView.ts +76 -72
  211. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +32 -29
  212. package/front_end/panels/application/components/EndpointsGrid.ts +5 -4
  213. package/front_end/panels/application/components/FrameDetailsView.ts +110 -127
  214. package/front_end/panels/application/components/InterestGroupAccessGrid.ts +11 -11
  215. package/front_end/panels/application/components/OriginTrialTreeView.ts +36 -34
  216. package/front_end/panels/application/components/PermissionsPolicySection.ts +31 -33
  217. package/front_end/panels/application/components/ProtocolHandlersView.ts +15 -14
  218. package/front_end/panels/application/components/ReportsGrid.ts +11 -9
  219. package/front_end/panels/application/components/ServiceWorkerRouterView.ts +0 -1
  220. package/front_end/panels/application/components/SharedStorageAccessGrid.ts +11 -11
  221. package/front_end/panels/application/components/SharedStorageMetadataView.ts +16 -14
  222. package/front_end/panels/application/components/StackTrace.ts +18 -17
  223. package/front_end/panels/application/components/StorageMetadataView.ts +19 -18
  224. package/front_end/panels/application/components/TrustTokensView.ts +17 -16
  225. package/front_end/panels/application/preloading/PreloadingView.ts +14 -11
  226. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +7 -6
  227. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +42 -45
  228. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +13 -11
  229. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +11 -9
  230. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +5 -4
  231. package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -0
  232. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +10 -8
  233. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +20 -16
  234. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +50 -57
  235. package/front_end/panels/application/resourcesSidebar.css +0 -3
  236. package/front_end/panels/autofill/AutofillView.ts +19 -14
  237. package/front_end/panels/console/ConsoleFilter.ts +1 -1
  238. package/front_end/panels/console/ConsoleSidebar.ts +1 -1
  239. package/front_end/panels/console/ConsoleViewMessage.ts +2 -2
  240. package/front_end/panels/console/consoleView.css +4 -3
  241. package/front_end/panels/coverage/CoverageDecorationManager.ts +1 -1
  242. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +1 -1
  243. package/front_end/panels/css_overview/CSSOverviewController.ts +2 -2
  244. package/front_end/panels/css_overview/CSSOverviewModel.ts +2 -3
  245. package/front_end/panels/css_overview/CSSOverviewPanel.ts +5 -7
  246. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +12 -10
  247. package/front_end/panels/elements/AccessibilityTreeUtils.ts +9 -4
  248. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +3 -3
  249. package/front_end/panels/elements/ComputedStyleWidget.ts +6 -4
  250. package/front_end/panels/elements/ElementsPanel.ts +7 -6
  251. package/front_end/panels/elements/ElementsTreeElement.ts +35 -0
  252. package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
  253. package/front_end/panels/elements/PropertyMatchers.test.ts +57 -0
  254. package/front_end/panels/elements/PropertyMatchers.ts +78 -1
  255. package/front_end/panels/elements/StyleEditorWidget.ts +2 -2
  256. package/front_end/panels/elements/StylePropertiesSection.test.ts +1 -0
  257. package/front_end/panels/elements/StylePropertyHighlighter.test.ts +1 -0
  258. package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -2
  259. package/front_end/panels/elements/StylePropertyTreeElement.test.ts +36 -3
  260. package/front_end/panels/elements/StylePropertyTreeElement.ts +72 -26
  261. package/front_end/panels/elements/StylesSidebarPane.test.ts +2 -0
  262. package/front_end/panels/elements/TopLayerContainer.ts +1 -2
  263. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +8 -7
  264. package/front_end/panels/elements/components/AdornerSettingsPane.ts +3 -4
  265. package/front_end/panels/elements/components/AnchorFunctionLinkSwatch.ts +8 -7
  266. package/front_end/panels/elements/components/CSSHintDetailsView.ts +3 -2
  267. package/front_end/panels/elements/components/CSSPropertyDocsView.ts +3 -2
  268. package/front_end/panels/elements/components/CSSQuery.ts +0 -1
  269. package/front_end/panels/elements/components/CSSVariableValueView.ts +1 -3
  270. package/front_end/panels/elements/components/ComputedStyleProperty.ts +0 -1
  271. package/front_end/panels/elements/components/ComputedStyleTrace.ts +0 -1
  272. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +15 -11
  273. package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +1 -1
  274. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +6 -4
  275. package/front_end/panels/elements/components/LayoutPane.ts +8 -7
  276. package/front_end/panels/elements/components/QueryContainer.test.ts +2 -3
  277. package/front_end/panels/elements/components/QueryContainer.ts +10 -9
  278. package/front_end/panels/elements/components/StylePropertyEditor.ts +4 -4
  279. package/front_end/panels/elements/components/computedStyleProperty.css +2 -1
  280. package/front_end/panels/elements/components/cssPropertyDocsView.css +3 -2
  281. package/front_end/panels/elements/elementsTreeOutline.css +17 -0
  282. package/front_end/panels/elements/stylesSidebarPane.css +2 -2
  283. package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
  284. package/front_end/panels/emulation/components/DeviceSizeInputElement.ts +3 -1
  285. package/front_end/panels/explain/components/ConsoleInsight.ts +47 -46
  286. package/front_end/panels/explain/components/consoleInsight.css +0 -9
  287. package/front_end/panels/freestyler/AiAgent.ts +8 -2
  288. package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +201 -0
  289. package/front_end/panels/freestyler/DrJonesFileAgent.ts +196 -0
  290. package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +1 -1
  291. package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +34 -31
  292. package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +195 -0
  293. package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +193 -0
  294. package/front_end/panels/freestyler/FreestylerAgent.test.ts +177 -12
  295. package/front_end/panels/freestyler/FreestylerAgent.ts +83 -8
  296. package/front_end/panels/freestyler/FreestylerEvaluateAction.test.ts +21 -1
  297. package/front_end/panels/freestyler/FreestylerEvaluateAction.ts +3 -0
  298. package/front_end/panels/freestyler/FreestylerPanel.test.ts +16 -2
  299. package/front_end/panels/freestyler/FreestylerPanel.ts +126 -15
  300. package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +21 -2
  301. package/front_end/panels/freestyler/components/FreestylerChatUi.ts +294 -145
  302. package/front_end/panels/freestyler/components/ProvideFeedback.ts +16 -13
  303. package/front_end/panels/freestyler/components/freestylerChatUi.css +78 -26
  304. package/front_end/panels/freestyler/freestyler-meta.ts +64 -9
  305. package/front_end/panels/freestyler/freestyler.ts +2 -0
  306. package/front_end/panels/issues/AffectedResourcesView.ts +2 -2
  307. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +5 -4
  308. package/front_end/panels/issues/CorsIssueDetailsView.ts +6 -6
  309. package/front_end/panels/issues/GenericIssueDetailsView.ts +3 -3
  310. package/front_end/panels/issues/IssueView.ts +2 -2
  311. package/front_end/panels/issues/components/ElementsPanelLink.ts +3 -1
  312. package/front_end/panels/issues/components/HideIssuesMenu.ts +6 -5
  313. package/front_end/panels/lighthouse/LighthouseController.ts +2 -2
  314. package/front_end/panels/lighthouse/LighthousePanel.ts +1 -1
  315. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +2 -6
  316. package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -1
  317. package/front_end/panels/lighthouse/LighthouseStatusView.ts +1 -1
  318. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +1 -1
  319. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +8 -2
  320. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +6 -6
  321. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.test.ts +11 -0
  322. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +26 -31
  323. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +5 -5
  324. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +11 -14
  325. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -3
  326. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +5 -4
  327. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +0 -1
  328. package/front_end/panels/media/EventDisplayTable.ts +1 -1
  329. package/front_end/panels/media/EventTimelineView.ts +1 -1
  330. package/front_end/panels/media/PlayerDetailView.ts +3 -3
  331. package/front_end/panels/media/PlayerListView.ts +2 -2
  332. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +23 -29
  333. package/front_end/panels/network/NetworkConfigView.ts +1 -2
  334. package/front_end/panels/network/NetworkDataGridNode.ts +4 -153
  335. package/front_end/panels/network/NetworkFrameGrouper.ts +1 -1
  336. package/front_end/panels/network/NetworkItemView.ts +1 -1
  337. package/front_end/panels/network/NetworkLogView.ts +1 -1
  338. package/front_end/panels/network/NetworkLogViewColumns.ts +4 -6
  339. package/front_end/panels/network/NetworkWaterfallColumn.ts +5 -8
  340. package/front_end/panels/network/RequestBinaryResponseView.test.ts +69 -0
  341. package/front_end/panels/network/RequestBinaryResponseView.ts +67 -0
  342. package/front_end/panels/network/RequestResponseView.test.ts +28 -1
  343. package/front_end/panels/network/RequestResponseView.ts +14 -7
  344. package/front_end/panels/network/components/EditableSpan.ts +0 -1
  345. package/front_end/panels/network/components/HeaderSectionRow.test.ts +1 -1
  346. package/front_end/panels/network/components/HeaderSectionRow.ts +22 -21
  347. package/front_end/panels/network/components/RequestHeaderSection.ts +7 -7
  348. package/front_end/panels/network/components/RequestHeadersView.ts +25 -26
  349. package/front_end/panels/network/components/RequestTrustTokensView.ts +32 -35
  350. package/front_end/panels/network/components/ResponseHeaderSection.ts +8 -10
  351. package/front_end/panels/network/components/WebBundleInfoView.ts +13 -11
  352. package/front_end/panels/network/network.ts +2 -0
  353. package/front_end/panels/network/networkConfigView.css +12 -5
  354. package/front_end/panels/network/networkLogView.css +4 -15
  355. package/front_end/panels/network/requestHTMLView.css +1 -0
  356. package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +3 -3
  357. package/front_end/panels/profiler/HeapProfileView.ts +1 -1
  358. package/front_end/panels/profiler/HeapProfilerPanel.ts +2 -2
  359. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +3 -3
  360. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +3 -3
  361. package/front_end/panels/profiler/HeapSnapshotProxy.ts +1 -1
  362. package/front_end/panels/profiler/ProfileLauncherView.ts +3 -3
  363. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +4 -2
  364. package/front_end/panels/protocol_monitor/components/JSONEditor.ts +22 -15
  365. package/front_end/panels/protocol_monitor/components/Toolbar.ts +4 -4
  366. package/front_end/panels/recorder/RecorderController.ts +39 -43
  367. package/front_end/panels/recorder/components/ControlButton.ts +1 -1
  368. package/front_end/panels/recorder/components/CreateRecordingView.ts +15 -15
  369. package/front_end/panels/recorder/components/ExtensionView.ts +9 -8
  370. package/front_end/panels/recorder/components/RecordingListView.ts +15 -13
  371. package/front_end/panels/recorder/components/RecordingView.ts +92 -84
  372. package/front_end/panels/recorder/components/ReplaySection.ts +6 -6
  373. package/front_end/panels/recorder/components/SelectButton.ts +21 -20
  374. package/front_end/panels/recorder/components/StartView.ts +14 -18
  375. package/front_end/panels/recorder/components/StepEditor.ts +3 -3
  376. package/front_end/panels/recorder/components/StepView.ts +20 -20
  377. package/front_end/panels/recorder/components/TimelineSection.ts +3 -2
  378. package/front_end/panels/recorder/converters/ExtensionConverter.ts +2 -2
  379. package/front_end/panels/recorder/converters/JSONConverter.ts +1 -1
  380. package/front_end/panels/recorder/converters/LighthouseConverter.ts +1 -1
  381. package/front_end/panels/recorder/converters/PuppeteerConverter.ts +1 -1
  382. package/front_end/panels/recorder/converters/PuppeteerReplayConverter.ts +1 -1
  383. package/front_end/panels/recorder/injected/RecordingClient.ts +7 -10
  384. package/front_end/panels/recorder/injected/SelectorComputer.ts +5 -5
  385. package/front_end/panels/recorder/injected/SelectorPicker.ts +2 -2
  386. package/front_end/panels/recorder/injected/Step.ts +1 -1
  387. package/front_end/panels/recorder/injected/injected.ts +1 -1
  388. package/front_end/panels/recorder/injected/selectors/ARIASelector.ts +1 -1
  389. package/front_end/panels/recorder/injected/selectors/PierceSelector.ts +6 -7
  390. package/front_end/panels/recorder/injected/selectors/TextSelector.ts +3 -5
  391. package/front_end/panels/recorder/injected/util.ts +1 -1
  392. package/front_end/panels/recorder/models/RecordingPlayer.ts +1 -1
  393. package/front_end/panels/recorder/models/RecordingSettings.ts +1 -4
  394. package/front_end/panels/recorder/models/RecordingStorage.ts +1 -1
  395. package/front_end/panels/recorder/models/SDKUtils.ts +3 -2
  396. package/front_end/panels/recorder/models/ScreenshotUtils.ts +1 -1
  397. package/front_end/panels/recorder/models/Section.ts +2 -2
  398. package/front_end/panels/search/SearchResultsPane.ts +1 -2
  399. package/front_end/panels/search/SearchView.ts +1 -1
  400. package/front_end/panels/security/OriginTreeElement.ts +1 -1
  401. package/front_end/panels/security/SecurityAndPrivacyPanelSidebar.ts +1 -1
  402. package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +1 -1
  403. package/front_end/panels/sensors/SensorsView.ts +16 -0
  404. package/front_end/panels/sensors/sensors.css +16 -0
  405. package/front_end/panels/settings/AISettingsTab.test.ts +41 -11
  406. package/front_end/panels/settings/AISettingsTab.ts +103 -58
  407. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +9 -0
  408. package/front_end/panels/settings/SettingsScreen.ts +1 -1
  409. package/front_end/panels/settings/components/SyncSection.ts +18 -13
  410. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +33 -30
  411. package/front_end/panels/settings/settings-meta.ts +2 -2
  412. package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
  413. package/front_end/panels/sources/EditingLocationHistoryManager.ts +2 -2
  414. package/front_end/panels/sources/GoToLineQuickOpen.ts +1 -1
  415. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +1 -1
  416. package/front_end/panels/sources/OutlineQuickOpen.ts +1 -1
  417. package/front_end/panels/sources/SourcesNavigator.test.ts +1 -0
  418. package/front_end/panels/sources/SourcesPanel.ts +7 -0
  419. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  420. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  421. package/front_end/panels/sources/components/BreakpointsView.ts +25 -26
  422. package/front_end/panels/sources/components/HeadersView.ts +17 -15
  423. package/front_end/panels/timeline/AnimationsTrackAppender.ts +18 -3
  424. package/front_end/panels/timeline/AnnotationHelpers.ts +1 -1
  425. package/front_end/panels/timeline/AppenderUtils.ts +1 -1
  426. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +27 -10
  427. package/front_end/panels/timeline/CountersGraph.ts +1 -1
  428. package/front_end/panels/timeline/EntriesFilter.test.ts +68 -0
  429. package/front_end/panels/timeline/EntriesFilter.ts +13 -0
  430. package/front_end/panels/timeline/EventsTimelineTreeView.ts +1 -1
  431. package/front_end/panels/timeline/InteractionsTrackAppender.ts +10 -0
  432. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +135 -1
  433. package/front_end/panels/timeline/ModificationsManager.test.ts +160 -0
  434. package/front_end/panels/timeline/ModificationsManager.ts +31 -0
  435. package/front_end/panels/timeline/TimelineDetailsView.test.ts +4 -2
  436. package/front_end/panels/timeline/TimelineDetailsView.ts +34 -12
  437. package/front_end/panels/timeline/TimelineEventOverview.ts +1 -0
  438. package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +53 -0
  439. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +50 -20
  440. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.test.ts +57 -0
  441. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +18 -0
  442. package/front_end/panels/timeline/TimelineFlameChartView.ts +90 -29
  443. package/front_end/panels/timeline/TimelineHistoryManager.ts +3 -1
  444. package/front_end/panels/timeline/TimelineLoader.ts +1 -1
  445. package/front_end/panels/timeline/TimelinePanel.ts +49 -37
  446. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +16 -12
  447. package/front_end/panels/timeline/TimelineTreeView.test.ts +9 -9
  448. package/front_end/panels/timeline/TimelineTreeView.ts +1 -1
  449. package/front_end/panels/timeline/TimelineUIUtils.ts +116 -41
  450. package/front_end/panels/timeline/TimingsTrackAppender.ts +1 -1
  451. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +2 -3
  452. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +8 -7
  453. package/front_end/panels/timeline/components/FieldSettingsDialog.ts +28 -27
  454. package/front_end/panels/timeline/components/InteractionBreakdown.ts +3 -2
  455. package/front_end/panels/timeline/components/LayoutShiftDetails.test.ts +13 -11
  456. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +217 -87
  457. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +194 -69
  458. package/front_end/panels/timeline/components/LiveMetricsView.ts +327 -141
  459. package/front_end/panels/timeline/components/MetricCard.test.ts +8 -8
  460. package/front_end/panels/timeline/components/MetricCard.ts +6 -4
  461. package/front_end/panels/timeline/components/MetricCompareStrings.ts +1 -1
  462. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +16 -13
  463. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +12 -10
  464. package/front_end/panels/timeline/components/NetworkThrottlingSelector.test.ts +35 -2
  465. package/front_end/panels/timeline/components/NetworkThrottlingSelector.ts +30 -13
  466. package/front_end/panels/timeline/components/RelatedInsightChips.test.ts +74 -0
  467. package/front_end/panels/timeline/components/RelatedInsightChips.ts +92 -0
  468. package/front_end/panels/timeline/components/Sidebar.test.ts +74 -0
  469. package/front_end/panels/timeline/components/Sidebar.ts +32 -13
  470. package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +66 -0
  471. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +108 -39
  472. package/front_end/panels/timeline/components/SidebarInsightsTab.test.ts +11 -1
  473. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +70 -37
  474. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +59 -1
  475. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +90 -34
  476. package/front_end/panels/timeline/components/Utils.test.ts +65 -0
  477. package/front_end/panels/timeline/components/Utils.ts +117 -0
  478. package/front_end/panels/timeline/components/components.ts +2 -0
  479. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +67 -53
  480. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +98 -14
  481. package/front_end/panels/timeline/components/insights/EventRef.ts +92 -0
  482. package/front_end/panels/timeline/components/insights/FontDisplay.ts +24 -13
  483. package/front_end/panels/timeline/components/insights/Helpers.ts +48 -43
  484. package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +20 -18
  485. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +93 -48
  486. package/front_end/panels/timeline/components/insights/LCPPhases.ts +28 -9
  487. package/front_end/panels/timeline/components/insights/NodeLink.ts +3 -1
  488. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +33 -25
  489. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +92 -15
  490. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +26 -39
  491. package/front_end/panels/timeline/components/insights/Table.ts +12 -9
  492. package/front_end/panels/timeline/components/insights/ThirdParties.ts +20 -12
  493. package/front_end/panels/timeline/components/insights/Viewport.ts +23 -20
  494. package/front_end/panels/timeline/components/insights/insights.ts +2 -0
  495. package/front_end/panels/timeline/components/insights/sidebarInsight.css +54 -9
  496. package/front_end/panels/timeline/components/insights/table.css +9 -1
  497. package/front_end/panels/timeline/components/layoutShiftDetails.css +22 -20
  498. package/front_end/panels/timeline/components/liveMetricsView.css +46 -16
  499. package/front_end/panels/timeline/components/networkRequestDetails.css +2 -1
  500. package/front_end/panels/timeline/components/relatedInsightChips.css +45 -0
  501. package/front_end/panels/timeline/components/sidebarInsightsTab.css +24 -6
  502. package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +18 -4
  503. package/front_end/panels/timeline/extensions/ExtensionUI.ts +4 -1
  504. package/front_end/panels/timeline/fixtures/traces/basic.json.gz +0 -0
  505. package/front_end/panels/timeline/fixtures/traces/many-redirects.json.gz +0 -0
  506. package/front_end/panels/timeline/fixtures/traces/missing-url.json.gz +0 -0
  507. package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +40 -51
  508. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +87 -39
  509. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +13 -11
  510. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +24 -32
  511. package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +23 -24
  512. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.test.ts +42 -0
  513. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +25 -19
  514. package/front_end/panels/timeline/overlays/components/entryLabelOverlay.css +0 -14
  515. package/front_end/panels/timeline/overlays/components/timeRangeOverlay.css +16 -13
  516. package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +59 -20
  517. package/front_end/panels/timeline/timelineFlameChartView.css +3 -2
  518. package/front_end/panels/timeline/timelineFlamechartPopover.css +19 -0
  519. package/front_end/panels/timeline/timelineHistoryManager.css +4 -0
  520. package/front_end/panels/timeline/timelinePanel.css +2 -10
  521. package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +7 -7
  522. package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +1 -1
  523. package/front_end/panels/timeline/utils/Helpers.test.ts +38 -0
  524. package/front_end/panels/timeline/utils/Helpers.ts +94 -0
  525. package/front_end/panels/timeline/utils/ImageCache.test.ts +106 -0
  526. package/front_end/panels/timeline/utils/ImageCache.ts +55 -0
  527. package/front_end/panels/timeline/utils/SourceMapsResolver.test.ts +13 -1
  528. package/front_end/panels/timeline/utils/SourceMapsResolver.ts +11 -2
  529. package/front_end/panels/timeline/utils/utils.ts +4 -0
  530. package/front_end/panels/utils/utils.ts +1 -1
  531. package/front_end/panels/web_audio/graph_visualizer/EdgeView.ts +1 -1
  532. package/front_end/panels/web_audio/graph_visualizer/GraphView.ts +3 -9
  533. package/front_end/panels/webauthn/WebauthnPane.test.ts +75 -4
  534. package/front_end/panels/webauthn/WebauthnPane.ts +24 -3
  535. package/front_end/testing/EnvironmentHelpers.ts +19 -4
  536. package/front_end/testing/ExtensionHelpers.ts +1 -1
  537. package/front_end/testing/LanguagePluginHelpers.ts +1 -1
  538. package/front_end/testing/MockConnection.ts +1 -1
  539. package/front_end/testing/MockIssuesManager.ts +1 -1
  540. package/front_end/testing/MockScopeChain.ts +1 -1
  541. package/front_end/testing/MutationHelpers.test.ts +6 -8
  542. package/front_end/testing/TraceHelpers.ts +3 -1
  543. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  544. package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
  545. package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
  546. package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
  547. package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
  548. package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
  549. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +11 -3
  550. package/front_end/third_party/codemirror.next/package.json +5 -5
  551. package/front_end/third_party/i18n/localized-string-set.ts +1 -1
  552. package/front_end/third_party/puppeteer/README.chromium +2 -2
  553. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  554. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  555. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
  556. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
  557. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +9 -9
  558. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  559. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +84 -84
  560. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  561. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  562. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  563. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  564. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +1 -2
  565. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
  566. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  567. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
  568. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  569. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  570. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Navigation.d.ts.map +1 -1
  571. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Navigation.js.map +1 -1
  572. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  573. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js.map +1 -1
  574. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.d.ts.map +1 -1
  575. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Request.js.map +1 -1
  576. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.d.ts.map +1 -1
  577. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Session.js.map +1 -1
  578. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  579. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
  580. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
  581. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserPrompt.js.map +1 -1
  582. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  583. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +7 -4
  584. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  585. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  586. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +2 -3
  587. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
  588. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
  589. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
  590. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +2 -0
  591. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
  592. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js +17 -0
  593. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
  594. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
  595. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js.map +1 -1
  596. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.d.ts.map +1 -1
  597. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js +1 -2
  598. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js.map +1 -1
  599. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts.map +1 -1
  600. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js +1 -1
  601. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js.map +1 -1
  602. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  603. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
  604. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  605. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
  606. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  607. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  608. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/PQuerySelector.js +1 -1
  609. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/PQuerySelector.js.map +1 -1
  610. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  611. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
  612. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ScreenRecorder.js.map +1 -1
  613. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +2 -2
  614. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +2 -2
  615. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  616. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +2 -1
  617. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +114 -97
  618. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  619. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  620. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
  621. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
  622. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +9 -9
  623. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  624. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +82 -83
  625. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  626. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  627. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  628. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  629. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +2 -3
  630. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
  631. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  632. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
  633. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  634. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  635. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Navigation.d.ts.map +1 -1
  636. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Navigation.js.map +1 -1
  637. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  638. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js.map +1 -1
  639. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.d.ts.map +1 -1
  640. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Request.js.map +1 -1
  641. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.d.ts.map +1 -1
  642. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Session.js.map +1 -1
  643. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  644. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
  645. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.d.ts.map +1 -1
  646. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserPrompt.js.map +1 -1
  647. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  648. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +7 -4
  649. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  650. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  651. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +3 -4
  652. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
  653. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.d.ts.map +1 -1
  654. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
  655. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +2 -0
  656. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
  657. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js +17 -0
  658. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
  659. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
  660. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js.map +1 -1
  661. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -1
  662. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +1 -2
  663. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js.map +1 -1
  664. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts.map +1 -1
  665. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js +1 -1
  666. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js.map +1 -1
  667. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  668. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
  669. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  670. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
  671. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  672. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  673. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/PQuerySelector.js +1 -1
  674. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/PQuerySelector.js.map +1 -1
  675. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
  676. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ScreenRecorder.js.map +1 -1
  677. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +2 -2
  678. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +2 -2
  679. package/front_end/third_party/puppeteer/package/lib/types.d.ts +2 -1
  680. package/front_end/third_party/puppeteer/package/package.json +2 -2
  681. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +1 -1
  682. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +1 -1
  683. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +89 -89
  684. package/front_end/third_party/puppeteer/package/src/api/Page.ts +1 -1
  685. package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +6 -2
  686. package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +1 -1
  687. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +1 -1
  688. package/front_end/third_party/puppeteer/package/src/bidi/core/Navigation.ts +1 -1
  689. package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +2 -2
  690. package/front_end/third_party/puppeteer/package/src/bidi/core/Request.ts +1 -1
  691. package/front_end/third_party/puppeteer/package/src/bidi/core/Session.ts +1 -1
  692. package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -1
  693. package/front_end/third_party/puppeteer/package/src/bidi/core/UserPrompt.ts +1 -1
  694. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +9 -5
  695. package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +7 -3
  696. package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +1 -1
  697. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +22 -1
  698. package/front_end/third_party/puppeteer/package/src/cdp/IsolatedWorld.ts +1 -1
  699. package/front_end/third_party/puppeteer/package/src/common/QueryHandler.ts +1 -3
  700. package/front_end/third_party/puppeteer/package/src/common/util.ts +2 -1
  701. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  702. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  703. package/front_end/third_party/puppeteer/package/src/injected/PQuerySelector.ts +1 -1
  704. package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +1 -1
  705. package/front_end/third_party/puppeteer/package/src/revisions.ts +2 -2
  706. package/front_end/third_party/puppeteer/puppeteer.ts +1 -1
  707. package/front_end/ui/components/buttons/Button.ts +18 -17
  708. package/front_end/ui/components/buttons/button.css +0 -4
  709. package/front_end/ui/components/cards/Card.test.ts +66 -0
  710. package/front_end/ui/components/cards/Card.ts +57 -0
  711. package/front_end/ui/components/cards/card.css +32 -0
  712. package/front_end/ui/components/cards/cards.ts +9 -0
  713. package/front_end/ui/components/chrome_link/ChromeLink.test.ts +5 -3
  714. package/front_end/ui/components/chrome_link/ChromeLink.ts +3 -1
  715. package/front_end/ui/components/data_grid/DataGrid.test.ts +3 -1
  716. package/front_end/ui/components/data_grid/DataGrid.ts +25 -23
  717. package/front_end/ui/components/data_grid/DataGridContextMenuUtils.ts +2 -2
  718. package/front_end/ui/components/data_grid/DataGridController.ts +9 -5
  719. package/front_end/ui/components/data_grid/DataGridEvents.ts +1 -1
  720. package/front_end/ui/components/data_grid/DataGridRenderers.ts +7 -4
  721. package/front_end/ui/components/dialogs/Dialog.ts +4 -2
  722. package/front_end/ui/components/dialogs/IconDialog.ts +9 -7
  723. package/front_end/ui/components/dialogs/ShortcutDialog.ts +10 -8
  724. package/front_end/ui/components/diff_view/DiffView.ts +9 -8
  725. package/front_end/ui/components/docs/create_breadcrumbs.ts +3 -1
  726. package/front_end/ui/components/docs/expandable_list/basic.ts +4 -2
  727. package/front_end/ui/components/docs/floating_button/basic.html +26 -0
  728. package/front_end/ui/components/docs/floating_button/basic.ts +20 -0
  729. package/front_end/ui/components/docs/freestyler/basic.ts +5 -0
  730. package/front_end/ui/components/docs/freestyler/empty_state.ts +5 -0
  731. package/front_end/ui/components/docs/icon_dialog/basic.ts +5 -3
  732. package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +7 -4
  733. package/front_end/ui/components/docs/performance_panel/flamechart.html +4 -0
  734. package/front_end/ui/components/docs/performance_panel/flamechart.ts +45 -0
  735. package/front_end/ui/components/docs/recorder_select_button/basic.ts +21 -18
  736. package/front_end/ui/components/docs/report/basic.ts +19 -23
  737. package/front_end/ui/components/docs/theme_colors/basic.ts +4 -2
  738. package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +4 -2
  739. package/front_end/ui/components/expandable_list/ExpandableList.test.ts +5 -3
  740. package/front_end/ui/components/expandable_list/ExpandableList.ts +6 -4
  741. package/front_end/ui/components/floating_button/FloatingButton.ts +51 -0
  742. package/front_end/ui/components/floating_button/floatingButton.css +63 -0
  743. package/front_end/ui/components/floating_button/floating_button.ts +7 -0
  744. package/front_end/ui/components/helpers/helpers.test.ts +18 -14
  745. package/front_end/ui/components/icon_button/Icon.ts +2 -2
  746. package/front_end/ui/components/icon_button/IconButton.ts +15 -10
  747. package/front_end/ui/components/issue_counter/IssueCounter.ts +5 -1
  748. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +7 -4
  749. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +0 -1
  750. package/front_end/ui/components/linkifier/LinkifierImpl.ts +3 -1
  751. package/front_end/ui/components/markdown_view/CodeBlock.test.ts +7 -7
  752. package/front_end/ui/components/markdown_view/CodeBlock.ts +33 -41
  753. package/front_end/ui/components/markdown_view/MarkdownImage.ts +12 -9
  754. package/front_end/ui/components/markdown_view/MarkdownLink.ts +3 -1
  755. package/front_end/ui/components/markdown_view/MarkdownView.test.ts +51 -3
  756. package/front_end/ui/components/markdown_view/MarkdownView.ts +39 -22
  757. package/front_end/ui/components/markdown_view/codeBlock.css +6 -28
  758. package/front_end/ui/components/markdown_view/markdownLink.css +1 -1
  759. package/front_end/ui/components/markdown_view/markdownView.css +4 -0
  760. package/front_end/ui/components/menus/Menu.ts +7 -5
  761. package/front_end/ui/components/menus/SelectMenu.test.ts +3 -1
  762. package/front_end/ui/components/menus/SelectMenu.ts +17 -15
  763. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +5 -3
  764. package/front_end/ui/components/panel_feedback/PanelFeedback.ts +8 -4
  765. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +6 -4
  766. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +3 -1
  767. package/front_end/ui/components/report_view/ReportView.test.ts +5 -3
  768. package/front_end/ui/components/report_view/ReportView.ts +9 -7
  769. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +8 -5
  770. package/front_end/ui/components/settings/SettingCheckbox.ts +14 -12
  771. package/front_end/ui/components/settings/SettingDeprecationWarning.ts +7 -4
  772. package/front_end/ui/components/spinners/Spinner.ts +3 -1
  773. package/front_end/ui/components/split_view/SplitView.ts +3 -1
  774. package/front_end/ui/components/srgb_overlay/SrgbOverlay.ts +3 -1
  775. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +3 -2
  776. package/front_end/ui/components/survey_link/SurveyLink.ts +7 -3
  777. package/front_end/ui/components/switch/SwitchImpl.ts +3 -1
  778. package/front_end/ui/components/text_editor/TextEditorHistory.ts +2 -2
  779. package/front_end/ui/components/text_prompt/TextPrompt.ts +3 -1
  780. package/front_end/ui/components/tree_outline/TreeOutline.test.ts +8 -6
  781. package/front_end/ui/components/tree_outline/TreeOutline.ts +9 -8
  782. package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +5 -3
  783. package/front_end/ui/legacy/Context.ts +1 -1
  784. package/front_end/ui/legacy/Dialog.ts +2 -2
  785. package/front_end/ui/legacy/DockController.ts +2 -2
  786. package/front_end/ui/legacy/FilterBar.ts +1 -1
  787. package/front_end/ui/legacy/FilterSuggestionBuilder.ts +1 -1
  788. package/front_end/ui/legacy/GlassPane.ts +1 -1
  789. package/front_end/ui/legacy/Infobar.ts +1 -1
  790. package/front_end/ui/legacy/InspectorView.ts +5 -5
  791. package/front_end/ui/legacy/Panel.ts +1 -1
  792. package/front_end/ui/legacy/ShortcutRegistry.ts +1 -1
  793. package/front_end/ui/legacy/SplitWidget.test.ts +33 -1
  794. package/front_end/ui/legacy/SplitWidget.ts +62 -7
  795. package/front_end/ui/legacy/TabbedPane.ts +24 -0
  796. package/front_end/ui/legacy/Toolbar.test.ts +39 -0
  797. package/front_end/ui/legacy/Toolbar.ts +16 -17
  798. package/front_end/ui/legacy/UIUtils.ts +1 -1
  799. package/front_end/ui/legacy/View.ts +2 -2
  800. package/front_end/ui/legacy/ViewManager.ts +3 -2
  801. package/front_end/ui/legacy/ViewRegistration.ts +2 -2
  802. package/front_end/ui/legacy/Widget.ts +62 -14
  803. package/front_end/ui/legacy/XElement.ts +0 -1
  804. package/front_end/ui/legacy/XLink.test.ts +3 -1
  805. package/front_end/ui/legacy/XLink.ts +6 -4
  806. package/front_end/ui/legacy/checkboxTextLabel.css +4 -0
  807. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +1 -1
  808. package/front_end/ui/legacy/components/data_grid/DataGridWithPreview.ts +21 -10
  809. package/front_end/ui/legacy/components/inline_editor/AnimationTimingUI.ts +1 -1
  810. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +10 -7
  811. package/front_end/ui/legacy/components/inline_editor/ColorMixSwatch.ts +3 -1
  812. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +3 -1
  813. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +9 -9
  814. package/front_end/ui/legacy/components/inline_editor/Swatches.ts +5 -4
  815. package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +2 -2
  816. package/front_end/ui/legacy/components/perf_ui/FilmStripView.test.ts +9 -9
  817. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +49 -13
  818. package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -0
  819. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +1 -1
  820. package/front_end/ui/legacy/inspectorCommon.css +0 -1
  821. package/front_end/ui/legacy/themeColors.css +10 -0
  822. package/front_end/ui/legacy/toolbar.css +4 -0
  823. package/front_end/ui/legacy/treeoutline.css +0 -3
  824. package/front_end/ui/lit-html/static.test.ts +8 -8
  825. package/front_end/ui/visual_logging/Debugging.ts +1 -1
  826. package/front_end/ui/visual_logging/KnownContextValues.ts +32 -3
  827. package/front_end/ui/visual_logging/LoggingDriver.ts +1 -1
  828. package/front_end/ui/visual_logging/LoggingEvents.ts +28 -28
  829. package/front_end/ui/visual_logging/LoggingState.ts +1 -1
  830. package/front_end/ui/visual_logging/NonDomState.ts +2 -2
  831. package/front_end/ui/visual_logging/visual_logging.ts +3 -1
  832. package/inspector_overlay/css_grid_label_helpers.test.ts +103 -0
  833. package/inspector_overlay/css_grid_label_helpers.ts +63 -12
  834. package/inspector_overlay/highlight_common.ts +2 -2
  835. package/inspector_overlay/highlight_container_query.ts +1 -2
  836. package/inspector_overlay/highlight_flex_common.test.ts +1 -1
  837. package/inspector_overlay/highlight_flex_common.ts +2 -3
  838. package/inspector_overlay/highlight_grid_common.ts +10 -4
  839. package/inspector_overlay/highlight_isolated_element.ts +1 -1
  840. package/inspector_overlay/highlight_scroll_snap.ts +1 -2
  841. package/inspector_overlay/testing/InspectorOverlayHelpers.ts +1 -1
  842. package/inspector_overlay/tool_highlight.ts +4 -8
  843. package/package.json +4 -3
  844. package/scripts/devtools_paths.js +9 -2
  845. package/scripts/eslint_rules/lib/avoid_assert_equal.js +34 -7
  846. package/scripts/eslint_rules/lib/html_tagged_template.js +55 -0
  847. package/scripts/eslint_rules/lib/inline_type_imports.js +22 -23
  848. package/scripts/eslint_rules/tests/avoid_assert_equal_test.js +61 -2
  849. package/scripts/eslint_rules/tests/html_tagged_template_test.js +96 -0
  850. package/scripts/eslint_rules/tests/inline_type_imports_test.js +5 -25
  851. package/scripts/freestyler/eval/index.js +83 -47
  852. package/scripts/protocol_typescript/protocol_dts_generator.ts +1 -1
  853. package/scripts/stylelint_rules/lib/use_theme_colors.js +2 -1
  854. package/scripts/stylelint_rules/tests/use_theme_colors_test.js +16 -0
  855. package/front_end/Images/src/spark.svg +0 -3
  856. package/front_end/panels/timeline/components/insights/lcpDiscovery.css +0 -13
  857. package/scripts/eslint_rules/lib/ban_literal_devtools_component_tag_names.js +0 -40
  858. package/scripts/eslint_rules/lib/check_component_naming.js +0 -214
  859. package/scripts/eslint_rules/tests/ban_literal_devtools_component_tag_names_test.js +0 -38
  860. package/scripts/eslint_rules/tests/check_component_naming_test.js +0 -246
@@ -19,6 +19,7 @@ import type * as TimelineComponents from './components/components.js';
19
19
  import {CountersGraph} from './CountersGraph.js';
20
20
  import {SHOULD_SHOW_EASTER_EGG} from './EasterEgg.js';
21
21
  import {ModificationsManager} from './ModificationsManager.js';
22
+ import * as OverlayComponents from './overlays/components/components.js';
22
23
  import * as Overlays from './overlays/overlays.js';
23
24
  import {targetForEvent} from './TargetForEvent.js';
24
25
  import {TimelineDetailsView} from './TimelineDetailsView.js';
@@ -29,10 +30,10 @@ import {
29
30
  } from './TimelineFlameChartDataProvider.js';
30
31
  import {TimelineFlameChartNetworkDataProvider} from './TimelineFlameChartNetworkDataProvider.js';
31
32
  import timelineFlameChartViewStyles from './timelineFlameChartView.css.js';
32
- import {type TimelineModeViewDelegate} from './TimelinePanel.js';
33
+ import type {TimelineModeViewDelegate} from './TimelinePanel.js';
33
34
  import {TimelineSelection} from './TimelineSelection.js';
34
35
  import {AggregatedTimelineTreeView} from './TimelineTreeView.js';
35
- import {type TimelineMarkerStyle} from './TimelineUIUtils.js';
36
+ import type {TimelineMarkerStyle} from './TimelineUIUtils.js';
36
37
 
37
38
  const UIStrings = {
38
39
  /**
@@ -96,7 +97,8 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
96
97
  private selectedSearchResult?: PerfUI.FlameChart.DataProviderSearchResult;
97
98
  private searchRegex?: RegExp;
98
99
  #parsedTrace: Trace.Handlers.Types.ParsedTrace|null;
99
- #traceInsightsSets: Trace.Insights.Types.TraceInsightSets|null = null;
100
+ #traceInsightSets: Trace.Insights.Types.TraceInsightSets|null = null;
101
+ #eventToRelatedInsightsMap: TimelineComponents.RelatedInsightChips.EventToRelatedInsightsMap|null = null;
100
102
  #selectedGroupName: string|null = null;
101
103
  #onTraceBoundsChangeBound = this.#onTraceBoundsChange.bind(this);
102
104
  #gameKeyMatches = 0;
@@ -171,7 +173,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
171
173
  this.mainFlameChart.addEventListener(PerfUI.FlameChart.Events.LATEST_DRAW_DIMENSIONS, dimensions => {
172
174
  this.#overlays.updateChartDimensions('main', dimensions.data.chart);
173
175
  this.#overlays.updateVisibleWindow(dimensions.data.traceWindow);
174
- this.#overlays.update();
176
+ void this.#overlays.update();
175
177
  });
176
178
 
177
179
  this.networkFlameChartGroupExpansionSetting =
@@ -188,7 +190,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
188
190
  this.networkFlameChart.addEventListener(PerfUI.FlameChart.Events.LATEST_DRAW_DIMENSIONS, dimensions => {
189
191
  this.#overlays.updateChartDimensions('network', dimensions.data.chart);
190
192
  this.#overlays.updateVisibleWindow(dimensions.data.traceWindow);
191
- this.#overlays.update();
193
+ void this.#overlays.update();
192
194
 
193
195
  // If the height of the network chart has changed, we need to tell the
194
196
  // main flame chart because its tooltips are positioned based in part on
@@ -197,11 +199,11 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
197
199
  });
198
200
 
199
201
  this.mainFlameChart.addEventListener(PerfUI.FlameChart.Events.MOUSE_MOVE, event => {
200
- this.#processFlameChartMouseMoveEvent(event.data);
202
+ void this.#processFlameChartMouseMoveEvent(event.data);
201
203
  });
202
204
 
203
205
  this.networkFlameChart.addEventListener(PerfUI.FlameChart.Events.MOUSE_MOVE, event => {
204
- this.#processFlameChartMouseMoveEvent(event.data);
206
+ void this.#processFlameChartMouseMoveEvent(event.data);
205
207
  });
206
208
 
207
209
  this.#overlays = new Overlays.Overlays.Overlays({
@@ -243,6 +245,24 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
243
245
  }
244
246
  });
245
247
 
248
+ this.element.addEventListener(OverlayComponents.EntriesLinkOverlay.EntryLinkStartCreating.eventName, () => {
249
+ /**
250
+ * When the user creates an entries link, they click on the arrow icon to
251
+ * begin creating it. At this point the arrow icon gets deleted. This
252
+ * causes the focus of the page by default to jump to the entire Timeline
253
+ * Panel. This is a bit aggressive; and problematic as it means we cannot
254
+ * use <ESC> to cancel the creation of the entry. So instead we focus the
255
+ * TimelineFlameChartView instead. This means that the user's <ESC> gets
256
+ * dealt with in its keydown.
257
+ * If the user goes ahead and creates the entry, they will end up
258
+ * focused on whichever target entry they pick, so this only matters for
259
+ * the case where the user hits <ESC> to cancel.
260
+ */
261
+ this.focus();
262
+ });
263
+
264
+ this.element.setAttribute('jslog', `${VisualLogging.section('timeline.flame-chart-view')}`);
265
+
246
266
  this.networkPane = new UI.Widget.VBox();
247
267
  this.networkPane.setMinimumSize(23, 23);
248
268
  this.networkFlameChart.show(this.networkPane.element);
@@ -324,6 +344,10 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
324
344
  TraceBounds.TraceBounds.onChange(this.#onTraceBoundsChangeBound);
325
345
  }
326
346
 
347
+ containingElement(): HTMLElement {
348
+ return this.element;
349
+ }
350
+
327
351
  setOverlays(overlays: Overlays.Overlays.TimelineOverlay[], options: Overlays.Overlays.TimelineOverlaySetOptions):
328
352
  void {
329
353
  this.bulkRemoveOverlays(this.#currentInsightOverlays);
@@ -436,7 +460,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
436
460
  }
437
461
  }
438
462
 
439
- #processFlameChartMouseMoveEvent(data: PerfUI.FlameChart.EventTypes['MouseMove']): void {
463
+ async #processFlameChartMouseMoveEvent(data: PerfUI.FlameChart.EventTypes['MouseMove']): Promise<void> {
440
464
  const {mouseEvent, timeInMicroSeconds} = data;
441
465
  // If the user is no longer holding shift, remove any existing marker.
442
466
  if (!mouseEvent.shiftKey) {
@@ -444,7 +468,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
444
468
  if (removedCount > 0) {
445
469
  // Don't trigger lots of updates on a mouse move if we didn't actually
446
470
  // remove any overlays.
447
- this.#overlays.update();
471
+ await this.#overlays.update();
448
472
  }
449
473
  }
450
474
 
@@ -607,10 +631,14 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
607
631
 
608
632
  // `CREATION_NOT_STARTED` is only true in the state when both empty label and button to create connection are
609
633
  // created at the same time. If any key is typed in that state, it means that the label is in focus and the key
610
- // is typed into the label. In that case, delete the connection.
634
+ // is typed into the label. This tells us that the user chose to create the
635
+ // label, not the connection. In that case, delete the connection.
611
636
  if (this.#linkSelectionAnnotation &&
612
637
  this.#linkSelectionAnnotation.state === Trace.Types.File.EntriesLinkState.CREATION_NOT_STARTED) {
613
638
  this.#clearLinkSelectionAnnotation(true);
639
+ // We have dealt with the keypress as the user is typing into the label, so do not let it propogate up.
640
+ // This also ensures that if the user uses "Escape" they don't toggle the DevTools drawer.
641
+ event.stopPropagation();
614
642
  }
615
643
 
616
644
  /**
@@ -620,6 +648,7 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
620
648
  if (event.key === 'Escape' && this.#linkSelectionAnnotation) {
621
649
  this.#clearLinkSelectionAnnotation(true);
622
650
  event.stopPropagation();
651
+ event.preventDefault();
623
652
  }
624
653
 
625
654
  const eventHandledByKeyboardTimeRange = this.#handleTimeRangeKeyboardCreation(event);
@@ -697,7 +726,8 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
697
726
  }
698
727
 
699
728
  extensionDataVisibilityChanged(): void {
700
- this.#reset();
729
+ this.reset();
730
+ this.setupWindowTimes();
701
731
  this.mainDataProvider.reset(true);
702
732
  this.mainDataProvider.timelineData(true);
703
733
  this.refreshMainFlameChart();
@@ -728,9 +758,12 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
728
758
  Trace.Types.Timing.MilliSeconds(endTime),
729
759
  );
730
760
 
731
- // If the current time range annotation has a label, the range selection
732
- // for it is finished and we need to create a new time range annotations.
733
- if (this.#timeRangeSelectionAnnotation && !this.#timeRangeSelectionAnnotation?.label) {
761
+ // If the current time range annotation exists, the range selection
762
+ // for it is in progress and we need to update its bounds.
763
+ //
764
+ // When the range selection is finished, the current range is set to null.
765
+ // If the current selection is null, create a new time range annotations.
766
+ if (this.#timeRangeSelectionAnnotation) {
734
767
  this.#timeRangeSelectionAnnotation.bounds = bounds;
735
768
  ModificationsManager.activeManager()?.updateAnnotation(this.#timeRangeSelectionAnnotation);
736
769
  } else {
@@ -739,6 +772,8 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
739
772
  label: '',
740
773
  bounds,
741
774
  };
775
+ // Before creating a new range, make sure to delete the empty ranges.
776
+ ModificationsManager.activeManager()?.deleteEmptyRangeAnnotations();
742
777
  ModificationsManager.activeManager()?.createAnnotation(this.#timeRangeSelectionAnnotation);
743
778
  }
744
779
  }
@@ -772,19 +807,27 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
772
807
  this.#selectedEvents = null;
773
808
  this.mainDataProvider.setModel(newParsedTrace, isCpuProfile);
774
809
  this.networkDataProvider.setModel(newParsedTrace);
775
- this.#reset();
810
+ this.reset();
811
+ this.setupWindowTimes();
776
812
  this.updateSearchResults(false, false);
777
813
  this.refreshMainFlameChart();
778
814
  this.#updateFlameCharts();
779
815
  }
780
816
 
781
- setInsights(insights: Trace.Insights.Types.TraceInsightSets|null): void {
782
- if (this.#traceInsightsSets !== insights) {
783
- this.#traceInsightsSets = insights;
817
+ setInsights(
818
+ insights: Trace.Insights.Types.TraceInsightSets|null,
819
+ eventToRelatedInsightsMap: TimelineComponents.RelatedInsightChips.EventToRelatedInsightsMap): void {
820
+ if (this.#traceInsightSets === insights) {
821
+ return;
784
822
  }
823
+
824
+ this.#traceInsightSets = insights;
825
+ this.#eventToRelatedInsightsMap = eventToRelatedInsightsMap;
826
+ // The DetailsView is provided with the InsightSets, so make sure we update it.
827
+ this.#updateDetailViews();
785
828
  }
786
829
 
787
- #reset(): void {
830
+ reset(): void {
788
831
  if (this.networkDataProvider.isEmpty()) {
789
832
  this.mainFlameChart.enableRuler(true);
790
833
  this.networkSplitWidget.hideSidebar();
@@ -797,7 +840,10 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
797
840
  this.mainFlameChart.reset();
798
841
  this.networkFlameChart.reset();
799
842
  this.updateSearchResults(false, false);
843
+ }
800
844
 
845
+ // TODO(paulirish): It's possible this is being called more than necessary. Attempt to clean up the lifecycle.
846
+ setupWindowTimes(): void {
801
847
  const traceBoundsState = TraceBounds.TraceBounds.BoundsManager.instance().state();
802
848
  if (!traceBoundsState) {
803
849
  throw new Error('TimelineFlameChartView could not set the window bounds.');
@@ -817,7 +863,12 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
817
863
 
818
864
  #updateDetailViews(): void {
819
865
  this.countersView.setModel(this.#parsedTrace, this.#selectedEvents);
820
- void this.detailsView.setModel(this.#parsedTrace, this.#selectedEvents, this.#traceInsightsSets);
866
+ void this.detailsView.setModel({
867
+ parsedTrace: this.#parsedTrace,
868
+ selectedEvents: this.#selectedEvents,
869
+ traceInsightsSets: this.#traceInsightSets,
870
+ eventToRelatedInsightsMap: this.#eventToRelatedInsightsMap,
871
+ });
821
872
  }
822
873
 
823
874
  #updateFlameCharts(): void {
@@ -935,9 +986,9 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
935
986
  revealEvent(event: Trace.Types.Events.Event): void {
936
987
  const mainIndex = this.mainDataProvider.indexForEvent(event);
937
988
  const networkIndex = this.networkDataProvider.indexForEvent(event);
938
- if (mainIndex) {
989
+ if (mainIndex !== null) {
939
990
  this.mainFlameChart.revealEntry(mainIndex);
940
- } else if (networkIndex) {
991
+ } else if (networkIndex !== null) {
941
992
  this.networkFlameChart.revealEntry(networkIndex);
942
993
  }
943
994
  }
@@ -946,9 +997,9 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
946
997
  revealEventVertically(event: Trace.Types.Events.Event): void {
947
998
  const mainIndex = this.mainDataProvider.indexForEvent(event);
948
999
  const networkIndex = this.networkDataProvider.indexForEvent(event);
949
- if (mainIndex) {
1000
+ if (mainIndex !== null) {
950
1001
  this.mainFlameChart.revealEntryVertically(mainIndex);
951
- } else if (networkIndex) {
1002
+ } else if (networkIndex !== null) {
952
1003
  this.networkFlameChart.revealEntryVertically(networkIndex);
953
1004
  }
954
1005
  }
@@ -1006,12 +1057,12 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
1006
1057
  for (const overlay of overlays) {
1007
1058
  this.#overlays.add(overlay);
1008
1059
  }
1009
- this.#overlays.update();
1060
+ void this.#overlays.update();
1010
1061
  }
1011
1062
 
1012
1063
  addOverlay<T extends Overlays.Overlays.TimelineOverlay>(newOverlay: T): T {
1013
1064
  const overlay = this.#overlays.add(newOverlay);
1014
- this.#overlays.update();
1065
+ void this.#overlays.update();
1015
1066
  return overlay;
1016
1067
  }
1017
1068
 
@@ -1023,16 +1074,16 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
1023
1074
  for (const overlay of overlays) {
1024
1075
  this.#overlays.remove(overlay);
1025
1076
  }
1026
- this.#overlays.update();
1077
+ void this.#overlays.update();
1027
1078
  }
1028
1079
  removeOverlay(removedOverlay: Overlays.Overlays.TimelineOverlay): void {
1029
1080
  this.#overlays.remove(removedOverlay);
1030
- this.#overlays.update();
1081
+ void this.#overlays.update();
1031
1082
  }
1032
1083
 
1033
1084
  updateExistingOverlay<T extends Overlays.Overlays.TimelineOverlay>(existingOverlay: T, newData: Partial<T>): void {
1034
1085
  this.#overlays.updateExisting(existingOverlay, newData);
1035
- this.#overlays.update();
1086
+ void this.#overlays.update();
1036
1087
  }
1037
1088
 
1038
1089
  enterLabelEditMode(overlay: Overlays.Overlays.EntryLabel): void {
@@ -1350,6 +1401,16 @@ export class TimelineFlameChartView extends UI.Widget.VBox implements PerfUI.Fla
1350
1401
  this.searchRegex = searchConfig.toSearchRegex().regex;
1351
1402
  this.updateSearchResults(shouldJump, jumpBackwards);
1352
1403
  }
1404
+
1405
+ togglePopover({event, show}: {event: Trace.Types.Events.Event, show: boolean}): void {
1406
+ const entryIndex = this.mainDataProvider.indexForEvent(event);
1407
+ if (show && entryIndex) {
1408
+ this.mainFlameChart.setSelectedEntry(entryIndex);
1409
+ this.mainFlameChart.showPopoverForSearchResult(entryIndex);
1410
+ } else {
1411
+ this.mainFlameChart.hideHighlight();
1412
+ }
1413
+ }
1353
1414
  }
1354
1415
 
1355
1416
  export class Selection {
@@ -19,7 +19,7 @@ import {
19
19
  TimelineEventOverviewResponsiveness,
20
20
  } from './TimelineEventOverview.js';
21
21
  import timelineHistoryManagerStyles from './timelineHistoryManager.css.js';
22
- import {type TimelineMiniMap} from './TimelineMiniMap.js';
22
+ import type {TimelineMiniMap} from './TimelineMiniMap.js';
23
23
 
24
24
  /**
25
25
  * The dropdown works by returning an index which is the trace index; but we
@@ -389,6 +389,7 @@ export class TimelineHistoryManager {
389
389
  const titleWithSequenceNumber = i18nString(UIStrings.sD, {PH1: domain, PH2: sequenceNumber});
390
390
  this.nextNumberByDomain.set(domain, sequenceNumber + 1);
391
391
  const timeElement = document.createElement('span');
392
+ timeElement.classList.add('time');
392
393
 
393
394
  const preview = document.createElement('div');
394
395
  preview.classList.add('preview-item');
@@ -438,6 +439,7 @@ export class TimelineHistoryManager {
438
439
  if (!lastFrame) {
439
440
  return container;
440
441
  }
442
+ // TODO(paulirish): Adopt Util.ImageCache
441
443
  void UI.UIUtils.loadImage(lastFrame.screenshotEvent.args.dataUri).then(img => {
442
444
  if (img) {
443
445
  container.appendChild(img);
@@ -11,7 +11,7 @@ import * as Bindings from '../../models/bindings/bindings.js';
11
11
  import * as TimelineModel from '../../models/timeline_model/timeline_model.js';
12
12
  import * as Trace from '../../models/trace/trace.js';
13
13
 
14
- import {type Client} from './TimelineController.js';
14
+ import type {Client} from './TimelineController.js';
15
15
 
16
16
  const UIStrings = {
17
17
  /**
@@ -177,10 +177,6 @@ const UIStrings = {
177
177
  *@description Text in Timeline Panel of the Performance panel
178
178
  */
179
179
  NetworkThrottlingIsEnabled: '- Network throttling is enabled',
180
- /**
181
- *@description Text in Timeline Panel of the Performance panel
182
- */
183
- HardwareConcurrencyIsEnabled: '- Hardware concurrency override is enabled',
184
180
  /**
185
181
  *@description Text in Timeline Panel of the Performance panel
186
182
  */
@@ -434,6 +430,8 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
434
430
  */
435
431
  #pendingAriaMessage: string|null = null;
436
432
 
433
+ #eventToRelatedInsights: TimelineComponents.RelatedInsightChips.EventToRelatedInsightsMap = new Map();
434
+
437
435
  constructor() {
438
436
  super('timeline');
439
437
  const adornerContent = document.createElement('span');
@@ -453,12 +451,8 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
453
451
  this.brickBreakerToolbarButton = new UI.Toolbar.ToolbarButton(i18nString(UIStrings.fixMe), adorner);
454
452
  this.brickBreakerToolbarButton.addEventListener(
455
453
  UI.Toolbar.ToolbarButton.Events.CLICK, () => this.#onBrickBreakerEasterEggClick());
456
- const config = Trace.Types.Configuration.defaults();
457
- config.showAllEvents = Root.Runtime.experiments.isEnabled('timeline-show-all-events');
458
- config.includeRuntimeCallStats = Root.Runtime.experiments.isEnabled('timeline-v8-runtime-call-stats');
459
- config.debugMode = Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DEBUG_MODE);
460
454
 
461
- this.#traceEngineModel = Trace.TraceModel.Model.createWithAllHandlers(config);
455
+ this.#traceEngineModel = this.#instantiateNewModel();
462
456
  this.#listenForProcessingProgress();
463
457
 
464
458
  this.element.addEventListener('contextmenu', this.contextMenu.bind(this), false);
@@ -524,6 +518,8 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
524
518
 
525
519
  this.flameChart = new TimelineFlameChartView(this);
526
520
  this.#onChartPlayableStateChangeBound = this.#onChartPlayableStateChange.bind(this);
521
+ this.element.addEventListener(
522
+ 'toggle-popover', event => this.flameChart.togglePopover((event as CustomEvent).detail));
527
523
 
528
524
  this.flameChart.getMainFlameChart().addEventListener(
529
525
  PerfUI.FlameChart.Events.CHART_PLAYABLE_STATE_CHANGED, this.#onChartPlayableStateChangeBound, this);
@@ -545,6 +541,9 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
545
541
  this.#setActiveInsight(null);
546
542
  });
547
543
 
544
+ // TODO(crbug.com/372946179): when clicking on an insight chip, this event never fires if the insight tab
545
+ // is not on the DOM. That only happens when the sidebar tabbed pane component is set to Annotations.
546
+ // In that case, clicking on the insight chip will do nothing.
548
547
  this.#sideBar.element.addEventListener(TimelineInsights.SidebarInsight.InsightActivated.eventName, event => {
549
548
  const {name, insightSetKey, overlays} = event;
550
549
  this.#setActiveInsight({name, insightSetKey, overlays});
@@ -563,9 +562,26 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
563
562
  }
564
563
  });
565
564
 
566
- this.#sideBar.contentElement.addEventListener(TimelineInsights.Helpers.EventReferenceClick.eventName, event => {
567
- const {metricEvent} = event;
568
- this.select(TimelineSelection.fromTraceEvent(metricEvent));
565
+ this.#sideBar.element.addEventListener(
566
+ TimelineInsights.SidebarInsight.InsightProvideRelatedEvents.eventName, event => {
567
+ const relatedInsight = {
568
+ insightLabel: event.label,
569
+ activateInsight: event.activateInsight,
570
+ };
571
+ for (const traceEvent of event.events) {
572
+ const relatedInsights = this.#eventToRelatedInsights.get(traceEvent) ?? [];
573
+ relatedInsights.push(relatedInsight);
574
+ this.#eventToRelatedInsights.set(traceEvent, relatedInsights);
575
+ }
576
+ });
577
+
578
+ this.flameChart.element.addEventListener(TimelineInsights.EventRef.EventReferenceClick.eventName, event => {
579
+ const fromTraceEvent = TimelineSelection.fromTraceEvent(event.event);
580
+ this.flameChart.setSelectionAndReveal(fromTraceEvent);
581
+ });
582
+
583
+ this.#sideBar.contentElement.addEventListener(TimelineInsights.EventRef.EventReferenceClick.eventName, event => {
584
+ this.select(TimelineSelection.fromTraceEvent(event.event));
569
585
  });
570
586
 
571
587
  this.#sideBar.element.addEventListener(TimelineComponents.Sidebar.RemoveAnnotation.eventName, event => {
@@ -624,6 +640,9 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
624
640
  }
625
641
 
626
642
  #setActiveInsight(insight: TimelineComponents.Sidebar.ActiveInsight|null): void {
643
+ if (insight && this.#panelSidebarEnabled()) {
644
+ this.#splitWidget.showBoth();
645
+ }
627
646
  this.#sideBar.setActiveInsight(insight);
628
647
  this.flameChart.setActiveInsight(insight);
629
648
  }
@@ -642,6 +661,15 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
642
661
  return timelinePanelInstance;
643
662
  }
644
663
 
664
+ #instantiateNewModel(): Trace.TraceModel.Model {
665
+ const config = Trace.Types.Configuration.defaults();
666
+ config.showAllEvents = Root.Runtime.experiments.isEnabled('timeline-show-all-events');
667
+ config.includeRuntimeCallStats = Root.Runtime.experiments.isEnabled('timeline-v8-runtime-call-stats');
668
+ config.debugMode = Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DEBUG_MODE);
669
+
670
+ return Trace.TraceModel.Model.createWithAllHandlers(config);
671
+ }
672
+
645
673
  static extensionDataVisibilitySetting(): Common.Settings.Setting<boolean> {
646
674
  // Calling this multiple times doesn't recreate the setting.
647
675
  // Instead, after the second call, the cached setting is returned.
@@ -1019,8 +1047,6 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
1019
1047
  this);
1020
1048
  SDK.CPUThrottlingManager.CPUThrottlingManager.instance().addEventListener(
1021
1049
  SDK.CPUThrottlingManager.Events.RATE_CHANGED, this.updateShowSettingsToolbarButton, this);
1022
- SDK.CPUThrottlingManager.CPUThrottlingManager.instance().addEventListener(
1023
- SDK.CPUThrottlingManager.Events.HARDWARE_CONCURRENCY_CHANGED, this.updateShowSettingsToolbarButton, this);
1024
1050
  this.disableCaptureJSProfileSetting.addChangeListener(this.updateShowSettingsToolbarButton, this);
1025
1051
  this.captureLayersAndPicturesSetting.addChangeListener(this.updateShowSettingsToolbarButton, this);
1026
1052
  this.captureSelectorStatsSetting.addChangeListener(this.updateShowSettingsToolbarButton, this);
@@ -1055,26 +1081,11 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
1055
1081
  this.networkThrottlingSelect = this.createNetworkConditionsSelect();
1056
1082
  networkThrottlingToolbar.appendToolbarItem(this.networkThrottlingSelect);
1057
1083
 
1058
- const hardwareConcurrencyPane = new UI.Widget.VBox();
1059
- hardwareConcurrencyPane.element.classList.add('flex-auto');
1060
- hardwareConcurrencyPane.show(this.settingsPane.element);
1061
-
1062
- const thirdPartyToolbar = new UI.Toolbar.Toolbar('', this.settingsPane.element);
1063
- thirdPartyToolbar.element.classList.add('flex-auto');
1084
+ const thirdPartyToolbar = new UI.Toolbar.Toolbar('', throttlingPane.element);
1064
1085
  thirdPartyToolbar.makeVertical();
1065
1086
  thirdPartyToolbar.appendToolbarItem(
1066
1087
  this.createSettingCheckbox(this.#thirdPartyTracksSetting, i18nString(UIStrings.showDataAddedByExtensions)));
1067
1088
 
1068
- const {toggle, input, reset, warning} =
1069
- MobileThrottling.ThrottlingManager.throttlingManager().createHardwareConcurrencySelector();
1070
- const concurrencyThrottlingToolbar = new UI.Toolbar.Toolbar('', hardwareConcurrencyPane.element);
1071
- concurrencyThrottlingToolbar.registerCSSFiles([timelinePanelStyles]);
1072
- input.element.classList.add('timeline-concurrency-input');
1073
- concurrencyThrottlingToolbar.appendToolbarItem(toggle);
1074
- concurrencyThrottlingToolbar.appendToolbarItem(input);
1075
- concurrencyThrottlingToolbar.appendToolbarItem(reset);
1076
- concurrencyThrottlingToolbar.appendToolbarItem(warning);
1077
-
1078
1089
  this.showSettingsPaneSetting.addChangeListener(this.updateSettingsPaneVisibility.bind(this));
1079
1090
  this.updateSettingsPaneVisibility();
1080
1091
  }
@@ -1297,9 +1308,6 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
1297
1308
  if (SDK.CPUThrottlingManager.CPUThrottlingManager.instance().cpuThrottlingRate() !== 1) {
1298
1309
  messages.push(i18nString(UIStrings.CpuThrottlingIsEnabled));
1299
1310
  }
1300
- if (MobileThrottling.ThrottlingManager.throttlingManager().hardwareConcurrencyOverrideEnabled) {
1301
- messages.push(i18nString(UIStrings.HardwareConcurrencyIsEnabled));
1302
- }
1303
1311
  if (SDK.NetworkManager.MultitargetNetworkManager.instance().isThrottling()) {
1304
1312
  messages.push(i18nString(UIStrings.NetworkThrottlingIsEnabled));
1305
1313
  }
@@ -1598,6 +1606,11 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
1598
1606
 
1599
1607
  private onClearButton(): void {
1600
1608
  this.#historyManager.clear();
1609
+ this.#traceEngineModel = this.#instantiateNewModel();
1610
+ ModificationsManager.reset();
1611
+ this.#uninstallSourceMapsResolver();
1612
+ this.flameChart.getMainDataProvider().reset(true);
1613
+ this.flameChart.reset();
1601
1614
  this.#changeView({mode: 'LANDING_PAGE'});
1602
1615
  }
1603
1616
 
@@ -1793,11 +1806,10 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
1793
1806
 
1794
1807
  this.#setActiveInsight(null);
1795
1808
 
1809
+ this.#eventToRelatedInsights.clear();
1796
1810
  const traceInsightsSets = this.#traceEngineModel.traceInsights(traceIndex);
1797
- if (traceInsightsSets) {
1798
- this.flameChart.setInsights(traceInsightsSets);
1799
- this.#sideBar.setInsights(traceInsightsSets);
1800
- }
1811
+ this.flameChart.setInsights(traceInsightsSets, this.#eventToRelatedInsights);
1812
+ this.#sideBar.setInsights(traceInsightsSets);
1801
1813
 
1802
1814
  this.#showSidebarIfRequired();
1803
1815
  }
@@ -2,17 +2,21 @@
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 '../../ui/components/linkifier/linkifier.js';
6
+
5
7
  import * as i18n from '../../core/i18n/i18n.js';
6
8
  import type * as Platform from '../../core/platform/platform.js';
7
9
  import * as SDK from '../../core/sdk/sdk.js';
8
10
  import type * as Protocol from '../../generated/protocol.js';
9
11
  import * as Trace from '../../models/trace/trace.js';
10
12
  import * as DataGrid from '../../ui/components/data_grid/data_grid.js';
11
- import * as Linkifier from '../../ui/components/linkifier/linkifier.js';
13
+ import type * as Linkifier from '../../ui/components/linkifier/linkifier.js';
12
14
  import * as UI from '../../ui/legacy/legacy.js';
13
15
  import * as LitHtml from '../../ui/lit-html/lit-html.js';
14
16
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
15
17
 
18
+ const {html} = LitHtml;
19
+
16
20
  const UIStrings = {
17
21
  /**
18
22
  *@description Label for selector stats data table
@@ -30,7 +34,7 @@ const UIStrings = {
30
34
  *@description Tooltip description '% of slow-path non-matches'
31
35
  */
32
36
  rejectPercentageExplanation:
33
- 'The percentage of non-matching nodes (Match Attempts - Match Count) that couldn\'t be quickly ruled out by the bloom filter. Lower is better.',
37
+ 'The percentage of non-matching nodes (Match Attempts - Match Count) that couldn\'t be quickly ruled out by the bloom filter due to high selector complexity. Lower is better.',
34
38
  /**
35
39
  *@description Column name for count of elements that the engine attempted to match against a style rule
36
40
  */
@@ -148,7 +152,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
148
152
  {
149
153
  id: SelectorTimingsKey.RejectPercentage as Lowercase<string>,
150
154
  title: i18nString(UIStrings.rejectPercentage),
151
- titleElement: LitHtml.html`<span title=${i18nString(UIStrings.rejectPercentageExplanation)}>${
155
+ titleElement: html`<span title=${i18nString(UIStrings.rejectPercentageExplanation)}>${
152
156
  i18nString(UIStrings.rejectPercentage)}</span>`,
153
157
  sortable: true,
154
158
  widthWeighting: 1,
@@ -388,7 +392,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
388
392
  columnId: SelectorTimingsKey.Elapsed,
389
393
  value: elapsedTimeInMs,
390
394
  renderer(): LitHtml.TemplateResult {
391
- return LitHtml.html`${elapsedTimeInMs.toFixed(3)}`;
395
+ return html`${elapsedTimeInMs.toFixed(3)}`;
392
396
  },
393
397
  },
394
398
  {columnId: SelectorTimingsKey.MatchAttempts, value: x[SelectorTimingsKey.MatchAttempts]},
@@ -397,7 +401,7 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
397
401
  columnId: SelectorTimingsKey.RejectPercentage,
398
402
  value: rejectPercentage,
399
403
  renderer(): LitHtml.TemplateResult {
400
- return LitHtml.html`${rejectPercentage.toFixed(1)}`;
404
+ return html`${rejectPercentage.toFixed(1)}`;
401
405
  },
402
406
  },
403
407
  {
@@ -410,25 +414,25 @@ export class TimelineSelectorStatsView extends UI.Widget.VBox {
410
414
  value: x[SelectorTimingsKey.StyleSheetId],
411
415
  renderer(): LitHtml.TemplateResult {
412
416
  if (locations === null) {
413
- return LitHtml.html`<span></span>`;
417
+ return html`<span></span>`;
414
418
  }
415
419
  if (locations === undefined) {
416
- return LitHtml.html`<span title=${i18nString(UIStrings.unableToLinkViaStyleSheetId, {
420
+ return html`<span title=${i18nString(UIStrings.unableToLinkViaStyleSheetId, {
417
421
  PH1: x[SelectorTimingsKey.StyleSheetId],
418
422
  })} aria-label=${i18nString(UIStrings.unableToLinkViaStyleSheetId, {
419
423
  PH1: x[SelectorTimingsKey.StyleSheetId],
420
424
  })}>${i18nString(UIStrings.unableToLink)}</span>`;
421
425
  }
422
- return LitHtml.html`
426
+ return html`
423
427
  ${locations.map((location, itemIndex) => {
424
428
  if (itemIndex !== locations.length - 1) {
425
429
  // eslint-disable-next-line rulesdir/ban_a_tags_in_lit_html
426
- return LitHtml.html`<${Linkifier.Linkifier.Linkifier.litTagName} .data=${
427
- location as Linkifier.Linkifier.LinkifierData}></${Linkifier.Linkifier.Linkifier.litTagName}>
430
+ return html`<devtools-linkifier .data=${
431
+ location as Linkifier.Linkifier.LinkifierData}></devtools-linkifier>
428
432
  <a>, </a>`;
429
433
  }
430
- return LitHtml.html`<${Linkifier.Linkifier.Linkifier.litTagName} .data=${
431
- location as Linkifier.Linkifier.LinkifierData}></${Linkifier.Linkifier.Linkifier.litTagName}>`;
434
+ return html`<devtools-linkifier .data=${
435
+ location as Linkifier.Linkifier.LinkifierData}></devtools-linkifier>`;
432
436
  })}
433
437
  `;
434
438
  },
@@ -160,15 +160,15 @@ describeWithEnvironment('TimelineTreeView', function() {
160
160
  const tree = callTreeView.buildTree();
161
161
  const treeEntries = tree.children().entries();
162
162
  const groupEntry = treeEntries.next();
163
- const nodeName = groupEntry.value[0];
164
- const node = groupEntry.value[1];
163
+ const nodeName = groupEntry.value![0];
164
+ const node = groupEntry.value![1];
165
165
  assert.strictEqual(nodeName, 'scripting');
166
166
  assert.strictEqual(callTreeView.displayInfoForGroupNode(node).color, 'rgb(250 204 21 / 100%)');
167
167
 
168
168
  assert.isTrue(node.isGroupNode());
169
169
  const children = node.children().values();
170
- assert.strictEqual(children.next().value.event.name, 'first console time');
171
- assert.strictEqual(children.next().value.event.name, 'third console time');
170
+ assert.strictEqual(children.next().value!.event!.name, 'first console time');
171
+ assert.strictEqual(children.next().value!.event!.name, 'third console time');
172
172
  });
173
173
  it('groups events by category in the Bottom up Tree view', async function() {
174
174
  const {parsedTrace} = await TraceLoader.traceEngine(this, 'sync-like-timings.json.gz');
@@ -182,16 +182,16 @@ describeWithEnvironment('TimelineTreeView', function() {
182
182
  const tree = callTreeView.buildTree();
183
183
  const treeEntries = tree.children().entries();
184
184
  const groupEntry = treeEntries.next();
185
- const nodeName = groupEntry.value[0];
186
- const node = groupEntry.value[1];
185
+ const nodeName = groupEntry.value![0];
186
+ const node = groupEntry.value![1];
187
187
  assert.strictEqual(nodeName, 'scripting');
188
188
  assert.strictEqual(callTreeView.displayInfoForGroupNode(node).color, 'rgb(250 204 21 / 100%)');
189
189
 
190
190
  assert.isTrue(node.isGroupNode());
191
191
  const children = node.children().values();
192
- assert.strictEqual(children.next().value.event.name, 'second console time');
193
- assert.strictEqual(children.next().value.event.name, 'first console time');
194
- assert.strictEqual(children.next().value.event.name, 'third console time');
192
+ assert.strictEqual(children.next().value!.event!.name, 'second console time');
193
+ assert.strictEqual(children.next().value!.event!.name, 'first console time');
194
+ assert.strictEqual(children.next().value!.event!.name, 'third console time');
195
195
  });
196
196
 
197
197
  it('can group entries by domain', async function() {
@@ -20,7 +20,7 @@ import * as Extensions from './extensions/extensions.js';
20
20
  import {Tracker} from './FreshRecording.js';
21
21
  import {targetForEvent} from './TargetForEvent.js';
22
22
  import {TimelineRegExp} from './TimelineFilters.js';
23
- import {type TimelineSelection} from './TimelineSelection.js';
23
+ import type {TimelineSelection} from './TimelineSelection.js';
24
24
  import {TimelineUIUtils} from './TimelineUIUtils.js';
25
25
 
26
26
  const UIStrings = {