chrome-devtools-frontend 1.0.1512349 → 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 (324) hide show
  1. package/docs/cookbook/release_management.md +15 -13
  2. package/docs/get_the_code.md +114 -35
  3. package/front_end/core/common/Color.ts +40 -44
  4. package/front_end/core/common/Console.ts +4 -4
  5. package/front_end/core/common/ParsedURL.ts +14 -14
  6. package/front_end/core/common/ResourceType.ts +20 -20
  7. package/front_end/core/common/SegmentedRange.ts +13 -14
  8. package/front_end/core/common/Settings.ts +4 -4
  9. package/front_end/core/common/StringOutputStream.ts +4 -4
  10. package/front_end/core/host/GdpClient.ts +38 -0
  11. package/front_end/core/host/InspectorFrontendHost.ts +4 -1
  12. package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -0
  13. package/front_end/core/host/ResourceLoader.ts +2 -2
  14. package/front_end/core/host/UserMetrics.ts +0 -2
  15. package/front_end/core/protocol_client/InspectorBackend.ts +9 -9
  16. package/front_end/core/root/Runtime.ts +5 -2
  17. package/front_end/core/sdk/AccessibilityModel.ts +48 -48
  18. package/front_end/core/sdk/AnimationModel.ts +78 -79
  19. package/front_end/core/sdk/CPUProfilerModel.ts +5 -5
  20. package/front_end/core/sdk/CPUThrottlingManager.ts +17 -17
  21. package/front_end/core/sdk/CSSMatchedStyles.ts +44 -44
  22. package/front_end/core/sdk/CSSMedia.ts +22 -22
  23. package/front_end/core/sdk/CSSModel.ts +4 -4
  24. package/front_end/core/sdk/CSSProperty.ts +9 -9
  25. package/front_end/core/sdk/CSSPropertyParser.ts +1 -2
  26. package/front_end/core/sdk/CSSRule.ts +3 -3
  27. package/front_end/core/sdk/CSSStyleDeclaration.ts +27 -28
  28. package/front_end/core/sdk/CSSStyleSheetHeader.ts +13 -13
  29. package/front_end/core/sdk/CategorizedBreakpoint.ts +4 -4
  30. package/front_end/core/sdk/ChildTargetManager.ts +6 -6
  31. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +4 -4
  32. package/front_end/core/sdk/ConsoleModel.ts +24 -24
  33. package/front_end/core/sdk/Cookie.ts +16 -16
  34. package/front_end/core/sdk/CookieParser.ts +6 -6
  35. package/front_end/core/sdk/DOMDebuggerModel.ts +88 -89
  36. package/front_end/core/sdk/DOMModel.ts +113 -113
  37. package/front_end/core/sdk/DebuggerModel.ts +102 -103
  38. package/front_end/core/sdk/EmulationModel.ts +6 -6
  39. package/front_end/core/sdk/EventBreakpointsModel.ts +5 -5
  40. package/front_end/core/sdk/HeapProfilerModel.ts +5 -5
  41. package/front_end/core/sdk/IsolateManager.ts +26 -26
  42. package/front_end/core/sdk/LayerTreeBase.ts +29 -30
  43. package/front_end/core/sdk/OverlayModel.ts +6 -6
  44. package/front_end/core/sdk/Resource.ts +43 -43
  45. package/front_end/core/sdk/ResourceTreeModel.ts +58 -61
  46. package/front_end/core/sdk/RuntimeModel.ts +12 -13
  47. package/front_end/core/sdk/SDKModel.ts +3 -3
  48. package/front_end/core/sdk/Script.ts +17 -17
  49. package/front_end/core/sdk/SecurityOriginManager.ts +14 -14
  50. package/front_end/core/sdk/ServerTiming.ts +2 -2
  51. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +15 -15
  52. package/front_end/core/sdk/ServiceWorkerManager.ts +19 -24
  53. package/front_end/core/sdk/SourceMap.ts +10 -10
  54. package/front_end/core/sdk/StorageKeyManager.ts +12 -12
  55. package/front_end/core/sdk/Target.ts +33 -34
  56. package/front_end/core/sdk/TargetManager.ts +20 -20
  57. package/front_end/entrypoints/formatter_worker/AcornTokenizer.ts +8 -8
  58. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +7 -7
  59. package/front_end/entrypoints/heap_snapshot_worker/AllocationProfile.ts +7 -7
  60. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -24
  61. package/front_end/entrypoints/main/GlobalAiButton.ts +3 -3
  62. package/front_end/entrypoints/main/MainImpl.ts +16 -14
  63. package/front_end/entrypoints/main/main-meta.ts +1 -2
  64. package/front_end/generated/InspectorBackendCommands.js +3 -2
  65. package/front_end/generated/SupportedCSSProperties.js +20 -0
  66. package/front_end/generated/protocol-mapping.d.ts +4 -0
  67. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  68. package/front_end/generated/protocol.ts +20 -0
  69. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +15 -16
  70. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +127 -0
  71. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +149 -26
  72. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -0
  73. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +9 -10
  74. package/front_end/models/badges/AiExplorerBadge.ts +21 -0
  75. package/front_end/models/badges/Badge.ts +3 -5
  76. package/front_end/models/badges/CodeWhispererBadge.ts +21 -0
  77. package/front_end/models/badges/DOMDetectiveBadge.ts +4 -3
  78. package/front_end/models/badges/SpeedsterBadge.ts +6 -4
  79. package/front_end/models/badges/StarterBadge.ts +4 -3
  80. package/front_end/models/badges/UserBadges.ts +29 -3
  81. package/front_end/models/bindings/CSSWorkspaceBinding.ts +6 -6
  82. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +18 -18
  83. package/front_end/models/bindings/FileUtils.ts +15 -15
  84. package/front_end/models/bindings/ResourceScriptMapping.ts +14 -14
  85. package/front_end/models/elements/ElementUpdateRecord.ts +11 -11
  86. package/front_end/models/emulation/DeviceModeModel.ts +123 -131
  87. package/front_end/models/emulation/EmulatedDevices.ts +22 -22
  88. package/front_end/models/extensions/ExtensionPanel.ts +24 -24
  89. package/front_end/models/extensions/ExtensionServer.ts +4 -4
  90. package/front_end/models/javascript_metadata/NativeFunctions.js +14 -2
  91. package/front_end/models/persistence/IsolatedFileSystem.ts +18 -19
  92. package/front_end/models/persistence/IsolatedFileSystemManager.ts +13 -13
  93. package/front_end/models/trace/EventsSerializer.ts +5 -5
  94. package/front_end/models/trace/LanternComputationData.ts +10 -10
  95. package/front_end/models/trace/ModelImpl.ts +32 -41
  96. package/front_end/models/trace/Processor.ts +28 -30
  97. package/front_end/models/trace/extras/FilmStrip.ts +6 -6
  98. package/front_end/models/trace/extras/StackTraceForEvent.ts +22 -25
  99. package/front_end/models/trace/extras/ThirdParties.ts +16 -17
  100. package/front_end/models/trace/extras/TraceFilter.ts +1 -1
  101. package/front_end/models/trace/handlers/Threads.ts +10 -10
  102. package/front_end/models/trace/handlers/helpers.ts +9 -9
  103. package/front_end/models/trace/handlers/types.ts +3 -3
  104. package/front_end/models/trace/insights/CLSCulprits.ts +12 -14
  105. package/front_end/models/trace/insights/Cache.ts +8 -4
  106. package/front_end/models/trace/insights/DOMSize.ts +8 -5
  107. package/front_end/models/trace/insights/DocumentLatency.ts +2 -2
  108. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -3
  109. package/front_end/models/trace/insights/FontDisplay.ts +3 -4
  110. package/front_end/models/trace/insights/ForcedReflow.ts +3 -3
  111. package/front_end/models/trace/insights/INPBreakdown.ts +2 -2
  112. package/front_end/models/trace/insights/ImageDelivery.ts +11 -11
  113. package/front_end/models/trace/insights/LCPBreakdown.ts +4 -4
  114. package/front_end/models/trace/insights/LCPDiscovery.ts +4 -4
  115. package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -2
  116. package/front_end/models/trace/insights/ModernHTTP.ts +4 -5
  117. package/front_end/models/trace/insights/NetworkDependencyTree.ts +12 -12
  118. package/front_end/models/trace/insights/RenderBlocking.ts +9 -10
  119. package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -2
  120. package/front_end/models/trace/insights/ThirdParties.ts +4 -5
  121. package/front_end/models/trace/insights/Viewport.ts +8 -5
  122. package/front_end/models/trace/insights/types.ts +1 -0
  123. package/front_end/models/trace/lantern/testing/MetricTestUtils.ts +10 -10
  124. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +52 -52
  125. package/front_end/panels/accessibility/AccessibilitySidebarView.ts +8 -8
  126. package/front_end/panels/animation/AnimationTimeline.ts +5 -5
  127. package/front_end/panels/animation/AnimationUI.ts +22 -23
  128. package/front_end/panels/application/ApplicationPanelSidebar.ts +12 -12
  129. package/front_end/panels/application/DOMStorageModel.ts +23 -23
  130. package/front_end/panels/application/ExtensionStorageModel.ts +31 -31
  131. package/front_end/panels/application/IndexedDBModel.ts +1 -0
  132. package/front_end/panels/application/PreloadingTreeElement.ts +8 -8
  133. package/front_end/panels/application/ServiceWorkersView.ts +0 -53
  134. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -2
  135. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -2
  136. package/front_end/panels/common/BadgeNotification.ts +24 -4
  137. package/front_end/panels/common/GdpSignUpDialog.ts +5 -0
  138. package/front_end/panels/common/badgeNotification.css +26 -9
  139. package/front_end/panels/console/ConsoleContextSelector.ts +9 -9
  140. package/front_end/panels/console/ConsolePrompt.ts +8 -5
  141. package/front_end/panels/console/ConsoleView.ts +13 -13
  142. package/front_end/panels/console/ConsoleViewport.ts +29 -29
  143. package/front_end/panels/coverage/CoverageModel.ts +22 -22
  144. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  145. package/front_end/panels/elements/ComputedStyleModel.ts +17 -18
  146. package/front_end/panels/elements/DOMPath.ts +2 -2
  147. package/front_end/panels/elements/ElementsPanel.ts +13 -13
  148. package/front_end/panels/elements/ElementsTreeElement.ts +18 -18
  149. package/front_end/panels/elements/ElementsTreeOutline.ts +41 -48
  150. package/front_end/panels/elements/ShortcutTreeElement.ts +4 -4
  151. package/front_end/panels/elements/StylePropertiesSection.ts +4 -4
  152. package/front_end/panels/elements/StylePropertyTreeElement.ts +49 -50
  153. package/front_end/panels/elements/StylesSidebarPane.ts +19 -19
  154. package/front_end/panels/emulation/DeviceModeToolbar.ts +7 -7
  155. package/front_end/panels/emulation/DeviceModeView.ts +6 -6
  156. package/front_end/panels/emulation/MediaQueryInspector.ts +18 -18
  157. package/front_end/panels/event_listeners/EventListenersView.ts +13 -14
  158. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +3 -3
  159. package/front_end/panels/layer_viewer/LayerViewHost.ts +13 -13
  160. package/front_end/panels/layer_viewer/PaintProfilerView.ts +9 -10
  161. package/front_end/panels/layer_viewer/TransformController.ts +34 -36
  162. package/front_end/panels/layers/LayerTreeModel.ts +41 -40
  163. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +13 -13
  164. package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -7
  165. package/front_end/panels/media/PlayerMessagesView.ts +5 -5
  166. package/front_end/panels/media/TickingFlameChart.ts +24 -24
  167. package/front_end/panels/media/TickingFlameChartHelpers.ts +32 -32
  168. package/front_end/panels/network/NetworkItemView.ts +4 -4
  169. package/front_end/panels/network/NetworkLogViewColumns.ts +29 -29
  170. package/front_end/panels/network/NetworkPanel.ts +8 -5
  171. package/front_end/panels/network/ResourceWebSocketFrameView.ts +10 -10
  172. package/front_end/panels/profiler/HeapDetachedElementsView.ts +3 -3
  173. package/front_end/panels/profiler/HeapProfileView.ts +1 -1
  174. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +3 -4
  175. package/front_end/panels/profiler/ProfileHeader.ts +25 -25
  176. package/front_end/panels/profiler/ProfileLauncherView.ts +5 -6
  177. package/front_end/panels/recorder/components/ReplaySection.ts +3 -1
  178. package/front_end/panels/security/OriginTreeElement.ts +8 -8
  179. package/front_end/panels/security/SecurityPanel.ts +5 -5
  180. package/front_end/panels/settings/SettingsScreen.ts +18 -12
  181. package/front_end/panels/settings/components/SyncSection.ts +20 -6
  182. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +3 -0
  183. package/front_end/panels/sources/DebuggerPausedMessage.ts +8 -9
  184. package/front_end/panels/sources/NavigatorView.ts +43 -46
  185. package/front_end/panels/sources/SourcesPanel.ts +35 -35
  186. package/front_end/panels/sources/SourcesView.ts +13 -13
  187. package/front_end/panels/sources/TabbedEditorContainer.ts +19 -22
  188. package/front_end/panels/sources/UISourceCodeFrame.ts +4 -4
  189. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +34 -36
  190. package/front_end/panels/timeline/AnimationsTrackAppender.ts +3 -3
  191. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +8 -8
  192. package/front_end/panels/timeline/CountersGraph.ts +16 -16
  193. package/front_end/panels/timeline/EntriesFilter.ts +4 -3
  194. package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
  195. package/front_end/panels/timeline/GPUTrackAppender.ts +3 -3
  196. package/front_end/panels/timeline/Initiators.ts +10 -10
  197. package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -5
  198. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +7 -7
  199. package/front_end/panels/timeline/ModificationsManager.ts +8 -15
  200. package/front_end/panels/timeline/TargetForEvent.ts +2 -2
  201. package/front_end/panels/timeline/ThirdPartyTreeView.ts +1 -1
  202. package/front_end/panels/timeline/ThreadAppender.ts +13 -13
  203. package/front_end/panels/timeline/TimelineDetailsView.ts +6 -14
  204. package/front_end/panels/timeline/TimelineEventOverview.ts +27 -26
  205. package/front_end/panels/timeline/TimelineFilters.ts +5 -5
  206. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +54 -53
  207. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +34 -34
  208. package/front_end/panels/timeline/TimelineFlameChartView.ts +18 -31
  209. package/front_end/panels/timeline/TimelineHistoryManager.ts +17 -18
  210. package/front_end/panels/timeline/TimelineMiniMap.ts +6 -6
  211. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +6 -6
  212. package/front_end/panels/timeline/TimelinePanel.ts +52 -59
  213. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +7 -5
  214. package/front_end/panels/timeline/TimelineTreeView.ts +10 -10
  215. package/front_end/panels/timeline/TimelineUIUtils.ts +43 -43
  216. package/front_end/panels/timeline/TimingsTrackAppender.ts +12 -12
  217. package/front_end/panels/timeline/TracingLayerTree.ts +43 -43
  218. package/front_end/panels/timeline/TrackConfigBanner.ts +6 -6
  219. package/front_end/panels/timeline/TrackConfiguration.ts +1 -1
  220. package/front_end/panels/timeline/components/DetailsView.ts +4 -4
  221. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +12 -21
  222. package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -1
  223. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -5
  224. package/front_end/panels/timeline/components/Sidebar.ts +4 -14
  225. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +13 -36
  226. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +21 -19
  227. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +1 -1
  228. package/front_end/panels/timeline/components/insights/Cache.ts +4 -0
  229. package/front_end/panels/timeline/components/insights/DOMSize.ts +5 -1
  230. package/front_end/panels/timeline/components/insights/Helpers.ts +19 -0
  231. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +1 -1
  232. package/front_end/panels/timeline/components/insights/Viewport.ts +4 -0
  233. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -1
  234. package/front_end/panels/timeline/utils/AICallTree.ts +11 -11
  235. package/front_end/panels/timeline/utils/AIContext.ts +17 -19
  236. package/front_end/panels/timeline/utils/EntityMapper.ts +6 -5
  237. package/front_end/panels/timeline/utils/EntryName.ts +2 -2
  238. package/front_end/panels/timeline/utils/EntryNodes.ts +5 -5
  239. package/front_end/panels/timeline/utils/EntryStyles.ts +4 -4
  240. package/front_end/panels/timeline/utils/FreshRecording.ts +3 -3
  241. package/front_end/panels/timeline/utils/Helpers.ts +0 -18
  242. package/front_end/panels/timeline/utils/InsightAIContext.ts +6 -6
  243. package/front_end/panels/timeline/utils/SourceMapsResolver.ts +7 -7
  244. package/front_end/panels/webauthn/WebauthnPane.ts +1 -0
  245. package/front_end/third_party/chromium/README.chromium +1 -1
  246. package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
  247. package/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -1
  248. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  249. package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
  250. package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
  251. package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
  252. package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
  253. package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
  254. package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
  255. package/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -1
  256. package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
  257. package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
  258. package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
  259. package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
  260. package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
  261. package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
  262. package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
  263. package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
  264. package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
  265. package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
  266. package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
  267. package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
  268. package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
  269. package/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -1
  270. package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
  271. package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
  272. package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
  273. package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
  274. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  275. package/front_end/third_party/codemirror.next/package.json +1 -1
  276. package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
  277. package/front_end/third_party/json5/rebuild.sh +1 -1
  278. package/front_end/third_party/legacy-javascript/{update.sh → rebuild.sh} +1 -1
  279. package/front_end/third_party/lit/lib/decorators.d.ts +26 -9
  280. package/front_end/third_party/lit/lib/decorators.js +5 -5
  281. package/front_end/third_party/lit/lib/decorators.js.map +1 -1
  282. package/front_end/third_party/lit/lib/directive.js.map +1 -1
  283. package/front_end/third_party/lit/lib/directives.js +8 -13
  284. package/front_end/third_party/lit/lib/directives.js.map +1 -1
  285. package/front_end/third_party/lit/lib/lit.d.ts +26 -9
  286. package/front_end/third_party/lit/lib/lit.js +5 -5
  287. package/front_end/third_party/lit/lib/lit.js.map +1 -1
  288. package/front_end/third_party/lit/lib/static-html.js +2 -2
  289. package/front_end/third_party/lit/lib/static-html.js.map +1 -1
  290. package/front_end/third_party/lit/rebuild.sh +1 -1
  291. package/front_end/third_party/third-party-web/rebuild.sh +1 -1
  292. package/front_end/ui/components/dialogs/Dialog.ts +6 -7
  293. package/front_end/ui/legacy/ActionRegistration.ts +9 -9
  294. package/front_end/ui/legacy/DockController.ts +18 -18
  295. package/front_end/ui/legacy/FilterBar.ts +7 -7
  296. package/front_end/ui/legacy/Fragment.ts +4 -4
  297. package/front_end/ui/legacy/GlassPane.ts +12 -12
  298. package/front_end/ui/legacy/InspectorView.ts +5 -15
  299. package/front_end/ui/legacy/ListControl.ts +27 -27
  300. package/front_end/ui/legacy/ListWidget.ts +4 -4
  301. package/front_end/ui/legacy/PopoverHelper.ts +4 -4
  302. package/front_end/ui/legacy/ShortcutRegistry.ts +17 -17
  303. package/front_end/ui/legacy/TabbedPane.ts +74 -75
  304. package/front_end/ui/legacy/TextPrompt.ts +31 -31
  305. package/front_end/ui/legacy/Toolbar.ts +13 -14
  306. package/front_end/ui/legacy/ViewManager.ts +30 -31
  307. package/front_end/ui/legacy/Widget.ts +6 -6
  308. package/front_end/ui/legacy/XLink.ts +9 -9
  309. package/front_end/ui/legacy/ZoomManager.ts +9 -9
  310. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +27 -27
  311. package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +30 -32
  312. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +15 -15
  313. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +64 -64
  314. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +2 -2
  315. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -11
  316. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +12 -12
  317. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +3 -3
  318. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +14 -14
  319. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
  320. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
  321. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +4 -4
  322. package/front_end/ui/legacy/theme_support/ThemeSupport.ts +4 -4
  323. package/front_end/ui/visual_logging/KnownContextValues.ts +2 -2
  324. package/package.json +1 -1
