chrome-devtools-frontend 1.0.1684555 → 1.0.1690116

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 (736) hide show
  1. package/.agents/skills/gerrit-cli/SKILL.md +29 -8
  2. package/.agents/skills/gerrit-cli/references/commands.md +51 -18
  3. package/.agents/skills/gerrit-cli/references/workflows.md +6 -6
  4. package/.agents/skills/gerrit-cli/scripts/import_upstream.py +43 -70
  5. package/config/typescript/tsconfig.base.json +1 -0
  6. package/config/typescript/tsconfig.eslint.json +9 -0
  7. package/docs/contributing/issues.md +1 -1
  8. package/docs/styleguide/ux/writing.md +2 -2
  9. package/eslint.config.mjs +26 -12
  10. package/front_end/core/common/Base64.ts +1 -1
  11. package/front_end/core/common/Color.ts +28 -6
  12. package/front_end/core/common/ColorConverter.ts +12 -0
  13. package/front_end/core/common/Console.ts +2 -1
  14. package/front_end/core/common/Object.ts +10 -4
  15. package/front_end/core/common/ResourceType.ts +12 -13
  16. package/front_end/core/common/Revealer.ts +1 -1
  17. package/front_end/core/common/Settings.ts +2 -2
  18. package/front_end/core/common/TextDictionary.ts +2 -2
  19. package/front_end/core/common/Throttler.ts +1 -1
  20. package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -2
  21. package/front_end/core/host/UserMetrics.ts +51 -37
  22. package/front_end/core/host/host.ts +1 -1
  23. package/front_end/core/i18n/collect-ui-strings.js +5 -5
  24. package/front_end/core/i18n/generate-locales-js.js +1 -1
  25. package/front_end/core/i18n/i18n.ts +6 -0
  26. package/front_end/core/i18n/i18nImpl.ts +1 -1
  27. package/front_end/core/platform/HostRuntime.ts +3 -3
  28. package/front_end/core/platform/KeyboardUtilities.ts +1 -1
  29. package/front_end/core/protocol_client/InspectorBackend.ts +7 -6
  30. package/front_end/core/root/Runtime.ts +4 -7
  31. package/front_end/core/sdk/AnimationModel.ts +1 -1
  32. package/front_end/core/sdk/CPUThrottlingManager.ts +198 -0
  33. package/front_end/core/sdk/CSSMetadata.ts +9 -6
  34. package/front_end/core/sdk/CSSPropertyParser.ts +5 -3
  35. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +90 -59
  36. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  37. package/front_end/core/sdk/DOMModel.ts +49 -14
  38. package/front_end/core/sdk/DebuggerModel.ts +1 -1
  39. package/front_end/core/sdk/EmulationModel.ts +23 -0
  40. package/front_end/core/sdk/LayerTreeBase.ts +1 -1
  41. package/front_end/core/sdk/NetworkManager.ts +1 -1
  42. package/front_end/core/sdk/README.md +40 -0
  43. package/front_end/core/sdk/RehydratingConnection.ts +1 -1
  44. package/front_end/core/sdk/RemoteObject.ts +1 -1
  45. package/front_end/core/sdk/ResourceTreeModel.ts +2 -2
  46. package/front_end/core/sdk/SDKModel.ts +1 -1
  47. package/front_end/core/sdk/SDKSettings.ts +15 -0
  48. package/front_end/core/sdk/Script.ts +1 -1
  49. package/front_end/core/sdk/SecurityOrigin.ts +158 -0
  50. package/front_end/core/sdk/ServiceWorkerManager.ts +75 -17
  51. package/front_end/core/sdk/Target.ts +1 -5
  52. package/front_end/core/sdk/sdk.ts +2 -0
  53. package/front_end/core/text_utils/ContentData.ts +1 -1
  54. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +3 -1
  55. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -1
  56. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +2 -2
  57. package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
  58. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
  59. package/front_end/entrypoints/inspector_main/InspectorMain.ts +1 -1
  60. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +1 -1
  61. package/front_end/entrypoints/inspector_main/nodeIcon.css +1 -1
  62. package/front_end/entrypoints/inspector_main/outermostTargetSelector.css +3 -3
  63. package/front_end/entrypoints/inspector_main/renderingOptions.css +3 -3
  64. package/front_end/entrypoints/js_app/js_app.ts +25 -9
  65. package/front_end/entrypoints/node_app/app/nodeConnectionsPanel.css +5 -5
  66. package/front_end/entrypoints/node_app/node_app.ts +1 -1
  67. package/front_end/generated/ARIAProperties.ts +39 -1
  68. package/front_end/generated/InspectorBackendCommands.ts +2 -1
  69. package/front_end/generated/SupportedCSSProperties.ts +60 -119
  70. package/front_end/generated/protocol-mapping.d.ts +9 -0
  71. package/front_end/generated/protocol-proxy-api.d.ts +7 -0
  72. package/front_end/generated/protocol.ts +12 -2
  73. package/front_end/models/ai_assistance/AiAgent2.ts +13 -7
  74. package/front_end/models/ai_assistance/AiConversation.ts +8 -17
  75. package/front_end/models/ai_assistance/AiHistoryStorage.ts +2 -2
  76. package/front_end/models/ai_assistance/AiUtils.ts +16 -10
  77. package/front_end/models/ai_assistance/EvaluateAction.ts +1 -1
  78. package/front_end/models/ai_assistance/README.md +1 -1
  79. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +8 -13
  80. package/front_end/models/ai_assistance/agents/AiAgent.ts +29 -6
  81. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +4 -3
  82. package/front_end/models/ai_assistance/agents/FileAgent.ts +2 -2
  83. package/front_end/models/ai_assistance/agents/NetworkAgent.ts +2 -2
  84. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +1 -1
  85. package/front_end/models/ai_assistance/agents/StorageAgent.ts +7 -5
  86. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -2
  87. package/front_end/models/ai_assistance/agents/StylingAgent.ts +8 -7
  88. package/front_end/models/ai_assistance/ai_assistance.ts +8 -0
  89. package/front_end/models/ai_assistance/contexts/AccessibilityContext.ts +16 -1
  90. package/front_end/models/ai_assistance/contexts/FileContext.ts +6 -0
  91. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +150 -325
  92. package/front_end/models/ai_assistance/injected.ts +3 -3
  93. package/front_end/models/ai_assistance/performance/AIContext.ts +1 -1
  94. package/front_end/models/ai_assistance/skills/README.md +1 -1
  95. package/front_end/models/ai_assistance/skills/accessibility.md +19 -10
  96. package/front_end/models/ai_assistance/skills/network.md +13 -7
  97. package/front_end/models/ai_assistance/skills/performance.md +22 -16
  98. package/front_end/models/ai_assistance/skills/sources.md +13 -7
  99. package/front_end/models/ai_assistance/skills/storage.md +19 -18
  100. package/front_end/models/ai_assistance/skills/styling.md +30 -37
  101. package/front_end/models/ai_assistance/tools/CookieUtils.ts +120 -0
  102. package/front_end/models/ai_assistance/tools/DOMStorageUtils.ts +53 -4
  103. package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +8 -32
  104. package/front_end/models/ai_assistance/tools/GetCookieValues.ts +146 -0
  105. package/front_end/models/ai_assistance/tools/GetDetailedCallTree.ts +11 -9
  106. package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +17 -5
  107. package/front_end/models/ai_assistance/tools/GetFunctionCode.ts +12 -11
  108. package/front_end/models/ai_assistance/tools/GetInsightDetails.ts +11 -11
  109. package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +3 -2
  110. package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +3 -3
  111. package/front_end/models/ai_assistance/tools/GetResourceContent.ts +12 -12
  112. package/front_end/models/ai_assistance/tools/GetSourceContent.ts +3 -2
  113. package/front_end/models/ai_assistance/tools/GetStorageBreakdown.ts +132 -0
  114. package/front_end/models/ai_assistance/tools/GetStorageValues.ts +17 -4
  115. package/front_end/models/ai_assistance/tools/GetStyles.ts +3 -3
  116. package/front_end/models/ai_assistance/tools/GetTraceEventByKey.ts +9 -8
  117. package/front_end/models/ai_assistance/tools/GetTraceMainThreadSummary.ts +13 -14
  118. package/front_end/models/ai_assistance/tools/GetTraceNetworkSummary.ts +12 -10
  119. package/front_end/models/ai_assistance/tools/ListCookies.ts +93 -0
  120. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +15 -6
  121. package/front_end/models/ai_assistance/tools/ListPageOrigins.ts +3 -3
  122. package/front_end/models/ai_assistance/tools/ListSources.ts +5 -3
  123. package/front_end/models/ai_assistance/tools/ListStorageKeys.ts +16 -4
  124. package/front_end/models/ai_assistance/tools/RecordPerformanceTrace.ts +3 -2
  125. package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +4 -3
  126. package/front_end/models/ai_assistance/tools/RunLighthouse.ts +9 -9
  127. package/front_end/models/ai_assistance/tools/SelectTraceEventByKey.ts +9 -8
  128. package/front_end/models/ai_assistance/tools/Tool.ts +21 -11
  129. package/front_end/models/ai_assistance/tools/ToolRegistry.ts +41 -8
  130. package/front_end/models/badges/AiExplorerBadge.ts +3 -3
  131. package/front_end/models/badges/CodeWhispererBadge.ts +2 -2
  132. package/front_end/models/badges/DOMDetectiveBadge.ts +3 -3
  133. package/front_end/models/badges/SpeedsterBadge.ts +3 -3
  134. package/front_end/models/badges/StarterBadge.ts +4 -4
  135. package/front_end/models/bindings/CompilerScriptMapping.ts +11 -2
  136. package/front_end/models/bindings/ContentProviderBasedProject.ts +3 -2
  137. package/front_end/models/breakpoints/BreakpointManager.ts +1 -1
  138. package/front_end/models/emulation/EmulatedDevices.ts +2 -2
  139. package/front_end/models/formatter/FormatterWorkerPool.ts +2 -2
  140. package/front_end/models/formatter/ScriptFormatter.ts +1 -2
  141. package/front_end/models/geometry/GeometryImpl.ts +2 -2
  142. package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +1 -1
  143. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +3 -2
  144. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -5
  145. package/front_end/models/issues_manager/GenericIssue.ts +18 -18
  146. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
  147. package/front_end/models/javascript_metadata/{NativeFunctions.js → NativeFunctions.ts} +26 -10
  148. package/front_end/models/live-metrics/LiveMetrics.ts +9 -3
  149. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +58 -6
  150. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +2 -62
  151. package/front_end/models/network_time_calculator/RequestTimeRanges.ts +2 -2
  152. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
  153. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
  154. package/front_end/models/persistence/NetworkPersistenceManager.ts +35 -6
  155. package/front_end/models/stack_trace/StackTraceImpl.ts +2 -2
  156. package/front_end/models/trace/LanternComputationData.ts +2 -3
  157. package/front_end/models/trace/extras/StackTraceForEvent.ts +3 -2
  158. package/front_end/models/trace/extras/ThirdParties.ts +9 -9
  159. package/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +7 -4
  160. package/front_end/models/trace/handlers/FramesHandler.ts +3 -3
  161. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +2 -2
  162. package/front_end/models/trace/handlers/SamplesHandler.ts +4 -2
  163. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +1 -1
  164. package/front_end/models/trace/handlers/WarningsHandler.ts +2 -2
  165. package/front_end/models/trace/helpers/Network.ts +3 -3
  166. package/front_end/models/trace/helpers/Trace.ts +1 -1
  167. package/front_end/models/trace/insights/CLSCulprits.ts +1 -1
  168. package/front_end/models/trace/insights/Cache.ts +1 -1
  169. package/front_end/models/trace/insights/CharacterSet.ts +1 -1
  170. package/front_end/models/trace/insights/DOMSize.ts +1 -1
  171. package/front_end/models/trace/insights/DocumentLatency.ts +1 -1
  172. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +1 -1
  173. package/front_end/models/trace/insights/FontDisplay.ts +1 -1
  174. package/front_end/models/trace/insights/ForcedReflow.ts +1 -1
  175. package/front_end/models/trace/insights/INPBreakdown.ts +1 -1
  176. package/front_end/models/trace/insights/ImageDelivery.ts +1 -1
  177. package/front_end/models/trace/insights/LCPBreakdown.ts +1 -1
  178. package/front_end/models/trace/insights/LCPDiscovery.ts +1 -1
  179. package/front_end/models/trace/insights/LegacyJavaScript.ts +1 -1
  180. package/front_end/models/trace/insights/ModernHTTP.ts +1 -1
  181. package/front_end/models/trace/insights/NetworkDependencyTree.ts +1 -1
  182. package/front_end/models/trace/insights/RenderBlocking.ts +3 -4
  183. package/front_end/models/trace/insights/SlowCSSSelector.ts +1 -1
  184. package/front_end/models/trace/insights/ThirdParties.ts +3 -3
  185. package/front_end/models/trace/insights/Viewport.ts +1 -1
  186. package/front_end/models/trace/lantern/simulation/Constants.ts +34 -2
  187. package/front_end/models/trace/lantern/simulation/DNSCache.ts +1 -1
  188. package/front_end/models/trace/types/TraceEvents.ts +8 -3
  189. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +2 -1
  190. package/front_end/models/workspace/WorkspaceImpl.ts +18 -2
  191. package/front_end/panels/accessibility/ARIAAttributesView.ts +1 -1
  192. package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingView.ts +686 -2
  193. package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -2
  194. package/front_end/panels/accessibility/AccessibilityStrings.ts +7 -3
  195. package/front_end/panels/accessibility/accessibilityNode.css +4 -4
  196. package/front_end/panels/accessibility/accessibilityProperties.css +1 -1
  197. package/front_end/panels/accessibility/accessibilitySidebarView.css +2 -2
  198. package/front_end/panels/accessibility/axBreadcrumbs.css +13 -13
  199. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +14 -14
  200. package/front_end/panels/ai_assistance/ExternalHandler.ts +1 -1
  201. package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -1
  202. package/front_end/panels/ai_assistance/components/AIv2MarkdownRenderer.ts +2 -2
  203. package/front_end/panels/ai_assistance/components/AccessibilityAgentMarkdownRenderer.ts +1 -3
  204. package/front_end/panels/ai_assistance/components/ChatInput.ts +3 -2
  205. package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
  206. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +1 -1
  207. package/front_end/panels/ai_assistance/components/ExploreWidget.ts +1 -1
  208. package/front_end/panels/ai_assistance/components/chatInput.css +12 -12
  209. package/front_end/panels/ai_assistance/components/chatMessage.css +16 -16
  210. package/front_end/panels/ai_assistance/components/chatView.css +2 -2
  211. package/front_end/panels/ai_assistance/components/exploreWidget.css +1 -1
  212. package/front_end/panels/ai_assistance/components/exportForAgentsDialog.css +4 -0
  213. package/front_end/panels/ai_assistance/components/walkthroughView.css +6 -6
  214. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
  215. package/front_end/panels/animation/AnimationTimeline.ts +1 -1
  216. package/front_end/panels/animation/AnimationUI.ts +1 -1
  217. package/front_end/panels/animation/animationTimeline.css +62 -62
  218. package/front_end/panels/application/AppManifestView.ts +6 -2
  219. package/front_end/panels/application/ApplicationPanelSidebar.ts +8 -5
  220. package/front_end/panels/application/BackgroundServiceView.ts +290 -252
  221. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +1 -1
  222. package/front_end/panels/application/FrameDetailsView.ts +1 -1
  223. package/front_end/panels/application/IndexedDBViews.ts +3 -2
  224. package/front_end/panels/application/ReportingApiTreeElement.ts +1 -1
  225. package/front_end/panels/application/ReportingApiView.ts +2 -2
  226. package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +1 -1
  227. package/front_end/panels/application/ServiceWorkersView.ts +1 -1
  228. package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
  229. package/front_end/panels/application/StorageItemsToolbar.ts +6 -2
  230. package/front_end/panels/application/StorageView.ts +9 -8
  231. package/front_end/panels/application/TrustTokensTreeElement.ts +1 -1
  232. package/front_end/panels/application/WebMCPView.ts +17 -8
  233. package/front_end/panels/application/appManifestView.css +5 -5
  234. package/front_end/panels/application/backgroundServiceView.css +18 -2
  235. package/front_end/panels/application/components/AdsView.ts +100 -4
  236. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +1 -1
  237. package/front_end/panels/application/components/CrashReportContextGrid.ts +1 -1
  238. package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
  239. package/front_end/panels/application/components/ReportsGrid.ts +1 -1
  240. package/front_end/panels/application/components/TrustTokensView.ts +1 -1
  241. package/front_end/panels/application/components/adsView.css +8 -5
  242. package/front_end/panels/application/components/backForwardCacheView.css +5 -5
  243. package/front_end/panels/application/components/bounceTrackingMitigationsView.css +1 -1
  244. package/front_end/panels/application/components/endpointsGrid.css +1 -1
  245. package/front_end/panels/application/components/permissionsPolicySection.css +1 -1
  246. package/front_end/panels/application/components/protocolHandlersView.css +6 -6
  247. package/front_end/panels/application/components/reportsGrid.css +1 -1
  248. package/front_end/panels/application/components/serviceWorkerRouterView.css +4 -4
  249. package/front_end/panels/application/components/trustTokensView.css +7 -7
  250. package/front_end/panels/application/cookieItemsView.css +3 -3
  251. package/front_end/panels/application/deviceBoundSessionsView.css +3 -3
  252. package/front_end/panels/application/frameDetailsReportView.css +11 -11
  253. package/front_end/panels/application/indexedDBViews.css +7 -7
  254. package/front_end/panels/application/originTrialTokenRows.css +2 -2
  255. package/front_end/panels/application/originTrialTreeView.css +3 -3
  256. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +1 -1
  257. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +1 -1
  258. package/front_end/panels/application/preloading/components/RuleSetDetailsView.css +2 -2
  259. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +7 -2
  260. package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +1 -1
  261. package/front_end/panels/application/preloading/components/preloadingDisabledInfobar.css +2 -2
  262. package/front_end/panels/application/preloading/components/preloadingGrid.css +2 -2
  263. package/front_end/panels/application/preloading/components/usedPreloadingView.css +7 -7
  264. package/front_end/panels/application/preloading/preloadingView.css +1 -1
  265. package/front_end/panels/application/preloading/preloadingViewDropDown.css +3 -3
  266. package/front_end/panels/application/serviceWorkerCacheViews.css +5 -5
  267. package/front_end/panels/application/serviceWorkerUpdateCycleView.css +14 -12
  268. package/front_end/panels/application/serviceWorkersView.css +15 -16
  269. package/front_end/panels/application/storageView.css +5 -5
  270. package/front_end/panels/application/webMCPView.css +9 -9
  271. package/front_end/panels/autofill/AutofillView.ts +2 -2
  272. package/front_end/panels/autofill/autofillView.css +4 -4
  273. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +2 -3
  274. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
  275. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +4 -4
  276. package/front_end/panels/browser_debugger/domBreakpointsSidebarPane.css +5 -3
  277. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +4 -4
  278. package/front_end/panels/changes/ChangesSidebar.ts +56 -15
  279. package/front_end/panels/changes/ChangesView.ts +1 -1
  280. package/front_end/panels/changes/changesSidebar.css +1 -1
  281. package/front_end/panels/changes/changesView.css +1 -1
  282. package/front_end/panels/changes/combinedDiffView.css +1 -1
  283. package/front_end/panels/common/CPUThrottlingOption.ts +5 -10
  284. package/front_end/panels/common/badgeNotification.css +2 -2
  285. package/front_end/panels/common/domLinkifier.css +1 -1
  286. package/front_end/panels/common/gdpSignUpDialog.css +3 -3
  287. package/front_end/panels/common/geminiRebrandPromoDialog.css +1 -1
  288. package/front_end/panels/console/ConsolePrompt.ts +12 -5
  289. package/front_end/panels/console/ConsoleSidebar.ts +6 -2
  290. package/front_end/panels/console/ConsoleView.ts +6 -3
  291. package/front_end/panels/console/ConsoleViewMessage.ts +3 -1
  292. package/front_end/panels/console/console-meta.ts +5 -24
  293. package/front_end/panels/console/consoleContextSelector.css +2 -2
  294. package/front_end/panels/console/consolePinPane.css +9 -9
  295. package/front_end/panels/console/consolePrompt.css +5 -5
  296. package/front_end/panels/console/consoleView.css +39 -39
  297. package/front_end/panels/coverage/coverageListView.css +2 -2
  298. package/front_end/panels/css_overview/cssOverviewCompletedView.css +34 -34
  299. package/front_end/panels/css_overview/cssOverviewProcessingView.css +5 -5
  300. package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +1 -1
  301. package/front_end/panels/css_overview/cssOverviewStartView.css +17 -17
  302. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +209 -62
  303. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +4 -4
  304. package/front_end/panels/elements/DOMTreeContextMenu.ts +59 -54
  305. package/front_end/panels/elements/ElementsPanel.ts +1 -1
  306. package/front_end/panels/elements/ElementsTreeElement.ts +142 -94
  307. package/front_end/panels/elements/ElementsTreeOutline.ts +2132 -472
  308. package/front_end/panels/elements/PropertyRenderer.ts +22 -15
  309. package/front_end/panels/elements/ShortcutTreeElement.ts +6 -3
  310. package/front_end/panels/elements/StandaloneStylesContainer.ts +6 -2
  311. package/front_end/panels/elements/StylePropertiesSection.ts +65 -8
  312. package/front_end/panels/elements/StylePropertyTreeElement.ts +81 -26
  313. package/front_end/panels/elements/StylesSidebarPane.ts +149 -10
  314. package/front_end/panels/elements/classesPaneWidget.css +6 -6
  315. package/front_end/panels/elements/components/stylePropertyEditor.css +7 -7
  316. package/front_end/panels/elements/computedStyleWidget.css +1 -1
  317. package/front_end/panels/elements/elementStatePaneWidget.css +8 -8
  318. package/front_end/panels/elements/elements-meta.ts +14 -0
  319. package/front_end/panels/elements/elementsPanel.css +4 -4
  320. package/front_end/panels/elements/elementsTreeOutline.css +226 -38
  321. package/front_end/panels/elements/layersWidget.css +4 -4
  322. package/front_end/panels/elements/layoutPane.css +18 -18
  323. package/front_end/panels/elements/metricsSidebarPane.css +11 -11
  324. package/front_end/panels/elements/platformFontsWidget.css +5 -5
  325. package/front_end/panels/elements/propertiesWidget.css +2 -2
  326. package/front_end/panels/elements/stylePropertiesTreeOutline.css +20 -20
  327. package/front_end/panels/elements/stylesSidebarPane.css +37 -20
  328. package/front_end/panels/emulation/DeviceModeView.ts +6 -1
  329. package/front_end/panels/emulation/InspectedPagePlaceholder.ts +6 -2
  330. package/front_end/panels/emulation/deviceModeView.css +49 -49
  331. package/front_end/panels/emulation/mediaQueryInspector.css +18 -18
  332. package/front_end/panels/event_listeners/eventListenersView.css +1 -1
  333. package/front_end/panels/explain/components/consoleInsight.css +29 -29
  334. package/front_end/panels/issues/components/elementsPanelLink.css +2 -2
  335. package/front_end/panels/issues/components/hideIssuesMenu.css +1 -1
  336. package/front_end/panels/issues/issuesPane.css +2 -2
  337. package/front_end/panels/issues/issuesTree.css +50 -50
  338. package/front_end/panels/layer_viewer/LayerDetailsView.ts +6 -2
  339. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +7 -2
  340. package/front_end/panels/layer_viewer/Layers3DView.ts +17 -11
  341. package/front_end/panels/layer_viewer/PaintProfilerView.ts +6 -2
  342. package/front_end/panels/layer_viewer/layerDetailsView.css +1 -1
  343. package/front_end/panels/layer_viewer/layerTreeOutline.css +2 -2
  344. package/front_end/panels/layer_viewer/layers3DView.css +1 -1
  345. package/front_end/panels/layer_viewer/paintProfiler.css +1 -1
  346. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +2 -2
  347. package/front_end/panels/lighthouse/lighthousePanel.css +5 -5
  348. package/front_end/panels/lighthouse/lighthouseStartView.css +13 -13
  349. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +6 -2
  350. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +6 -2
  351. package/front_end/panels/media/playerListView.css +9 -9
  352. package/front_end/panels/media/playerMessagesView.css +8 -8
  353. package/front_end/panels/media/playerPropertiesView.css +6 -6
  354. package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +1 -1
  355. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +6 -2
  356. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +25 -54
  357. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +9 -9
  358. package/front_end/panels/network/NetworkDataGridNode.ts +1 -0
  359. package/front_end/panels/network/NetworkLogView.ts +8 -3
  360. package/front_end/panels/network/NetworkPanel.ts +9 -4
  361. package/front_end/panels/network/RequestConditionsDrawer.ts +12 -12
  362. package/front_end/panels/network/RequestPayloadView.ts +78 -26
  363. package/front_end/panels/network/binaryResourceView.css +1 -1
  364. package/front_end/panels/network/components/EditableSpan.css +3 -3
  365. package/front_end/panels/network/components/HeaderSectionRow.css +14 -14
  366. package/front_end/panels/network/components/RequestHeaderSection.css +7 -7
  367. package/front_end/panels/network/components/RequestHeadersView.css +23 -18
  368. package/front_end/panels/network/components/RequestTrustTokensView.css +1 -1
  369. package/front_end/panels/network/network-meta.ts +9 -9
  370. package/front_end/panels/network/networkConfigView.css +11 -11
  371. package/front_end/panels/network/networkLogView.css +39 -35
  372. package/front_end/panels/network/networkManageCustomHeadersView.css +1 -1
  373. package/front_end/panels/network/networkPanel.css +7 -7
  374. package/front_end/panels/network/networkTimingTable.css +13 -13
  375. package/front_end/panels/network/requestConditionsDrawer.css +4 -4
  376. package/front_end/panels/network/requestCookiesView.css +5 -5
  377. package/front_end/panels/network/requestDeviceBoundSessionsView.css +1 -1
  378. package/front_end/panels/network/requestHTMLView.css +1 -1
  379. package/front_end/panels/network/requestHeadersTree.css +19 -19
  380. package/front_end/panels/network/requestInitiatorView.css +1 -1
  381. package/front_end/panels/network/requestInitiatorViewTree.css +5 -3
  382. package/front_end/panels/network/requestPayloadTree.css +5 -5
  383. package/front_end/panels/network/requestPayloadView.css +1 -1
  384. package/front_end/panels/network/resourceChunkView.css +3 -3
  385. package/front_end/panels/network/signedExchangeInfoTree.css +6 -6
  386. package/front_end/panels/performance_monitor/performanceMonitor.css +3 -3
  387. package/front_end/panels/profiler/HeapDetachedElementsView.ts +7 -2
  388. package/front_end/panels/profiler/HeapProfileView.ts +7 -2
  389. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +8 -4
  390. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +8 -4
  391. package/front_end/panels/profiler/HeapSnapshotView.ts +15 -6
  392. package/front_end/panels/profiler/HeapTimelineOverview.ts +6 -2
  393. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +12 -5
  394. package/front_end/panels/profiler/ProfileLauncherView.ts +6 -2
  395. package/front_end/panels/profiler/heapProfiler.css +15 -15
  396. package/front_end/panels/profiler/profileLauncherView.css +10 -10
  397. package/front_end/panels/profiler/profilesPanel.css +8 -9
  398. package/front_end/panels/profiler/profilesSidebarTree.css +13 -13
  399. package/front_end/panels/protocol_monitor/JSONEditor.css +2 -2
  400. package/front_end/panels/protocol_monitor/JSONEditor.ts +6 -1
  401. package/front_end/panels/protocol_monitor/protocolMonitor.css +2 -2
  402. package/front_end/panels/recorder/RecordingView.ts +1 -1
  403. package/front_end/panels/recorder/StepEditor.ts +86 -7
  404. package/front_end/panels/recorder/TimelineSection.ts +2 -1
  405. package/front_end/panels/recorder/createRecordingView.css +17 -17
  406. package/front_end/panels/recorder/extensionView.css +5 -5
  407. package/front_end/panels/recorder/injected/RecordingClient.ts +1 -1
  408. package/front_end/panels/recorder/models/SchemaUtils.ts +2 -2
  409. package/front_end/panels/recorder/models/ScreenshotStorage.ts +1 -1
  410. package/front_end/panels/recorder/recorderPanel.css +7 -7
  411. package/front_end/panels/recorder/recordingListView.css +12 -12
  412. package/front_end/panels/recorder/recordingView.css +47 -47
  413. package/front_end/panels/recorder/stepEditor.css +2 -2
  414. package/front_end/panels/recorder/stepView.css +20 -20
  415. package/front_end/panels/recorder/timelineSection.css +9 -9
  416. package/front_end/panels/screencast/screencastView.css +12 -12
  417. package/front_end/panels/search/searchResultsPane.css +10 -10
  418. package/front_end/panels/search/searchView.css +9 -9
  419. package/front_end/panels/security/SecurityPanel.ts +84 -54
  420. package/front_end/panels/security/mainView.css +26 -26
  421. package/front_end/panels/security/originView.css +15 -15
  422. package/front_end/panels/sensors/locationsSettingsTab.css +6 -6
  423. package/front_end/panels/sensors/sensors.css +28 -28
  424. package/front_end/panels/settings/components/syncSection.css +5 -5
  425. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +13 -13
  426. package/front_end/panels/settings/emulation/devicesSettingsTab.css +16 -16
  427. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +2 -2
  428. package/front_end/panels/settings/keybindsSettingsTab.css +2 -2
  429. package/front_end/panels/settings/settingsScreen.css +5 -5
  430. package/front_end/panels/sources/SourcesView.ts +7 -2
  431. package/front_end/panels/sources/TabbedEditorContainer.ts +6 -2
  432. package/front_end/panels/sources/UISourceCodeFrame.ts +11 -4
  433. package/front_end/panels/sources/breakpointEditDialog.css +9 -9
  434. package/front_end/panels/sources/breakpointsView.css +25 -25
  435. package/front_end/panels/sources/callStackSidebarPane.css +10 -10
  436. package/front_end/panels/sources/components/HeadersView.css +6 -6
  437. package/front_end/panels/sources/debuggerPausedMessage.css +4 -4
  438. package/front_end/panels/sources/dialog.css +2 -2
  439. package/front_end/panels/sources/navigatorTree.css +2 -2
  440. package/front_end/panels/sources/navigatorView.css +2 -2
  441. package/front_end/panels/sources/scopeChainSidebarPane.css +1 -1
  442. package/front_end/panels/sources/sourcesNavigator.css +1 -1
  443. package/front_end/panels/sources/sourcesPanel.css +2 -2
  444. package/front_end/panels/sources/sourcesView.css +1 -1
  445. package/front_end/panels/sources/threadsSidebarPane.css +5 -5
  446. package/front_end/panels/sources/watchExpressionsSidebarPane.css +8 -8
  447. package/front_end/panels/timeline/AnimationsTrackAppender.ts +1 -1
  448. package/front_end/panels/timeline/AnnotationHelpers.ts +9 -9
  449. package/front_end/panels/timeline/CountersGraph.ts +8 -8
  450. package/front_end/panels/timeline/EventsTimelineTreeView.ts +3 -3
  451. package/front_end/panels/timeline/ExtensionTrackAppender.ts +1 -1
  452. package/front_end/panels/timeline/GPUTrackAppender.ts +1 -1
  453. package/front_end/panels/timeline/InteractionsTrackAppender.ts +1 -1
  454. package/front_end/panels/timeline/IsolateSelector.ts +2 -2
  455. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +3 -3
  456. package/front_end/panels/timeline/NetworkTrackAppender.ts +1 -1
  457. package/front_end/panels/timeline/StatusDialog.ts +5 -6
  458. package/front_end/panels/timeline/ThirdPartyTreeView.ts +4 -4
  459. package/front_end/panels/timeline/ThreadAppender.ts +12 -14
  460. package/front_end/panels/timeline/TimelineController.ts +5 -8
  461. package/front_end/panels/timeline/TimelineDetailsView.ts +22 -30
  462. package/front_end/panels/timeline/TimelineEventOverview.ts +4 -4
  463. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +17 -17
  464. package/front_end/panels/timeline/TimelineFlameChartView.ts +11 -8
  465. package/front_end/panels/timeline/TimelineHistoryManager.ts +8 -8
  466. package/front_end/panels/timeline/TimelineLoader.ts +1 -1
  467. package/front_end/panels/timeline/TimelineMiniMap.ts +10 -5
  468. package/front_end/panels/timeline/TimelinePanel.ts +57 -59
  469. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +27 -27
  470. package/front_end/panels/timeline/TimelineTreeView.ts +46 -44
  471. package/front_end/panels/timeline/TimelineUIUtils.ts +142 -116
  472. package/front_end/panels/timeline/TimingsTrackAppender.ts +1 -1
  473. package/front_end/panels/timeline/TrackConfigBanner.ts +4 -4
  474. package/front_end/panels/timeline/UIDevtoolsUtils.ts +15 -15
  475. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
  476. package/front_end/panels/timeline/components/breadcrumbsUI.css +3 -3
  477. package/front_end/panels/timeline/components/exportTraceOptions.css +1 -1
  478. package/front_end/panels/timeline/components/fieldSettingsDialog.css +13 -13
  479. package/front_end/panels/timeline/components/ignoreListSetting.css +3 -3
  480. package/front_end/panels/timeline/components/insights/Table.ts +1 -1
  481. package/front_end/panels/timeline/components/liveMetricsView.css +39 -39
  482. package/front_end/panels/timeline/components/metricCard.css +20 -20
  483. package/front_end/panels/timeline/components/networkRequestDetails.css +9 -9
  484. package/front_end/panels/timeline/components/networkRequestTooltip.css +14 -14
  485. package/front_end/panels/timeline/components/networkTrackWidget.css +2 -2
  486. package/front_end/panels/timeline/components/originMap.css +4 -4
  487. package/front_end/panels/timeline/components/relatedInsightChips.css +1 -1
  488. package/front_end/panels/timeline/components/sidebarAnnotationsTab.css +4 -4
  489. package/front_end/panels/timeline/components/sidebarInsightsTab.css +5 -5
  490. package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +1 -1
  491. package/front_end/panels/timeline/components/timelineSummary.css +4 -4
  492. package/front_end/panels/timeline/enable-easter-egg.js +1 -1
  493. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +4 -4
  494. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  495. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +6 -6
  496. package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +1 -1
  497. package/front_end/panels/timeline/thirdPartyTreeView.css +5 -5
  498. package/front_end/panels/timeline/timeline-meta.ts +30 -36
  499. package/front_end/panels/timeline/timelineDetailsView.css +11 -11
  500. package/front_end/panels/timeline/timelineFlameChartView.css +10 -10
  501. package/front_end/panels/timeline/timelineFlamechartPopover.css +5 -5
  502. package/front_end/panels/timeline/timelineHistoryManager.css +7 -7
  503. package/front_end/panels/timeline/timelinePaintProfiler.css +2 -2
  504. package/front_end/panels/timeline/timelinePanel.css +20 -20
  505. package/front_end/panels/timeline/timelineTreeView.css +8 -8
  506. package/front_end/panels/timeline/utils/IgnoreList.ts +4 -4
  507. package/front_end/panels/webauthn/webauthnPane.css +6 -6
  508. package/front_end/panels/whats_new/ReleaseNoteText.ts +2 -2
  509. package/front_end/third_party/chromium/README.chromium +1 -1
  510. package/front_end/third_party/i18n/i18n-impl.ts +1 -1
  511. package/front_end/third_party/puppeteer/README.chromium +2 -2
  512. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +15 -1
  513. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +42 -8
  514. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.d.ts +4 -0
  515. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.d.ts.map +1 -1
  516. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +15 -2
  517. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
  518. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts +14 -1
  519. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  520. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js +23 -1
  521. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
  522. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
  523. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
  524. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
  525. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
  526. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.d.ts.map +1 -1
  527. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.js +77 -6
  528. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.js.map +1 -1
  529. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
  530. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
  531. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js.map +1 -1
  532. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  533. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  534. package/front_end/third_party/puppeteer/package/lib/types.d.ts +15 -1
  535. package/front_end/third_party/puppeteer/package/package.json +2 -2
  536. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +16 -2
  537. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +36 -1
  538. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  539. package/front_end/third_party/puppeteer/package/src/injected/Poller.ts +86 -6
  540. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  541. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  542. package/front_end/third_party/web-vitals/README.chromium +2 -2
  543. package/front_end/third_party/web-vitals/package/README.md +22 -7
  544. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +6 -2
  545. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +2 -2
  546. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +30 -3
  547. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +14 -0
  548. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +19 -13
  549. package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.d.ts +1 -1
  550. package/front_end/third_party/web-vitals/package/dist/modules/lib/doubleRAF.js +1 -1
  551. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +3 -3
  552. package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.js +3 -1
  553. package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +15 -1
  554. package/front_end/third_party/web-vitals/package/package.json +1 -2
  555. package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +9 -2
  556. package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +36 -5
  557. package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +21 -15
  558. package/front_end/third_party/web-vitals/package/src/lib/doubleRAF.ts +1 -1
  559. package/front_end/third_party/web-vitals/package/src/lib/softNavs.ts +4 -1
  560. package/front_end/third_party/web-vitals/package/src/types/lcp.ts +16 -1
  561. package/front_end/third_party/web-vitals/rebuild.sh +3 -3
  562. package/front_end/ui/comments/CommentAnchorResolver.ts +26 -6
  563. package/front_end/ui/comments/CommentOverlayManager.ts +9 -1
  564. package/front_end/ui/comments/commentsOverlay.css +6 -5
  565. package/front_end/ui/components/adorners/Adorner.ts +1 -1
  566. package/front_end/ui/components/adorners/adorner.css +6 -6
  567. package/front_end/ui/components/buttons/Button.docs.ts +1 -1
  568. package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
  569. package/front_end/ui/components/buttons/button.css +30 -9
  570. package/front_end/ui/components/buttons/floatingButton.css +2 -2
  571. package/front_end/ui/components/buttons/textButton.css +12 -12
  572. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  573. package/front_end/ui/components/dialogs/dialog.css +1 -1
  574. package/front_end/ui/components/diff_view/diffView.css +3 -3
  575. package/front_end/ui/components/expandable_list/expandableList.css +9 -9
  576. package/front_end/ui/components/highlighting/HighlightElement.ts +1 -1
  577. package/front_end/ui/components/highlighting/HighlightManager.ts +4 -0
  578. package/front_end/ui/components/icon_button/iconButton.css +2 -2
  579. package/front_end/ui/components/input/checkbox.css +8 -8
  580. package/front_end/ui/components/input/textInput.css +3 -3
  581. package/front_end/ui/components/issue_counter/issueLinkIcon.css +2 -2
  582. package/front_end/ui/components/linkifier/linkifierImpl.css +1 -1
  583. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
  584. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +1 -1
  585. package/front_end/ui/components/markdown_view/codeBlock.css +2 -2
  586. package/front_end/ui/components/markdown_view/markdownView.css +7 -7
  587. package/front_end/ui/components/menus/menuGroup.css +2 -2
  588. package/front_end/ui/components/menus/menuItem.css +2 -2
  589. package/front_end/ui/components/menus/selectMenu.css +2 -2
  590. package/front_end/ui/components/menus/selectMenuButton.css +4 -4
  591. package/front_end/ui/components/panel_feedback/panelFeedback.css +15 -15
  592. package/front_end/ui/components/panel_feedback/previewToggle.css +2 -2
  593. package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +7 -7
  594. package/front_end/ui/components/report_view/ReportView.docs.ts +1 -1
  595. package/front_end/ui/components/report_view/report.css +3 -3
  596. package/front_end/ui/components/report_view/reportSectionDivider.css +1 -1
  597. package/front_end/ui/components/report_view/reportValue.css +1 -1
  598. package/front_end/ui/components/request_link_icon/requestLinkIcon.css +2 -2
  599. package/front_end/ui/components/settings/settingCheckbox.css +6 -6
  600. package/front_end/ui/components/snackbars/Snackbars.docs.ts +1 -1
  601. package/front_end/ui/components/spinners/Spinner.ts +1 -1
  602. package/front_end/ui/components/spinners/Spinners.docs.ts +1 -1
  603. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +1 -2
  604. package/front_end/ui/components/switch/Switch.docs.ts +1 -1
  605. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +10 -8
  606. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +2 -1
  607. package/front_end/ui/components/text_editor/ExecutionPositionHighlighter.ts +2 -2
  608. package/front_end/ui/components/text_editor/TextEditor.ts +22 -1
  609. package/front_end/ui/components/text_editor/config.ts +125 -100
  610. package/front_end/ui/components/text_editor/cursor_tooltip.ts +1 -1
  611. package/front_end/ui/components/text_editor/theme.ts +1 -1
  612. package/front_end/ui/components/tooltips/Tooltip.docs.ts +1 -1
  613. package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
  614. package/front_end/ui/components/tree_outline/TreeOutlineUtils.ts +4 -1
  615. package/front_end/ui/kit/cards/Card.ts +1 -1
  616. package/front_end/ui/kit/icons/Icon.ts +1 -1
  617. package/front_end/ui/kit/icons/icon.css +4 -4
  618. package/front_end/ui/kit/link/Link.docs.ts +1 -1
  619. package/front_end/ui/kit/link/Link.ts +1 -1
  620. package/front_end/ui/kit/link/link.css +1 -1
  621. package/front_end/ui/legacy/ActionRegistration.ts +23 -23
  622. package/front_end/ui/legacy/ContextMenu.docs.ts +1 -1
  623. package/front_end/ui/legacy/Dialog.ts +11 -3
  624. package/front_end/ui/legacy/DockController.ts +3 -3
  625. package/front_end/ui/legacy/EmptyWidget.ts +13 -34
  626. package/front_end/ui/legacy/FilterBar.ts +10 -5
  627. package/front_end/ui/legacy/Infobar.ts +2 -2
  628. package/front_end/ui/legacy/InspectorDrawerView.ts +6 -6
  629. package/front_end/ui/legacy/InspectorView.ts +19 -26
  630. package/front_end/ui/legacy/ListWidget.ts +7 -7
  631. package/front_end/ui/legacy/PlusButton.ts +1 -3
  632. package/front_end/ui/legacy/RadioButton.docs.ts +1 -1
  633. package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +6 -6
  634. package/front_end/ui/legacy/SearchableView.ts +16 -16
  635. package/front_end/ui/legacy/SelectMenu.docs.ts +1 -1
  636. package/front_end/ui/legacy/Slider.docs.ts +1 -1
  637. package/front_end/ui/legacy/SoftContextMenu.ts +8 -8
  638. package/front_end/ui/legacy/SoftDropDown.ts +1 -1
  639. package/front_end/ui/legacy/SplitWidget.ts +5 -1
  640. package/front_end/ui/legacy/SuggestBox.ts +2 -2
  641. package/front_end/ui/legacy/TabbedPane.ts +15 -11
  642. package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -2
  643. package/front_end/ui/legacy/Toolbar.ts +5 -5
  644. package/front_end/ui/legacy/Treeoutline.ts +1 -1
  645. package/front_end/ui/legacy/UIUtils.ts +80 -20
  646. package/front_end/ui/legacy/ViewManager.ts +1 -1
  647. package/front_end/ui/legacy/ViewRegistration.ts +7 -7
  648. package/front_end/ui/legacy/Widget.ts +5 -5
  649. package/front_end/ui/legacy/checkboxTextLabel.css +3 -3
  650. package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts +16 -0
  651. package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +1 -0
  652. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +6 -1
  653. package/front_end/ui/legacy/components/color_picker/spectrum.css +90 -90
  654. package/front_end/ui/legacy/components/cookie_table/cookiesTable.css +1 -1
  655. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +26 -28
  656. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +3 -7
  657. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +6 -2
  658. package/front_end/ui/legacy/components/inline_editor/BezierEditor.ts +6 -1
  659. package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +6 -2
  660. package/front_end/ui/legacy/components/inline_editor/bezierEditor.css +13 -13
  661. package/front_end/ui/legacy/components/inline_editor/colorSwatch.css +7 -7
  662. package/front_end/ui/legacy/components/inline_editor/cssAngleEditor.css +5 -5
  663. package/front_end/ui/legacy/components/inline_editor/cssShadowEditor.css +18 -18
  664. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +104 -86
  665. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +8 -6
  666. package/front_end/ui/legacy/components/object_ui/objectPopover.css +4 -4
  667. package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +8 -6
  668. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +28 -11
  669. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +6 -1
  670. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +6 -2
  671. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +8 -8
  672. package/front_end/ui/legacy/components/perf_ui/chartViewport.css +4 -4
  673. package/front_end/ui/legacy/components/perf_ui/filmStripView.css +6 -6
  674. package/front_end/ui/legacy/components/perf_ui/flameChart.css +7 -7
  675. package/front_end/ui/legacy/components/perf_ui/overviewGrid.css +11 -11
  676. package/front_end/ui/legacy/components/perf_ui/pieChart.css +6 -6
  677. package/front_end/ui/legacy/components/perf_ui/timelineGrid.css +5 -5
  678. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +8 -3
  679. package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +6 -1
  680. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +3 -3
  681. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -1
  682. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +7 -2
  683. package/front_end/ui/legacy/components/source_frame/imageView.css +1 -1
  684. package/front_end/ui/legacy/components/source_frame/jsonView.css +1 -1
  685. package/front_end/ui/legacy/components/source_frame/resourceSourceFrame.css +1 -1
  686. package/front_end/ui/legacy/components/source_frame/xmlTree.css +3 -3
  687. package/front_end/ui/legacy/components/utils/imagePreview.css +1 -1
  688. package/front_end/ui/legacy/components/utils/jsUtils.css +10 -10
  689. package/front_end/ui/legacy/dropTarget.css +2 -2
  690. package/front_end/ui/legacy/emptyWidget.css +6 -0
  691. package/front_end/ui/legacy/filter.css +19 -19
  692. package/front_end/ui/legacy/infobar.css +2 -2
  693. package/front_end/ui/legacy/inspectorCommon.css +67 -67
  694. package/front_end/ui/legacy/inspectorDrawerTabbedPane.css +1 -1
  695. package/front_end/ui/legacy/listWidget.css +5 -5
  696. package/front_end/ui/legacy/progressIndicator.css +4 -4
  697. package/front_end/ui/legacy/reportView.css +7 -7
  698. package/front_end/ui/legacy/searchableView.css +5 -5
  699. package/front_end/ui/legacy/smallBubble.css +3 -3
  700. package/front_end/ui/legacy/softContextMenu.css +4 -4
  701. package/front_end/ui/legacy/softDropDownButton.css +1 -1
  702. package/front_end/ui/legacy/splitWidget.css +9 -31
  703. package/front_end/ui/legacy/suggestBox.css +4 -4
  704. package/front_end/ui/legacy/tabbedPane.css +17 -17
  705. package/front_end/ui/legacy/textPrompt.css +2 -2
  706. package/front_end/ui/legacy/toolbar.css +4 -4
  707. package/front_end/ui/legacy/treeoutline.css +14 -14
  708. package/front_end/ui/legacy/viewContainers.css +6 -6
  709. package/front_end/ui/settings/ConsoleSettings.ts +34 -0
  710. package/front_end/ui/visual_logging/KnownContextValues.ts +12 -0
  711. package/inspector_overlay/common.ts +12 -12
  712. package/inspector_overlay/css_grid_label_helpers.ts +16 -17
  713. package/inspector_overlay/drag_resize_handler.ts +2 -2
  714. package/inspector_overlay/highlight_common.ts +11 -13
  715. package/inspector_overlay/highlight_container_query.ts +2 -2
  716. package/inspector_overlay/highlight_flex_common.ts +6 -7
  717. package/inspector_overlay/highlight_grid_common.ts +3 -3
  718. package/inspector_overlay/highlight_isolated_element.ts +12 -3
  719. package/inspector_overlay/highlight_scroll_snap.ts +2 -2
  720. package/inspector_overlay/loadCSS.rollup.js +0 -1
  721. package/inspector_overlay/testing/InspectorOverlayHelpers.ts +13 -13
  722. package/inspector_overlay/tool_green_dev_anchors.ts +3 -3
  723. package/inspector_overlay/tool_highlight.ts +9 -9
  724. package/inspector_overlay/tool_paused.ts +4 -4
  725. package/inspector_overlay/tool_persistent.ts +11 -11
  726. package/inspector_overlay/tool_screenshot.ts +7 -7
  727. package/inspector_overlay/tool_source_order.ts +4 -4
  728. package/inspector_overlay/tool_viewport_size.ts +3 -3
  729. package/inspector_overlay/tool_window_controls.ts +4 -4
  730. package/mcp/mcp.ts +1 -0
  731. package/package.json +3 -3
  732. package/front_end/generated/protocol-tsconfig.json +0 -10
  733. package/front_end/panels/js_timeline/DIR_METADATA +0 -3
  734. package/front_end/panels/js_timeline/js_timeline-meta.ts +0 -193
  735. package/front_end/panels/js_timeline/js_timeline.ts +0 -1
  736. /package/front_end/entrypoints/{formatter_worker/FormatterActions.ts → formatter_actions/formatter_actions.ts} +0 -0
