chrome-devtools-frontend 1.0.1512147 → 1.0.1513662

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 (337) hide show
  1. package/docs/cookbook/release_management.md +15 -13
  2. package/docs/get_the_code.md +114 -35
  3. package/front_end/Images/src/ai-explorer-badge.svg +114 -0
  4. package/front_end/Images/src/code-whisperer-badge.svg +166 -0
  5. package/front_end/Images/src/devtools-user-badge.svg +129 -0
  6. package/front_end/Images/src/dom-detective-badge.svg +136 -0
  7. package/front_end/Images/src/speedster-badge.svg +166 -0
  8. package/front_end/core/common/Color.ts +40 -44
  9. package/front_end/core/common/Console.ts +4 -4
  10. package/front_end/core/common/ParsedURL.ts +14 -14
  11. package/front_end/core/common/ResourceType.ts +20 -20
  12. package/front_end/core/common/SegmentedRange.ts +13 -14
  13. package/front_end/core/common/Settings.ts +4 -4
  14. package/front_end/core/common/StringOutputStream.ts +4 -4
  15. package/front_end/core/host/GdpClient.ts +76 -2
  16. package/front_end/core/host/InspectorFrontendHost.ts +4 -1
  17. package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
  18. package/front_end/core/host/ResourceLoader.ts +2 -2
  19. package/front_end/core/host/UserMetrics.ts +0 -2
  20. package/front_end/core/i18n/NumberFormatter.ts +7 -0
  21. package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
  22. package/front_end/core/root/Runtime.ts +5 -2
  23. package/front_end/core/sdk/AccessibilityModel.ts +48 -48
  24. package/front_end/core/sdk/AnimationModel.ts +78 -79
  25. package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
  26. package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
  27. package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
  28. package/front_end/core/sdk/CSSMedia.ts +22 -22
  29. package/front_end/core/sdk/CSSModel.ts +4 -4
  30. package/front_end/core/sdk/CSSProperty.ts +9 -9
  31. package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
  32. package/front_end/core/sdk/CSSRule.ts +3 -3
  33. package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
  34. package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
  35. package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
  36. package/front_end/core/sdk/ChildTargetManager.ts +6 -6
  37. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
  38. package/front_end/core/sdk/ConsoleModel.ts +24 -24
  39. package/front_end/core/sdk/Cookie.ts +16 -16
  40. package/front_end/core/sdk/CookieParser.ts +6 -6
  41. package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
  42. package/front_end/core/sdk/DOMModel.ts +113 -113
  43. package/front_end/core/sdk/DebuggerModel.ts +102 -103
  44. package/front_end/core/sdk/EmulationModel.ts +6 -6
  45. package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
  46. package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
  47. package/front_end/core/sdk/IsolateManager.ts +26 -26
  48. package/front_end/core/sdk/LayerTreeBase.ts +29 -30
  49. package/front_end/core/sdk/OverlayModel.ts +6 -6
  50. package/front_end/core/sdk/Resource.ts +43 -43
  51. package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
  52. package/front_end/core/sdk/RuntimeModel.ts +12 -13
  53. package/front_end/core/sdk/SDKModel.ts +3 -3
  54. package/front_end/core/sdk/Script.ts +17 -17
  55. package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
  56. package/front_end/core/sdk/ServerTiming.ts +2 -2
  57. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
  58. package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
  59. package/front_end/core/sdk/SourceMap.ts +10 -10
  60. package/front_end/core/sdk/StorageKeyManager.ts +12 -12
  61. package/front_end/core/sdk/Target.ts +33 -34
  62. package/front_end/core/sdk/TargetManager.ts +20 -20
  63. package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
  64. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
  65. package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
  66. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
  67. package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
  68. package/front_end/entrypoints/main/MainImpl.ts +16 -14
  69. package/front_end/entrypoints/main/main-meta.ts +1 -2
  70. package/front_end/generated/InspectorBackendCommands.js +3 -2
  71. package/front_end/generated/SupportedCSSProperties.js +20 -0
  72. package/front_end/generated/protocol-mapping.d.ts +4 -0
  73. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  74. package/front_end/generated/protocol.ts +20 -0
  75. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +18 -35
  76. package/front_end/models/ai_assistance/ai_assistance.ts +1 -1
  77. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +7 -6
  78. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +246 -119
  79. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +187 -73
  80. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +106 -100
  81. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +20 -27
  82. package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +151 -0
  83. package/front_end/models/badges/AiExplorerBadge.ts +21 -0
  84. package/front_end/models/badges/Badge.ts +10 -9
  85. package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
  86. package/front_end/models/badges/DOMDetectiveBadge.ts +21 -0
  87. package/front_end/models/badges/SpeedsterBadge.ts +7 -2
  88. package/front_end/models/badges/StarterBadge.ts +6 -1
  89. package/front_end/models/badges/UserBadges.ts +61 -9
  90. package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
  91. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
  92. package/front_end/models/bindings/FileUtils.ts +15 -15
  93. package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
  94. package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
  95. package/front_end/models/emulation/DeviceModeModel.ts +123 -131
  96. package/front_end/models/emulation/EmulatedDevices.ts +22 -22
  97. package/front_end/models/extensions/ExtensionPanel.ts +24 -24
  98. package/front_end/models/extensions/ExtensionServer.ts +4 -4
  99. package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
  100. package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
  101. package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
  102. package/front_end/models/trace/EventsSerializer.ts +5 -5
  103. package/front_end/models/trace/LanternComputationData.ts +10 -10
  104. package/front_end/models/trace/ModelImpl.ts +32 -54
  105. package/front_end/models/trace/Processor.ts +28 -30
  106. package/front_end/models/trace/extras/FilmStrip.ts +6 -6
  107. package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
  108. package/front_end/models/trace/extras/ThirdParties.ts +16 -17
  109. package/front_end/models/trace/extras/TraceFilter.ts +1 -1
  110. package/front_end/models/trace/handlers/Threads.ts +10 -10
  111. package/front_end/models/trace/handlers/helpers.ts +9 -9
  112. package/front_end/models/trace/handlers/types.ts +3 -3
  113. package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
  114. package/front_end/models/trace/insights/Cache.ts +8 -4
  115. package/front_end/models/trace/insights/DOMSize.ts +8 -5
  116. package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
  117. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
  118. package/front_end/models/trace/insights/FontDisplay.ts +3 -4
  119. package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
  120. package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
  121. package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
  122. package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
  123. package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
  124. package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
  125. package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
  126. package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
  127. package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
  128. package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
  129. package/front_end/models/trace/insights/ThirdParties.ts +4 -5
  130. package/front_end/models/trace/insights/Viewport.ts +8 -5
  131. package/front_end/models/trace/insights/types.ts +1 -0
  132. package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
  133. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
  134. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
  135. package/front_end/panels/animation/AnimationTimeline.ts +5 -5
  136. package/front_end/panels/animation/AnimationUI.ts +22 -23
  137. package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
  138. package/front_end/panels/application/DOMStorageModel.ts +23 -23
  139. package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
  140. package/front_end/panels/application/IndexedDBModel.ts +1 -0
  141. package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
  142. package/front_end/panels/application/ServiceWorkersView.ts +0 -53
  143. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
  144. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
  145. package/front_end/panels/common/BadgeNotification.ts +140 -10
  146. package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
  147. package/front_end/panels/common/badgeNotification.css +30 -9
  148. package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
  149. package/front_end/panels/console/ConsolePrompt.ts +8 -5
  150. package/front_end/panels/console/ConsoleView.ts +13 -13
  151. package/front_end/panels/console/ConsoleViewport.ts +29 -29
  152. package/front_end/panels/coverage/CoverageModel.ts +22 -22
  153. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  154. package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
  155. package/front_end/panels/elements/DOMPath.ts +2 -2
  156. package/front_end/panels/elements/ElementsPanel.ts +13 -13
  157. package/front_end/panels/elements/ElementsTreeElement.ts +30 -18
  158. package/front_end/panels/elements/ElementsTreeOutline.ts +44 -48
  159. package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
  160. package/front_end/panels/elements/StylePropertiesSection.ts +7 -4
  161. package/front_end/panels/elements/StylePropertyTreeElement.ts +54 -50
  162. package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
  163. package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
  164. package/front_end/panels/emulation/DeviceModeView.ts +6 -6
  165. package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
  166. package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
  167. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
  168. package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
  169. package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
  170. package/front_end/panels/layer_viewer/TransformController.ts +34 -36
  171. package/front_end/panels/layers/LayerTreeModel.ts +41 -40
  172. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
  173. package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
  174. package/front_end/panels/media/PlayerMessagesView.ts +5 -5
  175. package/front_end/panels/media/TickingFlameChart.ts +24 -24
  176. package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
  177. package/front_end/panels/network/NetworkItemView.ts +4 -4
  178. package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
  179. package/front_end/panels/network/NetworkPanel.ts +8 -5
  180. package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
  181. package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
  182. package/front_end/panels/profiler/HeapProfileView.ts +1 -1
  183. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
  184. package/front_end/panels/profiler/ProfileHeader.ts +25 -25
  185. package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
  186. package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
  187. package/front_end/panels/security/OriginTreeElement.ts +8 -8
  188. package/front_end/panels/security/SecurityPanel.ts +5 -5
  189. package/front_end/panels/settings/SettingsScreen.ts +18 -18
  190. package/front_end/panels/settings/components/SyncSection.ts +26 -8
  191. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
  192. package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
  193. package/front_end/panels/sources/NavigatorView.ts +43 -46
  194. package/front_end/panels/sources/SourcesPanel.ts +35 -35
  195. package/front_end/panels/sources/SourcesView.ts +13 -13
  196. package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
  197. package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
  198. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
  199. package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
  200. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
  201. package/front_end/panels/timeline/CountersGraph.ts +16 -16
  202. package/front_end/panels/timeline/EntriesFilter.ts +4 -3
  203. package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
  204. package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
  205. package/front_end/panels/timeline/Initiators.ts +10 -10
  206. package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
  207. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
  208. package/front_end/panels/timeline/ModificationsManager.ts +8 -15
  209. package/front_end/panels/timeline/TargetForEvent.ts +2 -2
  210. package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
  211. package/front_end/panels/timeline/ThreadAppender.ts +13 -13
  212. package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
  213. package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
  214. package/front_end/panels/timeline/TimelineFilters.ts +5 -5
  215. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
  216. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
  217. package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
  218. package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
  219. package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
  220. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
  221. package/front_end/panels/timeline/TimelinePanel.ts +73 -68
  222. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
  223. package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
  224. package/front_end/panels/timeline/TimelineUIUtils.ts +47 -46
  225. package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
  226. package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
  227. package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
  228. package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
  229. package/front_end/panels/timeline/components/DetailsView.ts +4 -4
  230. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
  231. package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
  232. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
  233. package/front_end/panels/timeline/components/Sidebar.ts +4 -14
  234. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
  235. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
  236. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
  237. package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
  238. package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
  239. package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
  240. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
  241. package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
  242. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
  243. package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
  244. package/front_end/panels/timeline/utils/AIContext.ts +17 -19
  245. package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
  246. package/front_end/panels/timeline/utils/EntryName.ts +2 -2
  247. package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
  248. package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
  249. package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
  250. package/front_end/panels/timeline/utils/Helpers.ts +0 -18
  251. package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
  252. package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
  253. package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
  254. package/front_end/third_party/chromium/README.chromium +1 -1
  255. package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
  256. package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
  257. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  258. package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
  259. package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
  260. package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
  261. package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
  262. package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
  263. package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
  264. package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
  265. package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
  266. package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
  267. package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
  268. package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
  269. package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
  270. package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
  271. package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
  272. package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
  273. package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
  274. package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
  275. package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
  276. package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
  277. package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
  278. package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
  279. package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
  280. package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
  281. package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
  282. package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
  283. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  284. package/front_end/third_party/codemirror.next/package.json +1 -1
  285. package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
  286. package/front_end/third_party/json5/rebuild.sh +1 -1
  287. package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
  288. package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
  289. package/front_end/third_party/lit/lib/decorators.js +5 -5
  290. package/front_end/third_party/lit/lib/decorators.js.map +1 -1
  291. package/front_end/third_party/lit/lib/directive.js.map +1 -1
  292. package/front_end/third_party/lit/lib/directives.js +8 -13
  293. package/front_end/third_party/lit/lib/directives.js.map +1 -1
  294. package/front_end/third_party/lit/lib/lit.d.ts +26 -9
  295. package/front_end/third_party/lit/lib/lit.js +5 -5
  296. package/front_end/third_party/lit/lib/lit.js.map +1 -1
  297. package/front_end/third_party/lit/lib/static-html.js +2 -2
  298. package/front_end/third_party/lit/lib/static-html.js.map +1 -1
  299. package/front_end/third_party/lit/rebuild.sh +1 -1
  300. package/front_end/third_party/third-party-web/rebuild.sh +1 -1
  301. package/front_end/ui/components/dialogs/Dialog.ts +6 -7
  302. package/front_end/ui/legacy/ActionRegistration.ts +9 -9
  303. package/front_end/ui/legacy/DockController.ts +18 -18
  304. package/front_end/ui/legacy/FilterBar.ts +7 -7
  305. package/front_end/ui/legacy/Fragment.ts +4 -4
  306. package/front_end/ui/legacy/GlassPane.ts +12 -12
  307. package/front_end/ui/legacy/InspectorView.ts +5 -15
  308. package/front_end/ui/legacy/ListControl.ts +27 -27
  309. package/front_end/ui/legacy/ListWidget.ts +4 -4
  310. package/front_end/ui/legacy/PopoverHelper.ts +4 -4
  311. package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
  312. package/front_end/ui/legacy/TabbedPane.ts +74 -75
  313. package/front_end/ui/legacy/TextPrompt.ts +31 -31
  314. package/front_end/ui/legacy/Toolbar.ts +13 -14
  315. package/front_end/ui/legacy/ViewManager.ts +30 -31
  316. package/front_end/ui/legacy/Widget.ts +6 -6
  317. package/front_end/ui/legacy/XLink.ts +9 -9
  318. package/front_end/ui/legacy/ZoomManager.ts +9 -9
  319. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
  320. package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
  321. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
  322. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
  323. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
  324. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
  325. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
  326. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
  327. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
  328. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
  329. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
  330. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
  331. package/front_end/ui/legacy/filter.css +1 -1
  332. package/front_end/ui/legacy/inspectorCommon.css +1 -1
  333. package/front_end/ui/legacy/softDropDownButton.css +1 -1
  334. package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
  335. package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
  336. package/package.json +1 -1
  337. package/front_end/models/ai_assistance/data_formatters/Types.ts +0 -9