@@ -11,8 +11,8 @@ import {ComputedStyleWidget} from './ComputedStyleWidget.js';
11
11
  import {StylesSidebarPane} from './StylesSidebarPane.js';
12
12
 
13
13
  export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
14
- private nodeInternal: SDK.DOMModel.DOMNode|null;
15
- private cssModelInternal: SDK.CSSModel.CSSModel|null;
14
+ #node: SDK.DOMModel.DOMNode|null;
15
+ #cssModel: SDK.CSSModel.CSSModel|null;
16
16
  private eventListeners: Common.EventTarget.EventDescriptor[];
17
17
  private frameResizedTimer?: number;
18
18
  private computedStylePromise?: Promise<ComputedStyle|null>;
@@ -20,9 +20,9 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
20
20
 
21
21
  constructor() {
22
22
  super();
23
- this.cssModelInternal = null;
23
+ this.#cssModel = null;
24
24
  this.eventListeners = [];
25
- this.nodeInternal = UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode);
25
+ this.#node = UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode);
26
26
 
27
27
  UI.Context.Context.instance().addFlavorChangeListener(SDK.DOMModel.DOMNode, this.onNodeChanged, this);
28
28
  UI.Context.Context.instance().addFlavorChangeListener(
@@ -40,17 +40,17 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
40
40
  }
