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
@@ -93,7 +93,7 @@ describeWithMockConnection('MetricCard', () => {
93
93
 
94
94
  const localValueEl = getLocalMetricValue(view);
95
95
  assert.strictEqual(localValueEl.className, 'metric-value good');
96
- assert.strictEqual(localValueEl.innerText, '100 ms');
96
+ assert.strictEqual(localValueEl.innerText, '0.10 s');
97
97
 
98
98
  const fieldValueEl = getFieldMetricValue(view);
99
99
  assert.strictEqual(fieldValueEl!.className, 'metric-value poor');
@@ -145,7 +145,7 @@ describeWithMockConnection('MetricCard', () => {
145
145
 
146
146
  const localValueEl = getLocalMetricValue(view);
147
147
  assert.strictEqual(localValueEl.className, 'metric-value poor');
148
- assert.strictEqual(localValueEl.innerText, '2.00 s');
148
+ assert.strictEqual(localValueEl.innerText, '2000 ms');
149
149
 
150
150
  const fieldValueEl = getFieldMetricValue(view);
151
151
  assert.strictEqual(fieldValueEl!.className, 'metric-value good');
@@ -268,7 +268,7 @@ describeWithMockConnection('MetricCard', () => {
268
268
  assert.deepStrictEqual(histogramPercents, ['50%', '30%', '20%']);
269
269
 
270
270
  const fieldValueEl = getFieldMetricValue(view);
271
- assert.strictEqual(fieldValueEl!.textContent, '200 ms');
271
+ assert.strictEqual(fieldValueEl!.textContent, '0.20 s');
272
272
  });
273
273
 
274
274
  it('should show empty values when crux is enabled but there is no field data', async () => {
@@ -309,7 +309,7 @@ describeWithMockConnection('MetricCard', () => {
309
309
 
310
310
  const compareText = getCompareText(view);
311
311
  assert.strictEqual(
312
- compareText!.innerText, 'Your local LCP value of 100 ms is good, and is similar to your users’ experience.');
312
+ compareText!.innerText, 'Your local LCP value of 0.10 s is good, and is similar to your users’ experience.');
313
313
  });
314
314
 
315
315
  it('should show message when local is better', async () => {
@@ -327,7 +327,7 @@ describeWithMockConnection('MetricCard', () => {
327
327
  const compareText = getCompareText(view);
328
328
  assert.strictEqual(
329
329
  compareText!.innerText,
330
- 'Your local LCP value of 100 ms is good, but is significantly better than your users’ experience.');
330
+ 'Your local LCP value of 0.10 s is good, but is significantly better than your users’ experience.');
331
331
  });
332
332
 
333
333
  it('should show message when local is worse', async () => {
@@ -362,7 +362,7 @@ describeWithMockConnection('MetricCard', () => {
362
362
 
363
363
  const compareText = getCompareText(view);
364
364
  assert.strictEqual(
365
- compareText!.innerText, 'Your local LCP value of 10 ms is good, and is similar to your users’ experience.');
365
+ compareText!.innerText, 'Your local LCP value of 0.01 s is good, and is similar to your users’ experience.');
366
366
  });
367
367
 
368
368
  it('should show generic summary if field is missing', async () => {
@@ -409,7 +409,7 @@ describeWithMockConnection('MetricCard', () => {
409
409
  const compareText = getDetailedCompareText(view);
410
410
  assert.strictEqual(
411
411
  compareText!.textContent,
412
- 'Your local LCP value of 100 ms is good and is rated the same as 50% of real-user LCP experiences. Additionally, the field data 75th percentile LCP value of 1.00 s is good.',
412
+ 'Your local LCP value of 0.10 s is good and is rated the same as 50% of real-user LCP experiences. Additionally, the field data 75th percentile LCP value of 1.00 s is good.',
413
413
  );
414
414
  });
415
415
 
@@ -428,7 +428,7 @@ describeWithMockConnection('MetricCard', () => {
428
428
  const compareText = getDetailedCompareText(view);
429
429
  assert.strictEqual(
430
430
  compareText!.textContent,
431
- 'Your local LCP value of 100 ms is good and is rated the same as 50% of real-user LCP experiences. However, the field data 75th percentile LCP value of 5.00 s is poor.',
431
+ 'Your local LCP value of 0.10 s is good and is rated the same as 50% of real-user LCP experiences. However, the field data 75th percentile LCP value of 5.00 s is poor.',
432
432
  );
433
433
  });
434
434
 
@@ -136,7 +136,6 @@ export interface MetricCardData {
136
136
  }
137
137
 
138
138
  export class MetricCard extends HTMLElement {
139
- static readonly litTagName = LitHtml.literal`devtools-metric-card`;
140
139
  readonly #shadow = this.attachShadow({mode: 'open'});
141
140
 
142
141
  constructor() {
@@ -281,11 +280,14 @@ export class MetricCard extends HTMLElement {
281
280
  #getFormatFn(): (value: number) => string {
282
281
  switch (this.#data.metric) {
283
282
  case 'LCP':
284
- return v => i18n.TimeUtilities.millisToString(v);
283
+ return v => {
284
+ const micro = (v * 1000) as Platform.Timing.MicroSeconds;
285
+ return i18n.TimeUtilities.formatMicroSecondsAsSeconds(micro);
286
+ };
285
287
  case 'CLS':
286
288
  return v => v === 0 ? '0' : v.toFixed(2);
287
289
  case 'INP':
288
- return v => i18n.TimeUtilities.millisToString(v);
290
+ return v => i18n.TimeUtilities.preciseMillisToString(v);
289
291
  }
290
292
  }
291
293
 
@@ -623,7 +625,7 @@ export class MetricCard extends HTMLElement {
623
625
  ${fieldEnabled ? html`<hr class="divider">` : nothing}
624
626
  ${this.#renderCompareString()}
625
627
  ${this.#renderEnvironmentRecommendations()}
626
- <slot name="extra-info"><slot>
628
+ <slot name="extra-info"></slot>
627
629
  </div>
628
630
  `;
629
631
  LitHtml.render(output, this.#shadow, {host: this});
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as i18n from '../../../core/i18n/i18n.js';
6
6
 
7
- import {type MetricRating} from './Utils.js';
7
+ import type {MetricRating} from './Utils.js';
8
8
 
9
9
  // This file is auto-generated by scripts/generate_metric_compare_strings.js.
10
10
  //
@@ -2,11 +2,13 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import '../../../ui/components/request_link_icon/request_link_icon.js';
6
+
5
7
  import * as i18n from '../../../core/i18n/i18n.js';
6
8
  import * as Platform from '../../../core/platform/platform.js';
7
9
  import type * as SDK from '../../../core/sdk/sdk.js';
8
10
  import * as Trace from '../../../models/trace/trace.js';
9
- import * as RequestLinkIcon from '../../../ui/components/request_link_icon/request_link_icon.js';
11
+ import type * as RequestLinkIcon from '../../../ui/components/request_link_icon/request_link_icon.js';
10
12
  import * as PerfUI from '../../../ui/legacy/components/perf_ui/perf_ui.js';
11
13
  import * as LegacyComponents from '../../../ui/legacy/components/utils/utils.js';
12
14
  import * as UI from '../../../ui/legacy/legacy.js';
@@ -16,6 +18,8 @@ import * as TimelineUtils from '../utils/utils.js';
16
18
  import NetworkRequestDetailsStyles from './networkRequestDetails.css.js';
17
19
  import {colorForNetworkRequest} from './Utils.js';
18
20
 
21
+ const {html} = LitHtml;
22
+
19
23
  const MAX_URL_LENGTH = 80;
20
24
 
21
25
  const UIStrings = {
@@ -108,7 +112,6 @@ const str_ = i18n.i18n.registerUIStrings('panels/timeline/components/NetworkRequ
108
112
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
109
113
 
110
114
  export class NetworkRequestDetails extends HTMLElement {
111
- static readonly litTagName = LitHtml.literal`devtools-performance-network-request-details`;
112
115
  readonly #shadow = this.attachShadow({mode: 'open'});
113
116
 
114
117
  #networkRequest: Trace.Types.Events.SyntheticNetworkRequest|null = null;
@@ -144,9 +147,9 @@ export class NetworkRequestDetails extends HTMLElement {
144
147
  const style = {
145
148
  backgroundColor: `${colorForNetworkRequest(this.#networkRequest)}`,
146
149
  };
147
- return LitHtml.html`
150
+ return html`
148
151
  <div class="network-request-details-title">
149
- <div style=${LitHtml.Directives.styleMap(style)}"></div>
152
+ <div style=${LitHtml.Directives.styleMap(style)}></div>
150
153
  ${i18nString(UIStrings.networkRequest)}
151
154
  </div>
152
155
  `;
@@ -156,7 +159,7 @@ export class NetworkRequestDetails extends HTMLElement {
156
159
  if (!value) {
157
160
  return null;
158
161
  }
159
- return LitHtml.html`
162
+ return html`
160
163
  <div class="network-request-details-row"><div class="title">${title}</div><div class="value">${value}</div></div>
161
164
  `;
162
165
  }
@@ -193,11 +196,11 @@ export class NetworkRequestDetails extends HTMLElement {
193
196
  });
194
197
 
195
198
  // clang-format off
196
- const urlElement = LitHtml.html`
199
+ const urlElement = html`
197
200
  ${linkifiedURL}
198
- <${RequestLinkIcon.RequestLinkIcon.RequestLinkIcon.litTagName}
201
+ <devtools-request-link-icon
199
202
  .data=${{request: networkRequest} as RequestLinkIcon.RequestLinkIcon.RequestLinkIconData} >
200
- </${RequestLinkIcon.RequestLinkIcon.RequestLinkIcon.litTagName}>
203
+ </devtools-request-link-icon>
201
204
  `;
202
205
  // clang-format on
203
206
  return this.#renderRow(i18n.i18n.lockedString('URL'), urlElement);
@@ -225,7 +228,7 @@ export class NetworkRequestDetails extends HTMLElement {
225
228
  return null;
226
229
  }
227
230
  const durationValue = i18n.TimeUtilities.formatMicroSecondsTime(fullDuration);
228
- const durationElement = LitHtml.html`
231
+ const durationElement = html`
229
232
  <div>
230
233
  ${durationValue}
231
234
  ${this.#renderTimings()}
@@ -323,7 +326,7 @@ export class NetworkRequestDetails extends HTMLElement {
323
326
  // |
324
327
  // |----
325
328
  // |
326
- return LitHtml.html`<span class="whisker-left"> <span class="horizontal"></span> </span>`;
329
+ return html`<span class="whisker-left"> <span class="horizontal"></span> </span>`;
327
330
  }
328
331
 
329
332
  #renderRightWhisker(): LitHtml.TemplateResult {
@@ -332,7 +335,7 @@ export class NetworkRequestDetails extends HTMLElement {
332
335
  // |
333
336
  // ----|
334
337
  // |
335
- return LitHtml.html`<span class="whisker-right"> <span class="horizontal"></span> </span>`;
338
+ return html`<span class="whisker-right"> <span class="horizontal"></span> </span>`;
336
339
  }
337
340
 
338
341
  #renderTimings(): LitHtml.TemplateResult|null {
@@ -355,7 +358,7 @@ export class NetworkRequestDetails extends HTMLElement {
355
358
  backgroundColor: color,
356
359
  };
357
360
 
358
- return LitHtml.html`
361
+ return html`
359
362
  <div class="timings-row">
360
363
  ${this.#renderLeftWhisker()}
361
364
  ${i18nString(UIStrings.queuingAndConnecting)}
@@ -385,7 +388,7 @@ export class NetworkRequestDetails extends HTMLElement {
385
388
  }
386
389
  const networkData = this.#networkRequest.args.data;
387
390
  // clang-format off
388
- const output = LitHtml.html`
391
+ const output = html`
389
392
  ${this.#renderTitle()}
390
393
  <div class="network-request-details-body">
391
394
  <div class="network-request-details-col">
@@ -2,16 +2,19 @@
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/icon_button/icon_button.js';
6
+
5
7
  import * as i18n from '../../../core/i18n/i18n.js';
6
8
  import * as Platform from '../../../core/platform/platform.js';
7
9
  import * as Trace from '../../../models/trace/trace.js';
8
- import * as IconButton from '../../../ui/components/icon_button/icon_button.js';
9
10
  import * as PerfUI from '../../../ui/legacy/components/perf_ui/perf_ui.js';
10
11
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
11
12
 
12
13
  import networkRequestTooltipStyles from './networkRequestTooltip.css.js';
13
14
  import {colorForNetworkRequest} from './Utils.js';
14
15
 
16
+ const {html} = LitHtml;
17
+
15
18
  const MAX_URL_LENGTH = 30;
16
19
 
17
20
  const UIStrings = {
@@ -42,7 +45,6 @@ const UIStrings = {
42
45
  };
43
46
 
44
47
  export class NetworkRequestTooltip extends HTMLElement {
45
- static readonly litTagName = LitHtml.literal`devtools-performance-network-request-tooltip`;
46
48
  readonly #shadow = this.attachShadow({mode: 'open'});
47
49
 
48
50
  #networkRequest?: Trace.Types.Events.SyntheticNetworkRequest|null;
@@ -65,16 +67,16 @@ export class NetworkRequestTooltip extends HTMLElement {
65
67
  return null;
66
68
  }
67
69
  if (this.#networkRequest.args.data.priority === this.#networkRequest.args.data.initialPriority) {
68
- return LitHtml.html`
70
+ return html`
69
71
  <div class="priority">${UIStrings.priority}: ${
70
72
  PerfUI.NetworkPriorities.uiLabelForNetworkPriority(this.#networkRequest.args.data.priority)}</div>
71
73
  `;
72
74
  }
73
- return LitHtml.html`
75
+ return html`
74
76
  <div class="priority">
75
77
  ${UIStrings.priority}:
76
78
  ${PerfUI.NetworkPriorities.uiLabelForNetworkPriority(this.#networkRequest.args.data.initialPriority)}
77
- <${IconButton.Icon.Icon.litTagName} name=${'arrow-forward'}></${IconButton.Icon.Icon.litTagName}>
79
+ <devtools-icon name=${'arrow-forward'}></devtools-icon>
78
80
  ${PerfUI.NetworkPriorities.uiLabelForNetworkPriority(this.#networkRequest.args.data.priority)}
79
81
  </div>
80
82
  `;
@@ -86,7 +88,7 @@ export class NetworkRequestTooltip extends HTMLElement {
86
88
  // |
87
89
  // |----
88
90
  // |
89
- return LitHtml.html`<span class="whisker-left"> <span class="horizontal"></span> </span>`;
91
+ return html`<span class="whisker-left"> <span class="horizontal"></span> </span>`;
90
92
  }
91
93
 
92
94
  #renderRightWhisker(): LitHtml.TemplateResult {
@@ -95,7 +97,7 @@ export class NetworkRequestTooltip extends HTMLElement {
95
97
  // |
96
98
  // ----|
97
99
  // |
98
- return LitHtml.html`<span class="whisker-right"> <span class="horizontal"></span> </span>`;
100
+ return html`<span class="whisker-right"> <span class="horizontal"></span> </span>`;
99
101
  }
100
102
 
101
103
  #renderTimings(): LitHtml.TemplateResult|null {
@@ -118,7 +120,7 @@ export class NetworkRequestTooltip extends HTMLElement {
118
120
  backgroundColor: color,
119
121
  };
120
122
 
121
- return LitHtml.html`
123
+ return html`
122
124
  <ul>
123
125
  <li>
124
126
  ${this.#renderLeftWhisker()}
@@ -150,7 +152,7 @@ export class NetworkRequestTooltip extends HTMLElement {
150
152
  }
151
153
  const networkData = this.#networkRequest.args.data;
152
154
  // clang-format off
153
- const output = LitHtml.html`
155
+ const output = html`
154
156
  <div class="performance-card">
155
157
  <span class="url">${Platform.StringUtilities.trimMiddle(networkData.url, MAX_URL_LENGTH)}</span>
156
158
  <span class="time bold">${i18n.TimeUtilities.formatMicroSecondsTime(this.#networkRequest.dur)}</span>
@@ -158,7 +160,7 @@ export class NetworkRequestTooltip extends HTMLElement {
158
160
  <div class="divider"></div>
159
161
  ${this.#renderPriority()}
160
162
  ${Trace.Helpers.Network.isSyntheticNetworkRequestEventRenderBlocking(this.#networkRequest) ?
161
- LitHtml.html`<div class="render-blocking"> ${UIStrings.renderBlocking} </div>` : LitHtml.nothing
163
+ html`<div class="render-blocking"> ${UIStrings.renderBlocking} </div>` : LitHtml.nothing
162
164
  }
163
165
  <div class="divider"></div>
164
166
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Common from '../../../core/common/common.js';
6
6
  import * as SDK from '../../../core/sdk/sdk.js';
7
- import {renderElementIntoDOM} from '../../../testing/DOMHelpers.js';
7
+ import {getCleanTextContentFromElements, renderElementIntoDOM} from '../../../testing/DOMHelpers.js';
8
8
  import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
9
9
  import type * as Menus from '../../../ui/components/menus/menus.js';
10
10
  import * as Coordinator from '../../../ui/components/render_coordinator/render_coordinator.js';
@@ -82,6 +82,40 @@ describeWithEnvironment('NetworkThrottlingSelector', () => {
82
82
  assert.strictEqual(networkManager.networkConditions().i18nTitleKey, 'Fast 4G');
83
83
  });
84
84
 
85
+ it('correctly updates when a custom preset is selected', async () => {
86
+ const view = new Components.NetworkThrottlingSelector.NetworkThrottlingSelector();
87
+ renderElementIntoDOM(view);
88
+ await coordinator.done();
89
+ customNetworkSetting.set([
90
+ {
91
+ title: 'Custom item one',
92
+ download: 0,
93
+ upload: 0,
94
+ latency: 0,
95
+ },
96
+ {
97
+ title: 'Custom item two',
98
+ download: 0,
99
+ upload: 0,
100
+ latency: 0,
101
+
102
+ },
103
+ ]);
104
+ await coordinator.done();
105
+
106
+ assert.isOk(view.shadowRoot);
107
+ const items = view.shadowRoot.querySelectorAll('devtools-menu-item');
108
+ const itemsText = getCleanTextContentFromElements(view.shadowRoot, 'devtools-menu-item');
109
+ assert.deepEqual(
110
+ itemsText,
111
+ ['No throttling', 'Fast 4G', 'Slow 4G', '3G', 'Offline', 'Custom item one', 'Custom item two', 'Add…']);
112
+
113
+ items[6].click();
114
+ await coordinator.done();
115
+ assert.deepEqual(Array.from(items).filter(i => i.selected), [items[6]]);
116
+ assert.strictEqual(networkManager.networkConditions().title, 'Custom item two');
117
+ });
118
+
85
119
  it('reacts to changes when it is unmounted and then remounted', async () => {
86
120
  const view = new Components.NetworkThrottlingSelector.NetworkThrottlingSelector();
87
121
  // Change the conditions before the component is put into the DOM.
@@ -122,7 +156,6 @@ describeWithEnvironment('NetworkThrottlingSelector', () => {
122
156
 
123
157
  customNetworkSetting.set([{
124
158
  title: 'Custom item',
125
- i18nTitleKey: 'Custom item',
126
159
  download: 0,
127
160
  upload: 0,
128
161
  latency: 0,
@@ -2,12 +2,14 @@
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/menus/menus.js';
6
+
5
7
  import * as Common from '../../../core/common/common.js';
6
8
  import * as i18n from '../../../core/i18n/i18n.js';
7
9
  import * as Platform from '../../../core/platform/platform.js';
8
10
  import * as SDK from '../../../core/sdk/sdk.js';
9
11
  import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
10
- import * as Menus from '../../../ui/components/menus/menus.js';
12
+ import type * as Menus from '../../../ui/components/menus/menus.js';
11
13
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
12
14
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
13
15
  import * as MobileThrottling from '../../mobile_throttling/mobile_throttling.js';
@@ -56,7 +58,6 @@ interface ConditionsGroup {
56
58
  }
57
59
 
58
60
  export class NetworkThrottlingSelector extends HTMLElement {
59
- static readonly litTagName = LitHtml.literal`devtools-network-throttling-selector`;
60
61
  readonly #shadow = this.attachShadow({mode: 'open'});
61
62
 
62
63
  #customNetworkConditionsSetting: Common.Settings.Setting<SDK.NetworkManager.Conditions[]>;
@@ -118,7 +119,10 @@ export class NetworkThrottlingSelector extends HTMLElement {
118
119
  }
119
120
 
120
121
  #onMenuItemSelected(event: Menus.SelectMenu.SelectMenuItemSelectedEvent): void {
121
- const newConditions = this.#groups.flatMap(g => g.items).find(item => item.i18nTitleKey === event.itemValue);
122
+ const newConditions = this.#groups.flatMap(g => g.items).find(item => {
123
+ const keyForItem = this.#keyForNetworkConditions(item);
124
+ return keyForItem === event.itemValue;
125
+ });
122
126
  if (newConditions) {
123
127
  SDK.NetworkManager.MultitargetNetworkManager.instance().setNetworkConditions(newConditions);
124
128
  }
@@ -137,12 +141,23 @@ export class NetworkThrottlingSelector extends HTMLElement {
137
141
  void Common.Revealer.reveal(this.#customNetworkConditionsSetting);
138
142
  }
139
143
 
144
+ /**
145
+ * The key that uniquely identifies the condition setting. All the DevTools
146
+ * presets have the i18nKey, so we rely on that, but for custom user added
147
+ * ones we fallback to using the title (it wouldn't make sense for a user to
148
+ * add presets with the same title)
149
+ */
150
+ #keyForNetworkConditions(conditions: SDK.NetworkManager.Conditions): string {
151
+ return conditions.i18nTitleKey || this.#getConditionsTitle(conditions);
152
+ }
153
+
140
154
  #render = (): void => {
141
155
  const selectionTitle = this.#getConditionsTitle(this.#currentConditions);
156
+ const selectedConditionsKey = this.#keyForNetworkConditions(this.#currentConditions);
142
157
 
143
158
  // clang-format off
144
159
  const output = html`
145
- <${Menus.SelectMenu.SelectMenu.litTagName}
160
+ <devtools-select-menu
146
161
  @selectmenuselected=${this.#onMenuItemSelected}
147
162
  .showDivider=${true}
148
163
  .showArrow=${true}
@@ -155,33 +170,35 @@ export class NetworkThrottlingSelector extends HTMLElement {
155
170
  >
156
171
  ${this.#groups.map(group => {
157
172
  return html`
158
- <${Menus.Menu.MenuGroup.litTagName} .name=${group.name}>
173
+ <devtools-menu-group .name=${group.name}>
159
174
  ${group.items.map(conditions => {
175
+ const key = this.#keyForNetworkConditions(conditions);
160
176
  const title = this.#getConditionsTitle(conditions);
161
177
  const jslogContext = group.jslogContext || Platform.StringUtilities.toKebabCase(conditions.i18nTitleKey || title);
162
178
  return html`
163
- <${Menus.Menu.MenuItem.litTagName}
164
- .value=${conditions.i18nTitleKey}
165
- .selected=${this.#currentConditions.i18nTitleKey === conditions.i18nTitleKey}
179
+ <devtools-menu-item
180
+ title=${title}
181
+ .value=${key}
182
+ .selected=${selectedConditionsKey === key}
166
183
  jslog=${VisualLogging.item(jslogContext).track({click: true})}
167
184
  >
168
185
  ${title}
169
- </${Menus.Menu.MenuItem.litTagName}>
186
+ </devtools-menu-item>
170
187
  `;
171
188
  })}
172
189
  ${group.showCustomAddOption ? html`
173
- <${Menus.Menu.MenuItem.litTagName}
190
+ <devtools-menu-item
174
191
  .value=${1 /* This won't be displayed unless it has some value. */}
175
192
  jslog=${VisualLogging.action('add').track({click: true})}
176
193
  @click=${this.#onAddClick}
177
194
  >
178
195
  ${i18nString(UIStrings.add)}
179
- </${Menus.Menu.MenuItem.litTagName}>
196
+ </devtools-menu-item>
180
197
  ` : nothing}
181
- </${Menus.Menu.MenuGroup.litTagName}>
198
+ </devtools-menu-group>
182
199
  `;
183
200
  })}
184
- </${Menus.SelectMenu.SelectMenu.litTagName}>
201
+ </devtools-select-menu>
185
202
  `;
186
203
  // clang-format on
187
204
  LitHtml.render(output, this.#shadow, {host: this});
@@ -0,0 +1,74 @@
1
+ // Copyright 2024 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import type * as Trace from '../../../models/trace/trace.js';
6
+ import {
7
+ dispatchClickEvent,
8
+ getCleanTextContentFromElements,
9
+ renderElementIntoDOM,
10
+ } from '../../../testing/DOMHelpers.js';
11
+ import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
12
+ import * as Coordinator from '../../../ui/components/render_coordinator/render_coordinator.js';
13
+
14
+ import * as Components from './components.js';
15
+
16
+ const coordinator = Coordinator.RenderCoordinator.RenderCoordinator.instance();
17
+
18
+ describeWithEnvironment('RelatedInsightChips', () => {
19
+ // Event doesn't matter, so let's keep this test quick and avoid parsing a trace.
20
+ const FAKE_EVENT = {} as unknown as Trace.Types.Events.Event;
21
+
22
+ it('renders nothing if the event has no insights', async () => {
23
+ const component = new Components.RelatedInsightChips.RelatedInsightChips();
24
+ renderElementIntoDOM(component);
25
+ component.activeEvent = FAKE_EVENT;
26
+ component.eventToRelatedInsightsMap = new Map();
27
+ await coordinator.done();
28
+ assert.isOk(component.shadowRoot);
29
+ assert.strictEqual(component.shadowRoot.childElementCount, 0);
30
+ });
31
+
32
+ it('renders a chip for each insight the given event is associated with', async () => {
33
+ const relatedInsight: Components.RelatedInsightChips.RelatedInsight = {
34
+ insightLabel: 'Some fake insight',
35
+ activateInsight: () => {},
36
+ };
37
+ const relatedMap: Components.RelatedInsightChips.EventToRelatedInsightsMap = new Map();
38
+ relatedMap.set(FAKE_EVENT, [relatedInsight]);
39
+
40
+ const component = new Components.RelatedInsightChips.RelatedInsightChips();
41
+ renderElementIntoDOM(component);
42
+ component.activeEvent = FAKE_EVENT;
43
+ component.eventToRelatedInsightsMap = relatedMap;
44
+ await coordinator.done();
45
+ assert.isOk(component.shadowRoot);
46
+
47
+ const chips = component.shadowRoot.querySelectorAll<HTMLElement>('li.insight-chip');
48
+ assert.lengthOf(chips, 1);
49
+ const text = getCleanTextContentFromElements(chips[0], 'button .insight-label');
50
+ assert.deepEqual(text, ['Some fake insight']);
51
+ });
52
+
53
+ it('calls the activateInsight function when the insight is clicked', async () => {
54
+ const activateStub = sinon.stub();
55
+ const relatedInsight: Components.RelatedInsightChips.RelatedInsight = {
56
+ insightLabel: 'Some fake insight',
57
+ activateInsight: () => activateStub(),
58
+ };
59
+ const relatedMap: Components.RelatedInsightChips.EventToRelatedInsightsMap = new Map();
60
+ relatedMap.set(FAKE_EVENT, [relatedInsight]);
61
+
62
+ const component = new Components.RelatedInsightChips.RelatedInsightChips();
63
+ renderElementIntoDOM(component);
64
+ component.activeEvent = FAKE_EVENT;
65
+ component.eventToRelatedInsightsMap = relatedMap;
66
+ await coordinator.done();
67
+ assert.isOk(component.shadowRoot);
68
+
69
+ const button = component.shadowRoot.querySelector('button');
70
+ assert.isOk(button);
71
+ dispatchClickEvent(button);
72
+ assert.isTrue(activateStub.called);
73
+ });
74
+ });
@@ -0,0 +1,92 @@
1
+ // Copyright 2024 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as i18n from '../../../core/i18n/i18n.js';
6
+ import type * as Trace from '../../../models/trace/trace.js';
7
+ import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
8
+ import * as LitHtml from '../../../ui/lit-html/lit-html.js';
9
+
10
+ import styles from './relatedInsightChips.css.js';
11
+
12
+ const {html} = LitHtml;
13
+
14
+ const UIStrings = {
15
+ /**
16
+ *@description prefix shown next to related insight chips
17
+ */
18
+ insightKeyword: 'Insight',
19
+ };
20
+ const str_ = i18n.i18n.registerUIStrings('panels/timeline/components/RelatedInsightChips.ts', UIStrings);
21
+ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
22
+
23
+ export interface RelatedInsight {
24
+ insightLabel: string;
25
+ activateInsight: () => void;
26
+ }
27
+ export type EventToRelatedInsightsMap = Map<Trace.Types.Events.Event, RelatedInsight[]>;
28
+
29
+ export interface Data {
30
+ eventToRelatedInsightsMap: EventToRelatedInsightsMap;
31
+ activeEvent: Trace.Types.Events.Event|null;
32
+ }
33
+ export class RelatedInsightChips extends HTMLElement {
34
+ #shadow = this.attachShadow({mode: 'open'});
35
+
36
+ #boundRender = this.#render.bind(this);
37
+
38
+ #data: Data = {eventToRelatedInsightsMap: new Map(), activeEvent: null};
39
+
40
+ connectedCallback(): void {
41
+ this.#shadow.adoptedStyleSheets = [styles];
42
+ this.#render();
43
+ }
44
+
45
+ set activeEvent(event: Data['activeEvent']) {
46
+ if (event === this.#data.activeEvent) {
47
+ return;
48
+ }
49
+ this.#data.activeEvent = event;
50
+ void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender);
51
+ }
52
+
53
+ set eventToRelatedInsightsMap(map: Data['eventToRelatedInsightsMap']) {
54
+ this.#data.eventToRelatedInsightsMap = map;
55
+ void ComponentHelpers.ScheduledRender.scheduleRender(this, this.#boundRender);
56
+ }
57
+
58
+ #insightClick(insight: RelatedInsight): (e: Event) => void {
59
+ return (event: Event) => {
60
+ event.preventDefault();
61
+ insight.activateInsight();
62
+ };
63
+ }
64
+
65
+ #render(): void {
66
+ const {activeEvent, eventToRelatedInsightsMap} = this.#data;
67
+ const relatedInsights = activeEvent ? eventToRelatedInsightsMap.get(activeEvent) ?? [] : [];
68
+ if (!activeEvent || eventToRelatedInsightsMap.size === 0 || relatedInsights.length === 0) {
69
+ LitHtml.render(html``, this.#shadow, {host: this});
70
+ return;
71
+ }
72
+
73
+ const insightChips = relatedInsights.map(insight => {
74
+ // clang-format off
75
+ return html`
76
+ <li class="insight-chip">
77
+ <button type="button" @click=${this.#insightClick(insight)}>
78
+ <span class="keyword">${i18nString(UIStrings.insightKeyword)}</span>
79
+ <span class="insight-label">${insight.insightLabel}</span>
80
+ </button>
81
+ </li>
82
+ `;
83
+ // clang-format on
84
+ });
85
+
86
+ // clang-format off
87
+ LitHtml.render(html`<ul>${insightChips}</ul>`, this.#shadow, {host: this});
88
+ // clang-format on
89
+ }
90
+ }
91
+
92
+ customElements.define('devtools-related-insight-chips', RelatedInsightChips);