@@ -40,6 +40,7 @@ import * as Platform from '../../core/platform/platform.js';
40
40
  import * as Root from '../../core/root/root.js';
41
41
  import * as SDK from '../../core/sdk/sdk.js';
42
42
  import * as Protocol from '../../generated/protocol.js';
43
+ import * as Badges from '../../models/badges/badges.js';
43
44
  import type * as Elements from '../../models/elements/elements.js';
44
45
  import type * as IssuesManager from '../../models/issues_manager/issues_manager.js';
45
46
  import * as TextUtils from '../../models/text_utils/text_utils.js';
@@ -348,10 +349,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
348
349
  private gutterContainer: HTMLElement;
349
350
  private readonly decorationsElement: HTMLElement;
350
351
  private searchQuery: string|null;
351
- private expandedChildrenLimitInternal: number;
352
+ #expandedChildrenLimit: number;
352
353
  private readonly decorationsThrottler: Common.Throttler.Throttler;
353
354
  private inClipboard: boolean;
354
- private hoveredInternal: boolean;
355
+ #hovered: boolean;
355
356
  private editing: EditorHandles|null;
356
357
  private htmlEditElement?: HTMLElement;
357
358
  expandAllButtonElement: UI.TreeOutline.TreeElement|null;
@@ -385,11 +386,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
385
386
  this.decorationsElement = this.gutterContainer.createChild('div', 'hidden');