41
41
 
42
42
  node(): SDK.DOMModel.DOMNode|null {
43
- return this.nodeInternal;
43
+ return this.#node;
44
44
  }
45
45
 
46
46
  cssModel(): SDK.CSSModel.CSSModel|null {
47
- return this.cssModelInternal?.isEnabled() ? this.cssModelInternal : null;
47
+ return this.#cssModel?.isEnabled() ? this.#cssModel : null;
48
48
  }
49
49
 
50
50
  // This is a debounced method because the user might be navigated from Styles tab to Computed Style tab and vice versa.
51
51
  // For that case, we want to only run this function once.
52
52
  private evaluateTrackingComputedStyleUpdatesForNode = Common.Debouncer.debounce((): void => {
53
- if (!this.nodeInternal) {
53
+ if (!this.#node) {
54
54
  // There isn't a node selected now, so let's stop tracking computed style updates for the previously tracked node.
55
55
  if (this.currentTrackedNodeId) {
56
56
  void this.cssModel()?.trackComputedStyleUpdatesForNode(undefined);
@@ -76,25 +76,25 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
76
76
  // Either computed style widget or styles tab is visible
77
77
  // if the currently tracked node id is not the same as the selected node
78
78
  // let's start tracking the currently selected node.
79
- if (this.currentTrackedNodeId !== this.nodeInternal.id) {
80
- void this.cssModel()?.trackComputedStyleUpdatesForNode(this.nodeInternal.id);
81
- this.currentTrackedNodeId = this.nodeInternal.id;
79
+ if (this.currentTrackedNodeId !== this.#node.id) {
80
+ void this.cssModel()?.trackComputedStyleUpdatesForNode(this.#node.id);
81
+ this.currentTrackedNodeId = this.#node.id;
82
82
  }
83
83
  }, 100);
84
84
 
85
85
  private onNodeChanged(event: Common.EventTarget.EventTargetEvent<SDK.DOMModel.DOMNode|null>): void {
86
- this.nodeInternal = event.data;
87
- this.updateModel(this.nodeInternal ? this.nodeInternal.domModel().cssModel() : null);
86
+ this.#node = event.data;
87
+ this.updateModel(this.#node ? this.#node.domModel().cssModel() : null);
88
88
  this.onCSSModelChanged(null);
89
89
  this.evaluateTrackingComputedStyleUpdatesForNode();
90
90
  }
91
91
 
92
92
  private updateModel(cssModel: SDK.CSSModel.CSSModel|null): void {
93
- if (this.cssModelInternal === cssModel) {
93
+ if (this.#cssModel === cssModel) {
94
94
  return;
95
95
  }
96
96
  Common.EventTarget.removeEventListeners(this.eventListeners);
97
- this.cssModelInternal = cssModel;
97
+ this.#cssModel = cssModel;
98
98
  const domModel = cssModel ? cssModel.domModel() : null;
99
99
  const resourceTreeModel = cssModel ? cssModel.target().model(SDK.ResourceTreeModel.ResourceTreeModel) : null;
100
100
  if (cssModel && domModel && resourceTreeModel) {
@@ -123,7 +123,7 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
123
123
  delete this.computedStylePromise;
124
124
  // If the event contains `nodeId` and that's not the same as this node's id
125
125
  // we don't emit the COMPUTED_STYLE_CHANGED event.
126
- if (event?.data && 'nodeId' in event.data && event.data.nodeId !== this.nodeInternal?.id) {
126
+ if (event?.data && 'nodeId' in event.data && event.data.nodeId !== this.#node?.id) {
127
127
  return;
128
128
  }
129
129
 
@@ -133,9 +133,8 @@ export class ComputedStyleModel extends Common.ObjectWrapper.ObjectWrapper<Event
133
133
  private onDOMModelChanged(event: Common.EventTarget.EventTargetEvent<SDK.DOMModel.DOMNode>): void {
134
134
  // Any attribute removal or modification can affect the styles of "related" nodes.
135
135
  const node = event.data;
136
- if (!this.nodeInternal ||
137
- this.nodeInternal !== node && node.parentNode !== this.nodeInternal.parentNode &&
138
- !node.isAncestor(this.nodeInternal)) {
136
+ if (!this.#node ||
137
+ this.#node !== node && node.parentNode !== this.#node.parentNode && !node.isAncestor(this.#node)) {
139
138
  return;
140
139
  }
141
140
  this.onCSSModelChanged(null);
@@ -17,7 +17,7 @@ export const cssPath = function(node: SDK.DOMModel.DOMNode, optimized?: boolean)
17
17
  }
18
18
 
19
19
  const steps = [];
20
- let contextNode: (SDK.DOMModel.DOMNode|null) = (node as SDK.DOMModel.DOMNode | null);
20
+ let contextNode: SDK.DOMModel.DOMNode|null = node;
21
21
  while (contextNode) {
22
22
  const step = cssPathStep(contextNode, Boolean(optimized), contextNode === node);
23
23
  if (!step) {
@@ -176,7 +176,7 @@ export const xPath = function(node: SDK.DOMModel.DOMNode, optimized?: boolean):
176
176
  }
177
177
 
178
178
  const steps = [];
179
- let contextNode: (SDK.DOMModel.DOMNode|null) = (node as SDK.DOMModel.DOMNode | null);
179
+ let contextNode: SDK.DOMModel.DOMNode|null = node;
180
180
  while (contextNode) {
181
181
  const step = xPathValue(contextNode, optimized);
182
182
  if (!step) {
@@ -201,7 +201,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
201
201
  SDK.TargetManager.SDKModelObserver<SDK.DOMModel.DOMModel>,
202
202
  UI.View.ViewLocationResolver {
203
203
  private splitWidget: UI.SplitWidget.SplitWidget;
204
- private readonly searchableViewInternal: UI.SearchableView.SearchableView;
204
+ readonly #searchableView: UI.SearchableView.SearchableView;
205
205
  private mainContainer: HTMLDivElement;
206
206
  private domTreeContainer: HTMLDivElement;
207
207
  private splitMode: SplitMode|null;
@@ -252,11 +252,11 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
252
252
  UI.SplitWidget.Events.SIDEBAR_SIZE_CHANGED, this.updateTreeOutlineVisibleWidth.bind(this));
253
253
  this.splitWidget.show(this.element);
254
254
 
255
- this.searchableViewInternal = new UI.SearchableView.SearchableView(this, null);
256
- this.searchableViewInternal.setMinimalSearchQuerySize(0);
257
- this.searchableViewInternal.setMinimumSize(25, 28);
258
- this.searchableViewInternal.setPlaceholder(i18nString(UIStrings.findByStringSelectorOrXpath));
259
- const stackElement = this.searchableViewInternal.element;
255
+ this.#searchableView = new UI.SearchableView.SearchableView(this, null);
256
+ this.#searchableView.setMinimalSearchQuerySize(0);
257
+ this.#searchableView.setMinimumSize(25, 28);
258
+ this.#searchableView.setPlaceholder(i18nString(UIStrings.findByStringSelectorOrXpath));
259
+ const stackElement = this.#searchableView.element;
260
260
 
261
261
  this.mainContainer = document.createElement('div');
262
262
  this.domTreeContainer = document.createElement('div');
@@ -271,7 +271,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
271
271
  UI.ARIAUtils.markAsMain(this.domTreeContainer);
272
272
  UI.ARIAUtils.setLabel(this.domTreeContainer, i18nString(UIStrings.domTreeExplorer));
273
273
 
274
- this.splitWidget.setMainWidget(this.searchableViewInternal);
274
+ this.splitWidget.setMainWidget(this.#searchableView);
275
275
  this.splitMode = null;
276
276
 
277
277
  this.mainContainer.id = 'main-content';
@@ -351,7 +351,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
351
351
  }
352
352
 
353
353
  private showDOMTree(): void {
354
- this.splitWidget.setMainWidget(this.searchableViewInternal);
354
+ this.splitWidget.setMainWidget(this.#searchableView);
355
355
  const selectedNode = this.selectedDOMNode();
356
356
  if (!selectedNode) {
357
357
  return;
@@ -477,7 +477,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
477
477
  }
478
478
 
479
479
  override searchableView(): UI.SearchableView.SearchableView {
480
- return this.searchableViewInternal;
480
+ return this.#searchableView;
481
481
  }
482
482
 
483
483
  override wasShown(): void {
@@ -560,7 +560,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
560
560
  }
561
561
 
562
562
  private documentUpdated(domModel: SDK.DOMModel.DOMModel): void {
563
- this.searchableViewInternal.cancelSearch();
563
+ this.#searchableView.cancelSearch();
564
564
 
565
565
  if (!domModel.existingDocument()) {
566
566
  if (this.isShowing()) {
@@ -625,7 +625,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
625
625
  this.searchConfig = undefined;
626
626
  this.hideSearchHighlights();
627
627
 
628
- this.searchableViewInternal.updateSearchMatchesCount(0);
628
+ this.#searchableView.updateSearchMatchesCount(0);
629
629
 
630
630
  this.currentSearchResultIndex = -1;
631
631
  delete this.searchResults;
@@ -660,7 +660,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
660
660
  this.searchResults.push({domModel: domModels[i], index: j, node: undefined});
661
661
  }
662
662
  }
663
- this.searchableViewInternal.updateSearchMatchesCount(this.searchResults.length);
663
+ this.#searchableView.updateSearchMatchesCount(this.searchResults.length);
664
664
  if (!this.searchResults.length) {
665
665
  return;
666
666
  }
@@ -725,7 +725,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
725
725
  }
726
726
  const searchResult = searchResults[index];
727
727
 
728
- this.searchableViewInternal.updateCurrentMatchIndex(index);
728
+ this.#searchableView.updateCurrentMatchIndex(index);
729
729
  if (searchResult.node === null) {
730
730
  return;
731
731
  }
@@ -349,10 +349,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
349
349
  private gutterContainer: HTMLElement;
350
350
  private readonly decorationsElement: HTMLElement;
351
351
  private searchQuery: string|null;
352
- private expandedChildrenLimitInternal: number;
352
+ #expandedChildrenLimit: number;
353
353
  private readonly decorationsThrottler: Common.Throttler.Throttler;
354
354
  private inClipboard: boolean;
355
- private hoveredInternal: boolean;
355
+ #hovered: boolean;
356
356
  private editing: EditorHandles|null;
357
357
  private htmlEditElement?: HTMLElement;
358
358
  expandAllButtonElement: UI.TreeOutline.TreeElement|null;
@@ -386,11 +386,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
386
386
  this.decorationsElement = this.gutterContainer.createChild('div', 'hidden');
387
387
 
388
388
  this.searchQuery = null;
389
- this.expandedChildrenLimitInternal = InitialChildrenLimit;
389
+ this.#expandedChildrenLimit = InitialChildrenLimit;
390
390
  this.decorationsThrottler = new Common.Throttler.Throttler(100);
391
391
 
392
392
  this.inClipboard = false;
393
- this.hoveredInternal = false;
393
+ this.#hovered = false;
394
394
 
395
395
  this.editing = null;
396
396
 
@@ -503,7 +503,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
503
503
  highlightSearchResults(searchQuery: string): void {
504
504
  this.searchQuery = searchQuery;
505
505
  if (!this.editing) {
506
- this.highlightSearchResultsInternal();
506
+ this.#highlightSearchResults();
507
507
  }
508
508
  }
509
509
 
@@ -521,11 +521,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
521
521
  }
522
522
 
523
523
  get hovered(): boolean {
524
- return this.hoveredInternal;
524
+ return this.#hovered;
525
525
  }
526
526
 
527
527
  set hovered(isHovered: boolean) {
528
- if (this.hoveredInternal === isHovered) {
528
+ if (this.#hovered === isHovered) {
529
529
  return;
530
530
  }
531
531
 
@@ -536,7 +536,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
536
536
  delete this.aiButtonContainer;
537
537
  }
538
538
 
539
- this.hoveredInternal = isHovered;
539
+ this.#hovered = isHovered;
540
540
 
541
541
  if (this.listItemElement) {
542
542
  if (isHovered) {
@@ -603,11 +603,11 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
603
603
  }
604
604
 
605
605
  expandedChildrenLimit(): number {
606
- return this.expandedChildrenLimitInternal;
606
+ return this.#expandedChildrenLimit;
607
607
  }
608
608
 
609
609
  setExpandedChildrenLimit(expandedChildrenLimit: number): void {
610
- this.expandedChildrenLimitInternal = expandedChildrenLimit;
610
+ this.#expandedChildrenLimit = expandedChildrenLimit;
611
611
  }
612
612
 
613
613
  createSlotLink(nodeShortcut: SDK.DOMModel.DOMNodeShortcut|null): void {
@@ -691,7 +691,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
691
691
  }
692
692
 
693
693
  override onattach(): void {
694
- if (this.hoveredInternal) {
694
+ if (this.#hovered) {
695
695
  this.createSelection();
696
696
  this.listItemElement.classList.add('hovered');
697
697
  }
@@ -1752,7 +1752,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1752
1752
  this.#applyIssueStyleAndTooltip(issue);
1753
1753
  }
1754
1754
 
1755
- this.highlightSearchResultsInternal();
1755
+ this.#highlightSearchResults();
1756
1756
  }
1757
1757
 
1758
1758
  private computeLeftIndent(): number {
@@ -1780,10 +1780,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
1780
1780
  return;
1781
1781
  }
1782
1782
 
1783
- void this.decorationsThrottler.schedule(this.updateDecorationsInternal.bind(this));
1783
+ void this.decorationsThrottler.schedule(this.#updateDecorations.bind(this));
1784
1784
  }
1785
1785
 
1786
- private updateDecorationsInternal(): Promise<void> {
1786
+ #updateDecorations(): Promise<void> {
1787
1787
  if (!this.treeOutline) {
1788
1788
  return Promise.resolve();
1789
1789
  }
@@ -2121,7 +2121,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2121
2121
  const node = this.nodeInternal;
2122
2122
  const titleDOM = document.createDocumentFragment();
2123
2123
  const updateSearchHighlight = (): void => {
2124
- this.highlightSearchResultsInternal();
2124
+ this.#highlightSearchResults();
2125
2125
  };
2126
2126
 
2127
2127
  switch (node.nodeType()) {
@@ -2387,7 +2387,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2387
2387
  Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(lines.join('\n'));
2388
2388
  }
2389
2389
 
2390
- private highlightSearchResultsInternal(): void {
2390
+ #highlightSearchResults(): void {
2391
2391
  this.hideSearchHighlights();
2392
2392
 
2393
2393
  if (!this.searchQuery) {
@@ -2509,10 +2509,10 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
2509
2509
  }
2510
2510
 
2511
2511
  private updateAdorners(context: OpeningTagContext): void {
2512
- void context.adornersThrottler.schedule(this.updateAdornersInternal.bind(null, context));
2512
+ void context.adornersThrottler.schedule(this.#updateAdorners.bind(null, context));
2513
2513
  }
2514
2514
 
2515
- private updateAdornersInternal(context: OpeningTagContext): Promise<void> {
2515
+ #updateAdorners(context: OpeningTagContext): Promise<void> {
2516
2516
  const adornerContainer = context.adornerContainer;
2517
2517
  if (!adornerContainer) {
2518
2518
  return Promise.resolve();
@@ -36,7 +36,6 @@
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';
41
40
  import * as Badges from '../../models/badges/badges.js';
42
41
  import * as Elements from '../../models/elements/elements.js';
@@ -466,10 +465,8 @@ export class ElementsTreeOutline extends
466
465
  constructor(omitRootDOMNode?: boolean, selectEnabled?: boolean, hideGutter?: boolean) {
467
466
  super();
468
467
 
469
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HIGHLIGHT_ERRORS_ELEMENTS_PANEL)) {
470
- this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
471
- this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
472
- }
468
+ this.#issuesManager = IssuesManager.IssuesManager.IssuesManager.instance();
469
+ this.#issuesManager.addEventListener(IssuesManager.IssuesManager.Events.ISSUE_ADDED, this.#onIssueAdded, this);
473
470
 
474
471
  this.treeElementByNode = new WeakMap();
475
472
  const shadowContainer = document.createElement('div');
@@ -541,48 +538,46 @@ export class ElementsTreeOutline extends
541
538
  this.showHTMLCommentsSetting = Common.Settings.Settings.instance().moduleSetting('show-html-comments');
542
539
  this.showHTMLCommentsSetting.addChangeListener(this.onShowHTMLCommentsChange.bind(this));
543
540
  this.setUseLightSelectionColor(true);
544
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HIGHLIGHT_ERRORS_ELEMENTS_PANEL)) {
545
- // TODO(changhaohan): refactor the popover to use tooltip component.
546
- this.#popupHelper = new UI.PopoverHelper.PopoverHelper(this.elementInternal, event => {
547
- const hoveredNode = event.composedPath()[0] as Element;
548
- if (!hoveredNode?.matches('.violating-element')) {
549
- return null;
550
- }
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
+ }
551
547
 
552
- const issues = this.#nodeElementToIssues.get(hoveredNode);
553
- if (!issues) {
554
- return null;
555
- }
548
+ const issues = this.#nodeElementToIssues.get(hoveredNode);
549
+ if (!issues) {
550
+ return null;
551
+ }
556
552
 
557
- return {
558
- box: hoveredNode.boxInWindow(),
559
- show: async (popover: UI.GlassPane.GlassPane) => {
560
- popover.setIgnoreLeftMargin(true);
561
- // clang-format off
562
- render(html`
563
- <div class="squiggles-content">
564
- ${issues.map(issue => {
565
- const elementIssueDetails = getElementIssueDetails(issue);
566
- if (!elementIssueDetails) {
567
- // This shouldn't happen, but add this if check to pass ts check.
568
- return nothing;
569
- }
570
- const issueKindIconName = IssueCounter.IssueCounter.getIssueKindIconName(issue.getKind());
571
- const openIssueEvent = (): Promise<void> => Common.Revealer.reveal(issue);
572
- return html`
573
- <div class="squiggles-content-item">
574
- <devtools-icon .name=${issueKindIconName} @click=${openIssueEvent}></devtools-icon>
575
- <x-link class="link" @click=${openIssueEvent}>${i18nString(UIStrings.viewIssue)}</x-link>
576
- <span>${elementIssueDetails.tooltip}</span>
577
- </div>`;})}
578
- </div>`, popover.contentElement);
579
- // clang-format on
580
- return true;
581
- },
582
- };
583
- }, 'elements.issue');
584
- this.#popupHelper.setTimeout(300);
585
- }
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);
586
581
  }
587
582
 
588
583
  static forDOMModel(domModel: SDK.DOMModel.DOMModel): ElementsTreeOutline|null {
@@ -1527,9 +1522,7 @@ export class ElementsTreeOutline extends
1527
1522
  this.reset();
1528
1523
  if (domModel.existingDocument()) {
1529
1524
  this.rootDOMNode = domModel.existingDocument();
1530
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.HIGHLIGHT_ERRORS_ELEMENTS_PANEL)) {
1531
- this.#addAllElementIssues();
1532
- }
1525
+ this.#addAllElementIssues();
1533
1526
  }
1534
1527
  }
1535
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
 
@@ -148,7 +148,7 @@ export class StylePropertiesSection {
148
148
  navigable: boolean|null|undefined;
149
149
  protected readonly selectorRefElement: HTMLElement;
150
150
  private hoverableSelectorsMode: boolean;
151
- private isHiddenInternal: boolean;
151
+ #isHidden: boolean;
152
152
  protected customPopulateCallback: () => void;
153
153
 
154
154
  nestingLevel = 0;
@@ -317,7 +317,7 @@ export class StylePropertiesSection {
317
317
  this.propertiesTreeOutline.element.classList.add('read-only');
318
318
  }
319
319
  this.hoverableSelectorsMode = false;
320
- this.isHiddenInternal = false;
320
+ this.#isHidden = false;
321
321
  this.markSelectorMatches();
322
322
  this.onpopulate();
323
323
  }
@@ -1132,7 +1132,7 @@ export class StylePropertiesSection {
1132
1132
 
1133
1133
  const regex = this.parentPane.filterRegex();
1134
1134
  const hideRule = !hasMatchingChild && regex !== null && !regex.test(this.element.deepTextContent());
1135
- this.isHiddenInternal = hideRule;
1135
+ this.#isHidden = hideRule;
1136
1136
  this.element.classList.toggle('hidden', hideRule);
1137
1137
  if (!hideRule && this.styleInternal.parentRule) {
1138
1138
  this.markSelectorHighlights();
@@ -1141,7 +1141,7 @@ export class StylePropertiesSection {
1141
1141
  }
1142
1142
 
1143
1143
  isHidden(): boolean {
1144
- return this.isHiddenInternal;
1144
+ return this.#isHidden;
1145
1145
  }
1146
1146
 
1147
1147
  markSelectorMatches(): void {