@@ -21,6 +21,7 @@ import {
21
21
  type Match,
22
22
  matchDeclaration,
23
23
  matcherBase,
24
+ type MatcherClass,
24
25
  type SyntaxTree,
25
26
  tokenizeDeclaration,
26
27
  } from './CSSPropertyParser.js';
@@ -56,12 +57,13 @@ export class BaseVariableMatch implements Match {
56
57
  }
57
58
  }
58
59
 
60
+ const BaseVariableMatcherBase: MatcherClass<BaseVariableMatch> = matcherBase(BaseVariableMatch);
59
61
  // This matcher provides matching for var() functions and basic computedText support. Computed text is resolved by a
60
62
  // callback. This matcher is intended to be used directly only in environments where CSSMatchedStyles is not available.
61
63
  // A more ergonomic version of this matcher exists in VariableMatcher, which uses CSSMatchedStyles to correctly resolve
62
64
  // variable references automatically.
63
65
  // clang-format off
64
- export class BaseVariableMatcher extends matcherBase(BaseVariableMatch) {
66
+ export class BaseVariableMatcher extends BaseVariableMatcherBase {
65
67
  // clang-format on
66
68
  readonly #computedTextCallback: (match: BaseVariableMatch, matching: BottomUpTreeMatching) => string | null;
67
69
  constructor(computedTextCallback: (match: BaseVariableMatch, matching: BottomUpTreeMatching) => string | null) {
@@ -114,8 +116,9 @@ export class VariableMatch extends BaseVariableMatch {
114
116
  }
115
117
  }
116
118
 
119
+ const VariableMatcherBase: MatcherClass<VariableMatch> = matcherBase(VariableMatch);
117
120
  // clang-format off
118
- export class VariableMatcher extends matcherBase(VariableMatch) {
121
+ export class VariableMatcher extends VariableMatcherBase {
119
122
  // clang-format on
120
123
  constructor(readonly matchedStyles: CSSMatchedStyles, readonly style: CSSStyleDeclaration) {
121
124
  super();
@@ -144,8 +147,9 @@ export class VariableNameMatch implements Match {
144
147
  }
145
148
  }
146
149
 
150
+ const VariableNameMatcherBase: MatcherClass<VariableNameMatch> = matcherBase(VariableNameMatch);
147
151
  // clang-format off
148
- export class VariableNameMatcher extends matcherBase(VariableNameMatch) {
152
+ export class VariableNameMatcher extends VariableNameMatcherBase {
149
153
  // clang-format on
150
154
  constructor(readonly matchedStyles: CSSMatchedStyles, readonly style: CSSStyleDeclaration) {
151
155
  super();
@@ -270,10 +274,11 @@ export function defaultValueForCSSType(type: string|null): string|null {
270
274
 
271
275
  export const RAW_STRING_TYPE = 'raw-string';
272
276
 
277
+ const AttributeMatcherBase: MatcherClass<AttributeMatch> = matcherBase(AttributeMatch);
273
278
  // This matcher provides matching for attr() functions and basic computedText support. Computed text is resolved by a
274
279
  // callback.
275
280
  // clang-format off
276
- export class AttributeMatcher extends matcherBase(AttributeMatch) {
281
+ export class AttributeMatcher extends AttributeMatcherBase {
277
282
  // clang-format on
278
283
  constructor(
279
284
  private readonly matchedStyles: CSSMatchedStyles,
@@ -347,8 +352,9 @@ export class BinOpMatch implements Match {
347
352
  }
348
353
  }
349
354
 
355
+ const BinOpMatcherBase: MatcherClass<BinOpMatch> = matcherBase(BinOpMatch);
350
356
  // clang-format off
351
- export class BinOpMatcher extends matcherBase(BinOpMatch) {
357
+ export class BinOpMatcher extends BinOpMatcherBase {
352
358
  // clang-format on
353
359
  override accepts(): boolean {
354
360
  return true;
@@ -372,8 +378,9 @@ export class TextMatch implements Match {
372
378
  }
373
379
  }
374
380
 
381
+ const TextMatcherBase: MatcherClass<TextMatch> = matcherBase(TextMatch);
375
382
  // clang-format off
376
- export class TextMatcher extends matcherBase(TextMatch) {
383
+ export class TextMatcher extends TextMatcherBase {
377
384
  // clang-format on
378
385
  override accepts(): boolean {
379
386
  return true;
@@ -399,8 +406,9 @@ export class AngleMatch implements Match {
399
406
  }
400
407
  }
401
408
 
409
+ const AngleMatcherBase: MatcherClass<AngleMatch> = matcherBase(AngleMatch);
402
410
  // clang-format off
403
- export class AngleMatcher extends matcherBase(AngleMatch) {
411
+ export class AngleMatcher extends AngleMatcherBase {
404
412
  // clang-format on
405
413
  override accepts(propertyName: string): boolean {
406
414
  return cssMetadata().isAngleAwareProperty(propertyName);
@@ -435,8 +443,9 @@ export class ColorMixMatch implements Match {
435
443
  }
436
444
  }
437
445
 
446
+ const ColorMixMatcherBase: MatcherClass<ColorMixMatch> = matcherBase(ColorMixMatch);
438
447
  // clang-format off
439
- export class ColorMixMatcher extends matcherBase(ColorMixMatch) {
448
+ export class ColorMixMatcher extends ColorMixMatcherBase {
440
449
  // clang-format on
441
450
  override accepts(propertyName: string): boolean {
442
451
  return cssMetadata().isColorAwareProperty(propertyName);
@@ -497,8 +506,9 @@ export class ContrastColorMatch implements Match {
497
506
  }
498
507
  }
499
508
 
509
+ const ContrastColorMatcherBase: MatcherClass<ContrastColorMatch> = matcherBase(ContrastColorMatch);
500
510
  // clang-format off
501
- export class ContrastColorMatcher extends matcherBase(ContrastColorMatch) {
511
+ export class ContrastColorMatcher extends ContrastColorMatcherBase {
502
512
  // clang-format on
503
513
  override accepts(propertyName: string): boolean {
504
514
  return cssMetadata().isColorAwareProperty(propertyName);
@@ -527,8 +537,9 @@ export class URLMatch implements Match {
527
537
  }
528
538
  }
529
539
 
540
+ const URLMatcherBase: MatcherClass<URLMatch> = matcherBase(URLMatch);
530
541
  // clang-format off
531
- export class URLMatcher extends matcherBase(URLMatch) {
542
+ export class URLMatcher extends URLMatcherBase {
532
543
  // clang-format on
533
544
  override matches(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): URLMatch|null {
534
545
  if (node.name !== 'CallLiteral') {
@@ -557,8 +568,9 @@ export class LinearGradientMatch implements Match {
557
568
  }
558
569
  }
559
570
 
571
+ const LinearGradientMatcherBase: MatcherClass<LinearGradientMatch> = matcherBase(LinearGradientMatch);
560
572
  // clang-format off
561
- export class LinearGradientMatcher extends matcherBase(LinearGradientMatch) {
573
+ export class LinearGradientMatcher extends LinearGradientMatcherBase {
562
574
  // clang-format on
563
575
  override matches(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): Match|null {
564
576
  const text = matching.ast.text(node);
@@ -579,15 +591,16 @@ interface RelativeColor {
579
591
 
580
592
  export class ColorMatch implements Match {
581
593
  computedText: (() => string | null)|undefined;
582
- constructor(
583
- readonly text: string, readonly node: CodeMirror.SyntaxNode,
584
- private readonly currentColorCallback?: () => string | null, readonly relativeColor?: RelativeColor) {
594
+ constructor(readonly text: string, readonly node: CodeMirror.SyntaxNode,
595
+ private readonly currentColorCallback?: () => string | null,
596
+ readonly relativeColor?: RelativeColor|undefined) {
585
597
  this.computedText = currentColorCallback;
586
598
  }
587
599
  }
588
600
 
601
+ const ColorMatcherBase: MatcherClass<ColorMatch> = matcherBase(ColorMatch);
589
602
  // clang-format off
590
- export class ColorMatcher extends matcherBase(ColorMatch) {
603
+ export class ColorMatcher extends ColorMatcherBase {
591
604
  constructor(private readonly currentColorCallback?: () => string|null) {
592
605
  super();
593
606
  }
@@ -724,8 +737,9 @@ export class RelativeColorChannelMatch implements Match {
724
737
  }
725
738
  }
726
739
 
740
+ const RelativeColorChannelMatcherBase: MatcherClass<RelativeColorChannelMatch> = matcherBase(RelativeColorChannelMatch);
727
741
  // clang-format off
728
- export class RelativeColorChannelMatcher extends matcherBase(RelativeColorChannelMatch) {
742
+ export class RelativeColorChannelMatcher extends RelativeColorChannelMatcherBase {
729
743
  // clang-format on
730
744
  override accepts(propertyName: string): boolean {
731
745
  return cssMetadata().isColorAwareProperty(propertyName);
@@ -747,8 +761,9 @@ export class LightDarkColorMatch implements Match {
747
761
  }
748
762
  }
749
763
 
764
+ const LightDarkColorMatcherBase: MatcherClass<LightDarkColorMatch> = matcherBase(LightDarkColorMatch);
750
765
  // clang-format off
751
- export class LightDarkColorMatcher extends matcherBase(LightDarkColorMatch) {
766
+ export class LightDarkColorMatcher extends LightDarkColorMatcherBase {
752
767
  // clang-format on
753
768
  constructor(readonly style: CSSStyleDeclaration) {
754
769
  super();
@@ -776,8 +791,9 @@ export class AutoBaseMatch implements Match {
776
791
  }
777
792
  }
778
793
 
794
+ const AutoBaseMatcherBase: MatcherClass<AutoBaseMatch> = matcherBase(AutoBaseMatch);
779
795
  // clang-format off
780
- export class AutoBaseMatcher extends matcherBase(AutoBaseMatch) {
796
+ export class AutoBaseMatcher extends AutoBaseMatcherBase {
781
797
  // clang-format on
782
798
  override matches(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): AutoBaseMatch|null {
783
799
  if (node.name !== 'CallExpression' || matching.ast.text(node.getChild('Callee')) !== '-internal-auto-base') {
@@ -817,8 +833,9 @@ export class LinkableNameMatch implements Match {
817
833
  }
818
834
  }
819
835
 
836
+ const LinkableNameMatcherBase: MatcherClass<LinkableNameMatch> = matcherBase(LinkableNameMatch);
820
837
  // clang-format off
821
- export class LinkableNameMatcher extends matcherBase(LinkableNameMatch) {
838
+ export class LinkableNameMatcher extends LinkableNameMatcherBase {
822
839
  // clang-format on
823
840
  private static isLinkableNameProperty(propertyName: string): propertyName is LinkableNameProperties {
824
841
  const names: string[] = [
@@ -833,29 +850,30 @@ export class LinkableNameMatcher extends matcherBase(LinkableNameMatch) {
833
850
  return names.includes(propertyName);
834
851
  }
835
852
 
836
- static readonly identifierAnimationLonghandMap = new Map<string, AnimationLonghandPart>(
837
- Object.entries({
838
- normal: AnimationLonghandPart.DIRECTION,
839
- alternate: AnimationLonghandPart.DIRECTION,
840
- reverse: AnimationLonghandPart.DIRECTION,
841
- 'alternate-reverse': AnimationLonghandPart.DIRECTION,
842
- none: AnimationLonghandPart.FILL_MODE,
843
- forwards: AnimationLonghandPart.FILL_MODE,
844
- backwards: AnimationLonghandPart.FILL_MODE,
845
- both: AnimationLonghandPart.FILL_MODE,
846
- running: AnimationLonghandPart.PLAY_STATE,
847
- paused: AnimationLonghandPart.PLAY_STATE,
848
- infinite: AnimationLonghandPart.ITERATION_COUNT,
849
- linear: AnimationLonghandPart.EASING_FUNCTION,
850
- ease: AnimationLonghandPart.EASING_FUNCTION,
851
- 'ease-in': AnimationLonghandPart.EASING_FUNCTION,
852
- 'ease-out': AnimationLonghandPart.EASING_FUNCTION,
853
- 'ease-in-out': AnimationLonghandPart.EASING_FUNCTION,
854
- steps: AnimationLonghandPart.EASING_FUNCTION,
855
- 'step-start': AnimationLonghandPart.EASING_FUNCTION,
856
- 'step-end': AnimationLonghandPart.EASING_FUNCTION,
857
- }),
858
- );
853
+ static readonly identifierAnimationLonghandMap: Map<string, AnimationLonghandPart> =
854
+ new Map<string, AnimationLonghandPart>(
855
+ Object.entries({
856
+ normal: AnimationLonghandPart.DIRECTION,
857
+ alternate: AnimationLonghandPart.DIRECTION,
858
+ reverse: AnimationLonghandPart.DIRECTION,
859
+ 'alternate-reverse': AnimationLonghandPart.DIRECTION,
860
+ none: AnimationLonghandPart.FILL_MODE,
861
+ forwards: AnimationLonghandPart.FILL_MODE,
862
+ backwards: AnimationLonghandPart.FILL_MODE,
863
+ both: AnimationLonghandPart.FILL_MODE,
864
+ running: AnimationLonghandPart.PLAY_STATE,
865
+ paused: AnimationLonghandPart.PLAY_STATE,
866
+ infinite: AnimationLonghandPart.ITERATION_COUNT,
867
+ linear: AnimationLonghandPart.EASING_FUNCTION,
868
+ ease: AnimationLonghandPart.EASING_FUNCTION,
869
+ 'ease-in': AnimationLonghandPart.EASING_FUNCTION,
870
+ 'ease-out': AnimationLonghandPart.EASING_FUNCTION,
871
+ 'ease-in-out': AnimationLonghandPart.EASING_FUNCTION,
872
+ steps: AnimationLonghandPart.EASING_FUNCTION,
873
+ 'step-start': AnimationLonghandPart.EASING_FUNCTION,
874
+ 'step-end': AnimationLonghandPart.EASING_FUNCTION,
875
+ }),
876
+ );
859
877
 
860
878
  private matchAnimationNameInShorthand(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): LinkableNameMatch|
861
879
  null {
@@ -949,8 +967,9 @@ export class BezierMatch implements Match {
949
967
  }
950
968
  }
951
969
 
970
+ const BezierMatcherBase: MatcherClass<BezierMatch> = matcherBase(BezierMatch);
952
971
  // clang-format off
953
- export class BezierMatcher extends matcherBase(BezierMatch) {
972
+ export class BezierMatcher extends BezierMatcherBase {
954
973
  // clang-format on
955
974
  override accepts(propertyName: string): boolean {
956
975
  return cssMetadata().isBezierAwareProperty(propertyName);
@@ -975,8 +994,9 @@ export class StringMatch implements Match {
975
994
  }
976
995
  }
977
996
 
997
+ const StringMatcherBase: MatcherClass<StringMatch> = matcherBase(StringMatch);
978
998
  // clang-format off
979
- export class StringMatcher extends matcherBase(StringMatch) {
999
+ export class StringMatcher extends StringMatcherBase {
980
1000
  // clang-format on
981
1001
  override matches(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): Match|null {
982
1002
  return node.name === 'StringLiteral' ? new StringMatch(matching.ast.text(node), node) : null;
@@ -992,8 +1012,9 @@ export class ShadowMatch implements Match {
992
1012
  }
993
1013
  }
994
1014
 
1015
+ const ShadowMatcherBase: MatcherClass<ShadowMatch> = matcherBase(ShadowMatch);
995
1016
  // clang-format off
996
- export class ShadowMatcher extends matcherBase(ShadowMatch) {
1017
+ export class ShadowMatcher extends ShadowMatcherBase {
997
1018
  // clang-format on
998
1019
  override accepts(propertyName: string): boolean {
999
1020
  return cssMetadata().isShadowProperty(propertyName);
@@ -1017,10 +1038,11 @@ export class LengthMatch implements Match {
1017
1038
  }
1018
1039
  }
1019
1040
 
1041
+ const LengthMatcherBase: MatcherClass<LengthMatch> = matcherBase(LengthMatch);
1020
1042
  // clang-format off
1021
- export class LengthMatcher extends matcherBase(LengthMatch) {
1043
+ export class LengthMatcher extends LengthMatcherBase {
1022
1044
  // clang-format on
1023
- static readonly LENGTH_UNITS = new Set([
1045
+ static readonly LENGTH_UNITS: Set<string> = new Set([
1024
1046
  'em', 'ex', 'ch', 'cap', 'ic', 'lh', 'rem', 'rex', 'rch', 'rlh', 'ric', 'rcap', 'pt', 'pc',
1025
1047
  'in', 'cm', 'mm', 'Q', 'vw', 'vh', 'vi', 'vb', 'vmin', 'vmax', 'dvw', 'dvh', 'dvi', 'dvb',
1026
1048
  'dvmin', 'dvmax', 'svw', 'svh', 'svi', 'svb', 'svmin', 'svmax', 'lvw', 'lvh', 'lvi', 'lvb', 'lvmin', 'lvmax',
@@ -1079,8 +1101,9 @@ export class MathFunctionMatch extends BaseFunctionMatch<MathFunction> {
1079
1101
  }
1080
1102
  }
1081
1103
 
1104
+ const MathFunctionMatcherBase: MatcherClass<MathFunctionMatch> = matcherBase(MathFunctionMatch);
1082
1105
  // clang-format off
1083
- export class MathFunctionMatcher extends matcherBase(MathFunctionMatch) {
1106
+ export class MathFunctionMatcher extends MathFunctionMatcherBase {
1084
1107
  // clang-format on
1085
1108
  private static getFunctionType(callee: string|null): MathFunction|null {
1086
1109
  const maybeFunc = callee as MathFunction | null;
@@ -1125,8 +1148,9 @@ export class MathFunctionMatcher extends matcherBase(MathFunctionMatch) {
1125
1148
 
1126
1149
  export class CustomFunctionMatch extends BaseFunctionMatch<string> {}
1127
1150
 
1151
+ const CustomFunctionMatcherBase: MatcherClass<CustomFunctionMatch> = matcherBase(CustomFunctionMatch);
1128
1152
  // clang-format off
1129
- export class CustomFunctionMatcher extends matcherBase(CustomFunctionMatch) {
1153
+ export class CustomFunctionMatcher extends CustomFunctionMatcherBase {
1130
1154
  // clang-format on
1131
1155
 
1132
1156
  override matches(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): CustomFunctionMatch|null {
@@ -1157,12 +1181,13 @@ export class FlexGridGridLanesMatch implements Match {
1157
1181
  }
1158
1182
  }
1159
1183
 
1184
+ const FlexGridGridLanesMatcherBase: MatcherClass<FlexGridGridLanesMatch> = matcherBase(FlexGridGridLanesMatch);
1160
1185
  // clang-format off
1161
- export class FlexGridGridLanesMatcher extends matcherBase(FlexGridGridLanesMatch) {
1186
+ export class FlexGridGridLanesMatcher extends FlexGridGridLanesMatcherBase {
1162
1187
  // clang-format on
1163
- static readonly FLEX = ['flex', 'inline-flex', 'block flex', 'inline flex'];
1164
- static readonly GRID = ['grid', 'inline-grid', 'block grid', 'inline grid'];
1165
- static readonly GRID_LANES = ['grid-lanes', 'inline-grid-lanes', 'block grid-lanes', 'inline grid-lanes'];
1188
+ static readonly FLEX: string[] = ['flex', 'inline-flex', 'block flex', 'inline flex'];
1189
+ static readonly GRID: string[] = ['grid', 'inline-grid', 'block grid', 'inline grid'];
1190
+ static readonly GRID_LANES: string[] = ['grid-lanes', 'inline-grid-lanes', 'block grid-lanes', 'inline grid-lanes'];
1166
1191
  override accepts(propertyName: string): boolean {
1167
1192
  return propertyName === 'display';
1168
1193
  }
@@ -1197,8 +1222,9 @@ export class GridTemplateMatch implements Match {
1197
1222
  }
1198
1223
  }
1199
1224
 
1225
+ const GridTemplateMatcherBase: MatcherClass<GridTemplateMatch> = matcherBase(GridTemplateMatch);
1200
1226
  // clang-format off
1201
- export class GridTemplateMatcher extends matcherBase(GridTemplateMatch) {
1227
+ export class GridTemplateMatcher extends GridTemplateMatcherBase {
1202
1228
  // clang-format on
1203
1229
  override accepts(propertyName: string): boolean {
1204
1230
  return cssMetadata().isGridAreaDefiningProperty(propertyName);
@@ -1293,8 +1319,9 @@ export class AnchorFunctionMatch implements Match {
1293
1319
  }
1294
1320
  }
1295
1321
 
1322
+ const AnchorFunctionMatcherBase: MatcherClass<AnchorFunctionMatch> = matcherBase(AnchorFunctionMatch);
1296
1323
  // clang-format off
1297
- export class AnchorFunctionMatcher extends matcherBase(AnchorFunctionMatch) {
1324
+ export class AnchorFunctionMatcher extends AnchorFunctionMatcherBase {
1298
1325
  // clang-format on
1299
1326
  anchorFunction(node: CodeMirror.SyntaxNode, matching: BottomUpTreeMatching): string|null {
1300
1327
  if (node.name !== 'CallExpression') {
@@ -1343,8 +1370,9 @@ export class PositionAnchorMatch implements Match {
1343
1370
  }
1344
1371
  }
1345
1372
 
1373
+ const PositionAnchorMatcherBase: MatcherClass<PositionAnchorMatch> = matcherBase(PositionAnchorMatch);
1346
1374
  // clang-format off
1347
- export class PositionAnchorMatcher extends matcherBase(PositionAnchorMatch) {
1375
+ export class PositionAnchorMatcher extends PositionAnchorMatcherBase {
1348
1376
  // clang-format on
1349
1377
  override accepts(propertyName: string): boolean {
1350
1378
  return propertyName === 'position-anchor';
@@ -1373,8 +1401,9 @@ export class CSSWideKeywordMatch implements Match {
1373
1401
  }
1374
1402
  }
1375
1403
 
1404
+ const CSSWideKeywordMatcherBase: MatcherClass<CSSWideKeywordMatch> = matcherBase(CSSWideKeywordMatch);
1376
1405
  // clang-format off
1377
- export class CSSWideKeywordMatcher extends matcherBase(CSSWideKeywordMatch) {
1406
+ export class CSSWideKeywordMatcher extends CSSWideKeywordMatcherBase {
1378
1407
  // clang-format on
1379
1408
  constructor(readonly property: CSSProperty, readonly matchedStyles: CSSMatchedStyles) {
1380
1409
  super();
@@ -1407,8 +1436,9 @@ export class PositionTryMatch implements Match {
1407
1436
  }
1408
1437
  }
1409
1438
 
1439
+ const PositionTryMatcherBase: MatcherClass<PositionTryMatch> = matcherBase(PositionTryMatch);
1410
1440
  // clang-format off
1411
- export class PositionTryMatcher extends matcherBase(PositionTryMatch) {
1441
+ export class PositionTryMatcher extends PositionTryMatcherBase {
1412
1442
  // clang-format on
1413
1443
  override accepts(propertyName: string): boolean {
1414
1444
  return propertyName === LinkableNameProperties.POSITION_TRY ||
@@ -1452,8 +1482,9 @@ export class EnvFunctionMatch implements Match {
1452
1482
  }
1453
1483
  }
1454
1484
 
1485
+ const EnvFunctionMatcherBase: MatcherClass<EnvFunctionMatch> = matcherBase(EnvFunctionMatch);
1455
1486
  // clang-format off
1456
- export class EnvFunctionMatcher extends matcherBase(EnvFunctionMatch) {
1487
+ export class EnvFunctionMatcher extends EnvFunctionMatcherBase {
1457
1488
  // clang-format on
1458
1489
  constructor(readonly matchedStyles: CSSMatchedStyles) {
1459
1490
  super();
@@ -797,7 +797,7 @@ export type MessageSource = Protocol.Log.LogEntrySource|Common.Console.FrontendM
797
797
  export type MessageLevel = Protocol.Log.LogEntryLevel;
798
798
  export type MessageType = Protocol.Runtime.ConsoleAPICalledEventType|FrontendMessageType;
799
799
 
800
- export const MessageSourceDisplayName = new Map<MessageSource, string>(([
800
+ export const MessageSourceDisplayName: Map<MessageSource, string> = new Map<MessageSource, string>(([
801
801
  [Protocol.Log.LogEntrySource.XML, 'xml'],
802
802
  [Protocol.Log.LogEntrySource.Javascript, 'javascript'],
803
803
  [Protocol.Log.LogEntrySource.Network, 'network'],
@@ -48,6 +48,7 @@ import {RemoteObject} from './RemoteObject.js';
48
48
  import {Events as ResourceTreeModelEvents, type ResourceTreeFrame, ResourceTreeModel} from './ResourceTreeModel.js';
49
49
  import {RuntimeModel} from './RuntimeModel.js';
50
50
  import {SDKModel} from './SDKModel.js';
51
+ import {SecurityOrigin} from './SecurityOrigin.js';
51
52
  import {Capability, type Target} from './Target.js';
52
53
  import type {TargetManager} from './TargetManager.js';
53
54
 
@@ -64,7 +65,7 @@ export const enum NodeType {
64
65
  }
65
66
 
66
67
  /** Keep this list in sync with https://w3c.github.io/aria/#state_prop_def **/
67
- export const ARIA_ATTRIBUTES = new Set<string>([
68
+ export const ARIA_ATTRIBUTES: Set<string> = new Set<string>([
68
69
  'role',
69
70
  'aria-activedescendant',
70
71
  'aria-atomic',
@@ -387,6 +388,14 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
387
388
  return this.#topLayerIndex;
388
389
  }
389
390
 
391
+ /**
392
+ * Returns the security origin of the document owning this node, or `null` if
393
+ * this node is not attached to a document.
394
+ */
395
+ securityOrigin(): SecurityOrigin|null {
396
+ return this.ownerDocument?.securityOrigin() ?? null;
397
+ }
398
+
390
399
  adProvenance(): Protocol.Network.AdProvenance|undefined {
391
400
  if (this.#adProvenance !== undefined) {
392
401
  return this.#adProvenance;
@@ -1424,6 +1433,8 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
1424
1433
  nodeName: this.nodeName(),
1425
1434
  localName: this.localName(),
1426
1435
  nodeValue: this.nodeValueInternal,
1436
+ documentURL: this.documentURL,
1437
+ baseURL: this.baseURL,
1427
1438
  } as Protocol.DOM.Node) :
1428
1439
  new DOMNodeSnapshot(this.domModel());
1429
1440
  snapshot.id = this.id;
@@ -1445,11 +1456,6 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
1445
1456
  snapshot.#isInShadowTree = this.#isInShadowTree;
1446
1457
  snapshot.childNodeCountInternal = this.childNodeCountInternal;
1447
1458
 
1448
- if (snapshot instanceof DOMDocument && this instanceof DOMDocument) {
1449
- snapshot.documentURL = this.documentURL;
1450
- snapshot.baseURL = this.baseURL;
1451
- }
1452
-
1453
1459
  if (!this.childrenInternal && this.childNodeCountInternal > 0) {
1454
1460
  await this.getSubtree(1, false);
1455
1461
  }
@@ -1600,15 +1606,45 @@ export class DOMNodeShortcut {
1600
1606
  export class DOMDocument extends DOMNode {
1601
1607
  body: DOMNode|null;
1602
1608
  documentElement: DOMNode|null;
1603
- documentURL: Platform.DevToolsPath.UrlString;
1604
- baseURL: Platform.DevToolsPath.UrlString;
1609
+ #documentURL: Platform.DevToolsPath.UrlString;
1610
+ #baseURL: Platform.DevToolsPath.UrlString;
1611
+ #securityOrigin: SecurityOrigin;
1612
+
1605
1613
  constructor(domModel: DOMModel, payload: Protocol.DOM.Node) {
1606
1614
  super(domModel);
1607
1615
  this.body = null;
1608
1616
  this.documentElement = null;
1609
1617
  this.init(this, false, payload);
1610
- this.documentURL = (payload.documentURL || '') as Platform.DevToolsPath.UrlString;
1611
- this.baseURL = (payload.baseURL || '') as Platform.DevToolsPath.UrlString;
1618
+ this.#documentURL = (payload.documentURL || '') as Platform.DevToolsPath.UrlString;
1619
+ this.#baseURL = (payload.baseURL || '') as Platform.DevToolsPath.UrlString;
1620
+ this.#securityOrigin = SecurityOrigin.create(this.#documentURL);
1621
+ }
1622
+
1623
+ get documentURL(): Platform.DevToolsPath.UrlString {
1624
+ return this.#documentURL;
1625
+ }
1626
+
1627
+ get baseURL(): Platform.DevToolsPath.UrlString {
1628
+ return this.#baseURL;
1629
+ }
1630
+
1631
+ /**
1632
+ * Returns the security origin of this document.
1633
+ *
1634
+ * The security origin is derived from the document URL and is recomputed
1635
+ * when the document navigates to a new URL via `setDocumentURL`.
1636
+ */
1637
+ override securityOrigin(): SecurityOrigin {
1638
+ return this.#securityOrigin;
1639
+ }
1640
+
1641
+ /**
1642
+ * Updates the document and base URLs, and recomputes the document's security origin.
1643
+ */
1644
+ setDocumentURL(url: Platform.DevToolsPath.UrlString): void {
1645
+ this.#documentURL = url;
1646
+ this.#baseURL = url;
1647
+ this.#securityOrigin = SecurityOrigin.create(url);
1612
1648
  }
1613
1649
  }
1614
1650
 
@@ -1623,8 +1659,8 @@ export class AdoptedStyleSheet {
1623
1659
 
1624
1660
  export class DOMModel extends SDKModel<EventTypes> {
1625
1661
  agent: ProtocolProxyApi.DOMApi;
1626
- idToDOMNode = new Map<Protocol.DOM.NodeId, DOMNode>();
1627
- frameIdToOwnerNode = new Map<Protocol.Page.FrameId, DOMNode>();
1662
+ idToDOMNode: Map<Protocol.DOM.NodeId, DOMNode> = new Map<Protocol.DOM.NodeId, DOMNode>();
1663
+ frameIdToOwnerNode: Map<Protocol.Page.FrameId, DOMNode> = new Map<Protocol.Page.FrameId, DOMNode>();
1628
1664
  #document: DOMDocument|null = null;
1629
1665
  readonly #attributeLoadNodeIds = new Set<Protocol.DOM.NodeId>();
1630
1666
  readonly runtimeModelInternal: RuntimeModel;
@@ -1694,8 +1730,7 @@ export class DOMModel extends SDKModel<EventTypes> {
1694
1730
  if (node) {
1695
1731
  const contentDocument = node.contentDocument();
1696
1732
  if (contentDocument && contentDocument.documentURL !== frame.url) {
1697
- contentDocument.documentURL = frame.url;
1698
- contentDocument.baseURL = frame.url;
1733
+ contentDocument.setDocumentURL(frame.url);
1699
1734
  this.dispatchEventToListeners(Events.DocumentURLChanged, contentDocument);
1700
1735
  }
1701
1736
  }
@@ -134,7 +134,7 @@ export const enum StepMode {
134
134
  STEP_OVER = 'StepOver',
135
135
  }
136
136
 
137
- export const WASM_SYMBOLS_PRIORITY = [
137
+ export const WASM_SYMBOLS_PRIORITY: Protocol.Debugger.DebugSymbolsType[] = [
138
138
  Protocol.Debugger.DebugSymbolsType.ExternalDWARF,
139
139
  Protocol.Debugger.DebugSymbolsType.EmbeddedDWARF,
140
140
  Protocol.Debugger.DebugSymbolsType.SourceMap,
@@ -4,6 +4,7 @@
4
4
 
5
5
  import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
6
6
  import * as Protocol from '../../generated/protocol.js';
7
+ import type * as Common from '../common/common.js';
7
8
 
8
9
  import {CSSModel} from './CSSModel.js';
9
10
  import type {MultitargetNetworkManager} from './NetworkManager.js';
@@ -12,6 +13,7 @@ import {SDKModel} from './SDKModel.js';
12
13
  import {
13
14
  avifFormatDisabledSettingDescriptor,
14
15
  cpuPressureSettingDescriptor,
16
+ dataSaverSettingDescriptor,
15
17
  emulateAutoDarkModeSettingDescriptor,
16
18
  emulatedCSSMediaFeatureColorGamutSettingDescriptor,
17
19
  emulatedCSSMediaFeatureForcedColorsSettingDescriptor,
@@ -56,6 +58,8 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
56
58
  };
57
59
  #screenOrientationLocked: boolean;
58
60
  #lockedOrientation: Protocol.Emulation.ScreenOrientation|null;
61
+ readonly #dataSaverSetting: Common.Settings.Setting<DataSaverOverride>;
62
+ readonly #dataSaverChangeListener: () => void;
59
63
 
60
64
  constructor(target: Target) {
61
65
  super(target);
@@ -239,6 +243,15 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
239
243
  updateDisabledImageFormats();
240
244
  }
241
245
 
246
+ this.#dataSaverSetting = settings.resolve(dataSaverSettingDescriptor);
247
+ this.#dataSaverChangeListener = () => {
248
+ void this.setDataSaverOverride(this.#dataSaverSetting.get());
249
+ };
250
+ this.#dataSaverSetting.addChangeListener(this.#dataSaverChangeListener, this);
251
+ if (this.#dataSaverSetting.get() !== DataSaverOverride.UNSET) {
252
+ void this.setDataSaverOverride(this.#dataSaverSetting.get());
253
+ }
254
+
242
255
  this.#cpuPressureEnabled = false;
243
256
  this.#touchEmulationAllowed = true;
244
257
  this.#touchEnabled = false;
@@ -251,6 +264,11 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
251
264
  target.registerEmulationDispatcher(this);
252
265
  }
253
266
 
267
+ override dispose(): void {
268
+ super.dispose();
269
+ this.#dataSaverSetting.removeChangeListener(this.#dataSaverChangeListener, this);
270
+ }
271
+
254
272
  setTouchEmulationAllowed(touchEmulationAllowed: boolean): void {
255
273
  this.#touchEmulationAllowed = touchEmulationAllowed;
256
274
  }
@@ -426,6 +444,11 @@ export class EmulationModel extends SDKModel<EmulationModelEventTypes> implement
426
444
  await this.#emulationAgent.invoke_setHardwareConcurrencyOverride({hardwareConcurrency});
427
445
  }
428
446
 
447
+ async setCPUPerformanceOverride(performanceTier?: Protocol.Emulation.SetCPUPerformanceOverrideRequestPerformanceTier):
448
+ Promise<void> {
449
+ await this.#emulationAgent.invoke_setCPUPerformanceOverride({performanceTier});
450
+ }
451
+
429
452
  async emulateTouch(enabled: boolean, mobile: boolean): Promise<void> {
430
453
  this.#touchEnabled = enabled && this.#touchEmulationAllowed;
431
454
  this.#touchMobile = mobile && this.#touchEmulationAllowed;
@@ -86,7 +86,7 @@ export class StickyPositionConstraint {
86
86
  export class LayerTreeBase {
87
87
  readonly #target: Target|null;
88
88
  #domModel: DOMModel|null;
89
- layersById = new Map<string|number, Layer>();
89
+ layersById: Map<string|number, Layer> = new Map<string|number, Layer>();
90
90
  #root: Layer|null = null;
91
91
  #contentRoot: Layer|null = null;
92
92
  readonly #backendNodeIdToNode = new Map<Protocol.DOM.BackendNodeId, DOMNode|null>();
@@ -2202,7 +2202,7 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
2202
2202
  #userAgentMetadataOverride: Protocol.Emulation.UserAgentMetadata|null = null;
2203
2203
  readonly #networkAgents = new Set<ProtocolProxyApi.NetworkApi>();
2204
2204
  readonly #fetchAgents = new Set<ProtocolProxyApi.FetchApi>();
2205
- readonly inflightMainResourceRequests = new Map<string, NetworkRequest>();
2205
+ readonly inflightMainResourceRequests: Map<string, NetworkRequest> = new Map<string, NetworkRequest>();
2206
2206
  #networkConditions: Conditions = NoThrottlingConditions;
2207
2207
  #updatingInterceptionPatternsPromise: Promise<void>|null = null;
2208
2208
  readonly #requestConditions: RequestConditions;
@@ -0,0 +1,40 @@
1
+ # Core SDK
2
+
3
+ The **Core SDK** (`front_end/core/sdk/`) is DevTools' foundational data access layer wrapping the [Chrome DevTools Protocol (CDP)](https://chromedevtools.github.io/devtools-protocol/). It creates typed data access objects and models for CDP structures, abstracting away low-level JSON-RPC commands and events into developer-friendly APIs.
4
+
5
+ ---
6
+
7
+ ## Architectural Principles
8
+
9
+ ### 1. Single CDP Domain Responsibility
10
+ Each SDK model and data object encapsulates data and operations from a **single CDP domain** (e.g., `DOM`, `CSS`, `Network`, `Debugger`, `Audits`).
11
+
12
+ ### 2. Cross-Domain Separation (What to Avoid)
13
+ Data from multiple CDP domains must be joined **outside** of `core/sdk`, typically in `front_end/models/` (such as `models/bindings/`, `models/issues_manager/`, or `models/trace/`).
14
+
15
+ #### ❌ Anti-pattern: Cross-domain getters on SDK objects
16
+ Do **not** add methods or getters to an SDK data object that fetch or resolve data from another CDP domain.
17
+
18
+ ```ts
19
+ // ❌ BAD: DOMNode (DOM domain) must not reference Network or Audits domains directly.
20
+ class DOMNode {
21
+ // Violates single-domain boundary:
22
+ getNetworkRequest(): SDK.NetworkRequest.NetworkRequest|null {
23
+ // ...
24
+ }
25
+
26
+ // Violates single-domain boundary:
27
+ getIssues(): IssuesModel.Issue[] {
28
+ // ...
29
+ }
30
+ }
31
+ ```
32
+
33
+ #### ✅ Best Practice: Aggregate in `models/`
34
+ Keep `DOMNode` strictly focused on the DOM domain, and correlate cross-domain data in a higher-level model or service:
35
+
36
+ ```ts
37
+ // ✅ GOOD: A higher-level model in models/ joins DOM and Audits/Network data.
38
+ // In front_end/models/issues_manager/ or similar:
39
+ const issues = issuesManager.issuesForNode(domNode);
40
+ ```