386
387
 
387
388
  this.searchQuery = null;
388
- this.expandedChildrenLimitInternal = InitialChildrenLimit;
389
+ this.#expandedChildrenLimit = InitialChildrenLimit;
389
390
  this.decorationsThrottler = new Common.Throttler.Throttler(100);
390
391
 
391
392
  this.inClipboard = false;
392
- this.hoveredInternal = false;
393
+ this.#hovered = false;
393
394
 
394
395
  this.editing = null;
395
396
 
@@ -502,7 +503,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
502
503
  highlightSearchResults(searchQuery: string): void {
503
504
  this.searchQuery = searchQuery;
504
505
  if (!this.editing) {
505
- this.highlightSearchResultsInternal();
506
+ this.#highlightSearchResults();
506
507
  }
507
508
  }
508
509
 
@@ -520,11 +521,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
520
521
  }
521
522
 
522
523
  get hovered(): boolean {
523
- return this.hoveredInternal;
524
+ return this.#hovered;
524
525
  }
525
526
 
526
527
  set hovered(isHovered: boolean) {
527
- if (this.hoveredInternal === isHovered) {
528
+ if (this.#hovered === isHovered) {
528
529
  return;
529
530
  }
530
531
 
@@ -535,7 +536,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
535
536
  delete this.aiButtonContainer;
536
537
  }
537
538
 
538
- this.hoveredInternal = isHovered;
539
+ this.#hovered = isHovered;
539
540
 
540
541
  if (this.listItemElement) {
541
542
  if (isHovered) {
@@ -602,11 +603,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
602
603
  }
603
604
 
604
605
  expandedChildrenLimit(): number {
605
- return this.expandedChildrenLimitInternal;
606
+ return this.#expandedChildrenLimit;
606
607
  }
607
608
 
608
609
  setExpandedChildrenLimit(expandedChildrenLimit: number): void {
609
- this.expandedChildrenLimitInternal = expandedChildrenLimit;
610
+ this.#expandedChildrenLimit = expandedChildrenLimit;
610
611
  }
611
612
 
612
613
  createSlotLink(nodeShortcut: SDK.DOMModel.DOMNodeShortcut|null): void {
@@ -690,7 +691,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
690
691
  }
691
692
 
692
693
  override onattach(): void {
693
- if (this.hoveredInternal) {
694
+ if (this.#hovered) {
694
695
  this.createSelection();
695
696
  this.listItemElement.classList.add('hovered');
696
697
  }
@@ -1603,6 +1604,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1603
1604
 
1604
1605
  if (attributeName !== null && (attributeName.trim() || newText.trim()) && oldText !== newText) {
1605
1606
  this.nodeInternal.setAttribute(attributeName, newText, moveToNextAttributeIfNeeded.bind(this));
1607
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.DOM_ELEMENT_OR_ATTRIBUTE_EDITED);
1606
1608
  return;
1607
1609
  }
1608
1610
 
@@ -1661,6 +1663,8 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1661
1663
  if (!treeOutline) {
1662
1664
  return;
1663
1665
  }
1666
+
1667
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.DOM_ELEMENT_OR_ATTRIBUTE_EDITED);
1664
1668
  const newTreeItem = treeOutline.selectNodeAfterEdit(wasExpanded, error, newNode);
1665
1669
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
1666
1670
  // @ts-expect-error
@@ -1748,7 +1752,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1748
1752
  this.#applyIssueStyleAndTooltip(issue);
1749
1753
  }
1750
1754
 
1751
- this.highlightSearchResultsInternal();
1755
+ this.#highlightSearchResults();
1752
1756
  }
1753
1757
 
1754
1758
  private computeLeftIndent(): number {
@@ -1776,10 +1780,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1776
1780
  return;
1777
1781
  }
1778
1782
 
1779
- void this.decorationsThrottler.schedule(this.updateDecorationsInternal.bind(this));
1783
+ void this.decorationsThrottler.schedule(this.#updateDecorations.bind(this));
1780
1784
  }
1781
1785
 
1782
- private updateDecorationsInternal(): Promise<void> {
1786
+ #updateDecorations(): Promise<void> {
1783
1787
  if (!this.treeOutline) {
1784
1788
  return Promise.resolve();
1785
1789
  }
@@ -2117,7 +2121,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2117
2121
  const node = this.nodeInternal;
2118
2122
  const titleDOM = document.createDocumentFragment();
2119
2123
  const updateSearchHighlight = (): void => {
2120
- this.highlightSearchResultsInternal();
2124
+ this.#highlightSearchResults();
2121
2125
  };
2122
2126
 
2123
2127
  switch (node.nodeType()) {
@@ -2383,7 +2387,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2383
2387
  Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(lines.join('\n'));
2384
2388
  }
2385
2389
 
2386
- private highlightSearchResultsInternal(): void {
2390
+ #highlightSearchResults(): void {
2387
2391
  this.hideSearchHighlights();
2388
2392
 
2389
2393
  if (!this.searchQuery) {
@@ -2505,10 +2509,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2505
2509
  }
2506
2510
 
2507
2511
  private updateAdorners(context: OpeningTagContext): void {
2508
- void context.adornersThrottler.schedule(this.updateAdornersInternal.bind(null, context));
2512
+ void context.adornersThrottler.schedule(this.#updateAdorners.bind(null, context));
2509
2513
  }
2510
2514
 
2511
- private updateAdornersInternal(context: OpeningTagContext): Promise<void> {
2515
+ #updateAdorners(context: OpeningTagContext): Promise<void> {
2512
2516
  const adornerContainer = context.adornerContainer;
2513
2517
  if (!adornerContainer) {
2514
2518
  return Promise.resolve();
@@ -2581,6 +2585,9 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2581
2585
  const adorner = this.adorn(config);
2582
2586
  const onClick = async(): Promise<void> => {
2583
2587
  const {nodeIds} = await node.domModel().agent.invoke_forceShowPopover({nodeId, enable: adorner.isActive()});
2588
+ if (adorner.isActive()) {
2589
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
2590
+ }
2584
2591
  for (const closedPopoverNodeId of nodeIds) {
2585
2592
  const node = this.node().domModel().nodeForId(closedPopoverNodeId);
2586
2593
  const treeElement = node && this.treeOutline?.treeElementByNode.get(node);
@@ -2617,6 +2624,9 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2617
2624
  const onClick = ((() => {
2618
2625
  if (adorner.isActive()) {
2619
2626
  node.domModel().overlayModel().highlightGridInPersistentOverlay(nodeId);
2627
+ if (isSubgrid) {
2628
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
2629
+ }
2620
2630
  } else {
2621
2631
  node.domModel().overlayModel().hideGridInPersistentOverlay(nodeId);
2622
2632
  }
@@ -2658,6 +2668,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2658
2668
  const onClick = ((() => {
2659
2669
  if (adorner.isActive()) {
2660
2670
  node.domModel().overlayModel().highlightGridInPersistentOverlay(nodeId);
2671
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
2661
2672
  } else {
2662
2673
  node.domModel().overlayModel().hideGridInPersistentOverlay(nodeId);
2663
2674
  }
@@ -2786,6 +2797,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2786
2797
  const model = node.domModel().overlayModel();
2787
2798
  if (adorner.isActive()) {
2788
2799
  model.highlightContainerQueryInPersistentOverlay(nodeId);
2800
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.MODERN_DOM_BADGE_CLICKED);
2789
2801
  } else {
2790
2802
  model.hideContainerQueryInPersistentOverlay(nodeId);
2791
2803
  }
@@ -36,8 +36,8 @@
36
36
 
37
37
  import * as Common from '../../core/common/common.js';
38
38
  import * as i18n from '../../core/i18n/i18n.js';
39
- import * as Root from '../../core/root/root.js';
40
39
  import * as SDK from '../../core/sdk/sdk.js';
40
+ import * as Badges from '../../models/badges/badges.js';
41
41
  import * as Elements from '../../models/elements/elements.js';
42
42
  import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
43
43
  import * as CodeHighlighter from '../../ui/components/code_highlighter/code_highlighter.js';
@@ -465,10 +465,8 @@ export class ElementsTreeOutline extends
465
465
  constructor(omitRootDOMNode?: boolean, selectEnabled?: boolean, hideGutter?: boolean) {
466
466
  super();
467
467
 
468
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HIGHLIGHT_ERRORS_ELEMENTS_PANEL)) {
469
- this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
470
- this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
471
- }
468
+ this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
469
+ this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
472
470
 
473
471
  this.treeElementByNode = new WeakMap();
474
472
  const shadowContainer = document.createElement('div');
@@ -540,48 +538,46 @@ export class ElementsTreeOutline extends
540
538
  this.showHTMLCommentsSetting = Common.Settings.Settings.instance().moduleSetting('show-html-comments');
541
539
  this.showHTMLCommentsSetting.addChangeListener(this.onShowHTMLCommentsChange.bind(this));
542
540
  this.setUseLightSelectionColor(true);
543
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HIGHLIGHT_ERRORS_ELEMENTS_PANEL)) {
544
- // TODO(changhaohan): refactor the popover to use tooltip component.
545
- this.#popupHelper = new UI.PopoverHelper.PopoverHelper(this.elementInternal, event => {
546
- const hoveredNode = event.composedPath()[0] as Element;
547
- if (!hoveredNode?.matches('.violating-element')) {
548
- return null;
549
- }
541
+ // TODO(changhaohan): refactor the popover to use tooltip component.
542
+ this.#popupHelper = new UI.PopoverHelper.PopoverHelper(this.elementInternal, event => {
543
+ const hoveredNode = event.composedPath()[0] as Element;
544
+ if (!hoveredNode?.matches('.violating-element')) {
545
+ return null;
546
+ }
550
547
 
551
- const issues = this.#nodeElementToIssues.get(hoveredNode);
552
- if (!issues) {
553
- return null;
554
- }
548
+ const issues = this.#nodeElementToIssues.get(hoveredNode);
549
+ if (!issues) {
550
+ return null;
551
+ }
555
552
 
556
- return {
557
- box: hoveredNode.boxInWindow(),
558
- show: async (popover: UI.GlassPane.GlassPane) => {
559
- popover.setIgnoreLeftMargin(true);
560
- // clang-format off
561
- render(html`
562
- <div class="squiggles-content">
563
- ${issues.map(issue => {
564
- const elementIssueDetails = getElementIssueDetails(issue);
565
- if (!elementIssueDetails) {
566
- // This shouldn't happen, but add this if check to pass ts check.
567
- return nothing;
568
- }
569
- const issueKindIconName = IssueCounter.IssueCounter.getIssueKindIconName(issue.getKind());
570
- const openIssueEvent = (): Promise<void> => Common.Revealer.reveal(issue);
571
- return html`
572
- <div class="squiggles-content-item">
573
- <devtools-icon .name=${issueKindIconName} @click=${openIssueEvent}></devtools-icon>
574
- <x-link class="link" @click=${openIssueEvent}>${i18nString(UIStrings.viewIssue)}</x-link>
575
- <span>${elementIssueDetails.tooltip}</span>
576
- </div>`;})}
577
- </div>`, popover.contentElement);
578
- // clang-format on
579
- return true;
580
- },
581
- };
582
- }, 'elements.issue');
583
- this.#popupHelper.setTimeout(300);
584
- }
553
+ return {
554
+ box: hoveredNode.boxInWindow(),
555
+ show: async (popover: UI.GlassPane.GlassPane) => {
556
+ popover.setIgnoreLeftMargin(true);
557
+ // clang-format off
558
+ render(html`
559
+ <div class="squiggles-content">
560
+ ${issues.map(issue => {
561
+ const elementIssueDetails = getElementIssueDetails(issue);
562
+ if (!elementIssueDetails) {
563
+ // This shouldn't happen, but add this if check to pass ts check.
564
+ return nothing;
565
+ }
566
+ const issueKindIconName = IssueCounter.IssueCounter.getIssueKindIconName(issue.getKind());
567
+ const openIssueEvent = (): Promise<void> => Common.Revealer.reveal(issue);
568
+ return html`
569
+ <div class="squiggles-content-item">
570
+ <devtools-icon .name=${issueKindIconName} @click=${openIssueEvent}></devtools-icon>
571
+ <x-link class="link" @click=${openIssueEvent}>${i18nString(UIStrings.viewIssue)}</x-link>
572
+ <span>${elementIssueDetails.tooltip}</span>
573
+ </div>`;})}
574
+ </div>`, popover.contentElement);
575
+ // clang-format on
576
+ return true;
577
+ },
578
+ };
579
+ }, 'elements.issue');
580
+ this.#popupHelper.setTimeout(300);
585
581
  }
586
582
 
587
583
  static forDOMModel(domModel: SDK.DOMModel.DOMModel): ElementsTreeOutline|null {
@@ -1332,6 +1328,8 @@ export class ElementsTreeOutline extends
1332
1328
  return;
1333
1329
  }
1334
1330
 
1331
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.DOM_ELEMENT_OR_ATTRIBUTE_EDITED);
1332
+
1335
1333
  // Select it and expand if necessary. We force tree update so that it processes dom events and is up to date.
1336
1334
  this.runPendingUpdates();
1337
1335
 
@@ -1524,9 +1522,7 @@ export class ElementsTreeOutline extends
1524
1522
  this.reset();
1525
1523
  if (domModel.existingDocument()) {
1526
1524
  this.rootDOMNode = domModel.existingDocument();
1527
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HIGHLIGHT_ERRORS_ELEMENTS_PANEL)) {
1528
- this.#addAllElementIssues();
1529
- }
1525
+ this.#addAllElementIssues();
1530
1526
  }
1531
1527
  }
1532
1528
 
@@ -56,7 +56,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
56
56
 
57
57
  export class ShortcutTreeElement extends UI.TreeOutline.TreeElement {
58
58
  private readonly nodeShortcut: SDK.DOMModel.DOMNodeShortcut;
59
- private hoveredInternal?: boolean;
59
+ #hovered?: boolean;
60
60
  constructor(nodeShortcut: SDK.DOMModel.DOMNodeShortcut) {
61
61
  super('');
62
62
  this.listItemElement.createChild('div', 'selection fill');
@@ -107,14 +107,14 @@ export class ShortcutTreeElement extends UI.TreeOutline.TreeElement {
107
107
  }
108
108
 
109
109
  get hovered(): boolean {
110
- return Boolean(this.hoveredInternal);
110
+ return Boolean(this.#hovered);
111
111
  }
112
112
 
113
113
  set hovered(x: boolean) {
114
- if (this.hoveredInternal === x) {
114
+ if (this.#hovered === x) {
115
115
  return;
116
116
  }
117
- this.hoveredInternal = x;
117
+ this.#hovered = x;
118
118
  this.listItemElement.classList.toggle('hovered', x);
119
119
  }
120
120
 
@@ -41,6 +41,7 @@ import * as Platform from '../../core/platform/platform.js';
41
41
  import * as Root from '../../core/root/root.js';
42
42
  import * as SDK from '../../core/sdk/sdk.js';
43
43
  import * as Protocol from '../../generated/protocol.js';
44
+ import * as Badges from '../../models/badges/badges.js';
44
45
  import * as Bindings from '../../models/bindings/bindings.js';
45
46
  import * as TextUtils from '../../models/text_utils/text_utils.js';
46
47
  import * as Buttons from '../../ui/components/buttons/buttons.js';
@@ -147,7 +148,7 @@ export class StylePropertiesSection {
147
148
  navigable: boolean|null|undefined;
148
149
  protected readonly selectorRefElement: HTMLElement;
149
150
  private hoverableSelectorsMode: boolean;
150
- private isHiddenInternal: boolean;
151
+ #isHidden: boolean;
151
152
  protected customPopulateCallback: () => void;
152
153
 
153
154
  nestingLevel = 0;
@@ -316,7 +317,7 @@ export class StylePropertiesSection {
316
317
  this.propertiesTreeOutline.element.classList.add('read-only');
317
318
  }
318
319
  this.hoverableSelectorsMode = false;
319
- this.isHiddenInternal = false;
320
+ this.#isHidden = false;
320
321
  this.markSelectorMatches();
321
322
  this.onpopulate();
322
323
  }
@@ -1131,7 +1132,7 @@ export class StylePropertiesSection {
1131
1132
 
1132
1133
  const regex = this.parentPane.filterRegex();
1133
1134
  const hideRule = !hasMatchingChild && regex !== null && !regex.test(this.element.deepTextContent());
1134
- this.isHiddenInternal = hideRule;
1135
+ this.#isHidden = hideRule;
1135
1136
  this.element.classList.toggle('hidden', hideRule);
1136
1137
  if (!hideRule && this.styleInternal.parentRule) {
1137
1138
  this.markSelectorHighlights();
@@ -1140,7 +1141,7 @@ export class StylePropertiesSection {
1140
1141
  }
1141
1142
 
1142
1143
  isHidden(): boolean {
1143
- return this.isHiddenInternal;
1144
+ return this.#isHidden;
1144
1145
  }
1145
1146
 
1146
1147
  markSelectorMatches(): void {
@@ -1546,6 +1547,8 @@ export class StylePropertiesSection {
1546
1547
  if (!success) {
1547
1548
  return Promise.resolve();
1548
1549
  }
1550
+
1551
+ Badges.UserBadges.instance().recordAction(Badges.BadgeAction.CSS_RULE_MODIFIED);
1549
1552
  return this.matchedStyles.recomputeMatchingSelectors(rule).then(updateSourceRanges.bind(this, rule));
1550
1553
  }
1551
1554