chrome-devtools-frontend 1.0.1683520 → 1.0.1689415

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 (661) 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/AUTHORS +1 -0
  6. package/config/typescript/tsconfig.base.json +1 -0
  7. package/config/typescript/tsconfig.eslint.json +9 -0
  8. package/docs/contributing/issues.md +1 -1
  9. package/docs/styleguide/ux/writing.md +2 -2
  10. package/eslint.config.mjs +18 -10
  11. package/front_end/core/common/Base64.ts +1 -1
  12. package/front_end/core/common/Color.ts +28 -6
  13. package/front_end/core/common/ColorConverter.ts +12 -0
  14. package/front_end/core/common/Console.ts +2 -1
  15. package/front_end/core/common/Object.ts +2 -2
  16. package/front_end/core/common/ResourceType.ts +12 -13
  17. package/front_end/core/common/Revealer.ts +1 -1
  18. package/front_end/core/common/Settings.ts +2 -2
  19. package/front_end/core/common/TextDictionary.ts +2 -2
  20. package/front_end/core/common/Throttler.ts +1 -1
  21. package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -2
  22. package/front_end/core/host/UserMetrics.ts +51 -37
  23. package/front_end/core/host/host.ts +1 -1
  24. package/front_end/core/i18n/i18nImpl.ts +1 -1
  25. package/front_end/core/platform/HostRuntime.ts +3 -3
  26. package/front_end/core/platform/KeyboardUtilities.ts +1 -1
  27. package/front_end/core/protocol_client/InspectorBackend.ts +7 -6
  28. package/front_end/core/root/Runtime.ts +4 -2
  29. package/front_end/core/sdk/AnimationModel.ts +1 -1
  30. package/front_end/core/sdk/CPUThrottlingManager.ts +198 -0
  31. package/front_end/core/sdk/CSSMetadata.ts +11 -6
  32. package/front_end/core/sdk/CSSPropertyParser.ts +5 -3
  33. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +90 -59
  34. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  35. package/front_end/core/sdk/DOMModel.ts +3 -3
  36. package/front_end/core/sdk/DebuggerModel.ts +1 -1
  37. package/front_end/core/sdk/EmulationModel.ts +5 -0
  38. package/front_end/core/sdk/LayerTreeBase.ts +1 -1
  39. package/front_end/core/sdk/NetworkManager.ts +1 -1
  40. package/front_end/core/sdk/README.md +40 -0
  41. package/front_end/core/sdk/RehydratingConnection.ts +1 -1
  42. package/front_end/core/sdk/RemoteObject.ts +1 -1
  43. package/front_end/core/sdk/ResourceTreeModel.ts +2 -2
  44. package/front_end/core/sdk/SDKModel.ts +1 -1
  45. package/front_end/core/sdk/SDKSettings.ts +6 -0
  46. package/front_end/core/sdk/Script.ts +2 -1
  47. package/front_end/core/sdk/SecurityOrigin.ts +48 -0
  48. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +0 -7
  49. package/front_end/core/sdk/ServiceWorkerManager.ts +75 -17
  50. package/front_end/core/sdk/StorageBucketsModel.ts +0 -6
  51. package/front_end/core/sdk/sdk.ts +2 -0
  52. package/front_end/core/text_utils/ContentData.ts +1 -1
  53. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +3 -1
  54. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -1
  55. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +2 -2
  56. package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
  57. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
  58. package/front_end/entrypoints/inspector_main/InspectorMain.ts +1 -1
  59. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +1 -1
  60. package/front_end/entrypoints/inspector_main/nodeIcon.css +1 -1
  61. package/front_end/entrypoints/inspector_main/outermostTargetSelector.css +3 -3
  62. package/front_end/entrypoints/inspector_main/renderingOptions.css +3 -3
  63. package/front_end/entrypoints/js_app/js_app.ts +25 -9
  64. package/front_end/entrypoints/main/MainImpl.ts +2 -1
  65. package/front_end/entrypoints/main/main-meta.ts +5 -31
  66. package/front_end/entrypoints/node_app/app/nodeConnectionsPanel.css +5 -5
  67. package/front_end/entrypoints/node_app/node_app.ts +1 -1
  68. package/front_end/foundation/Universe.ts +7 -0
  69. package/front_end/generated/ARIAProperties.ts +39 -1
  70. package/front_end/generated/InspectorBackendCommands.ts +13 -22
  71. package/front_end/generated/SupportedCSSProperties.ts +60 -119
  72. package/front_end/generated/protocol-mapping.d.ts +18 -59
  73. package/front_end/generated/protocol-proxy-api.d.ts +14 -47
  74. package/front_end/generated/protocol.ts +104 -331
  75. package/front_end/models/ai_assistance/AiAgent2.ts +25 -11
  76. package/front_end/models/ai_assistance/AiConversation.ts +23 -14
  77. package/front_end/models/ai_assistance/AiHistoryStorage.ts +2 -2
  78. package/front_end/models/ai_assistance/AiUtils.ts +16 -0
  79. package/front_end/models/ai_assistance/EvaluateAction.ts +1 -1
  80. package/front_end/models/ai_assistance/README.md +1 -1
  81. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +2 -3
  82. package/front_end/models/ai_assistance/agents/AiAgent.ts +40 -25
  83. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +4 -3
  84. package/front_end/models/ai_assistance/agents/FileAgent.ts +2 -2
  85. package/front_end/models/ai_assistance/agents/NetworkAgent.ts +2 -2
  86. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +1 -1
  87. package/front_end/models/ai_assistance/agents/StorageAgent.ts +13 -11
  88. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -2
  89. package/front_end/models/ai_assistance/agents/StylingAgent.ts +9 -7
  90. package/front_end/models/ai_assistance/ai_assistance.ts +12 -0
  91. package/front_end/models/ai_assistance/contexts/AccessibilityContext.ts +16 -1
  92. package/front_end/models/ai_assistance/contexts/FileContext.ts +6 -0
  93. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +150 -325
  94. package/front_end/models/ai_assistance/injected.ts +5 -3
  95. package/front_end/models/ai_assistance/performance/AIContext.ts +1 -1
  96. package/front_end/models/ai_assistance/skills/README.md +1 -1
  97. package/front_end/models/ai_assistance/skills/accessibility.md +19 -10
  98. package/front_end/models/ai_assistance/skills/network.md +13 -7
  99. package/front_end/models/ai_assistance/skills/performance.md +22 -16
  100. package/front_end/models/ai_assistance/skills/sources.md +13 -7
  101. package/front_end/models/ai_assistance/skills/storage.md +19 -18
  102. package/front_end/models/ai_assistance/skills/styling.md +30 -37
  103. package/front_end/models/ai_assistance/tools/CookieUtils.ts +120 -0
  104. package/front_end/models/ai_assistance/tools/DOMStorageUtils.ts +53 -4
  105. package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +8 -32
  106. package/front_end/models/ai_assistance/tools/GetCookieValues.ts +146 -0
  107. package/front_end/models/ai_assistance/tools/GetDetailedCallTree.ts +11 -9
  108. package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +17 -5
  109. package/front_end/models/ai_assistance/tools/GetFunctionCode.ts +12 -11
  110. package/front_end/models/ai_assistance/tools/GetInsightDetails.ts +11 -11
  111. package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +15 -8
  112. package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +3 -3
  113. package/front_end/models/ai_assistance/tools/GetResourceContent.ts +12 -12
  114. package/front_end/models/ai_assistance/tools/GetSourceContent.ts +3 -2
  115. package/front_end/models/ai_assistance/tools/GetStorageBreakdown.ts +132 -0
  116. package/front_end/models/ai_assistance/tools/GetStorageValues.ts +18 -5
  117. package/front_end/models/ai_assistance/tools/GetStyles.ts +3 -3
  118. package/front_end/models/ai_assistance/tools/GetTraceEventByKey.ts +9 -8
  119. package/front_end/models/ai_assistance/tools/GetTraceMainThreadSummary.ts +13 -14
  120. package/front_end/models/ai_assistance/tools/GetTraceNetworkSummary.ts +12 -10
  121. package/front_end/models/ai_assistance/tools/ListCookies.ts +93 -0
  122. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +15 -6
  123. package/front_end/models/ai_assistance/tools/ListPageOrigins.ts +3 -3
  124. package/front_end/models/ai_assistance/tools/ListSources.ts +5 -3
  125. package/front_end/models/ai_assistance/tools/ListStorageKeys.ts +17 -5
  126. package/front_end/models/ai_assistance/tools/RecordPerformanceTrace.ts +3 -2
  127. package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +4 -3
  128. package/front_end/models/ai_assistance/tools/RunLighthouse.ts +14 -17
  129. package/front_end/models/ai_assistance/tools/SelectTraceEventByKey.ts +9 -8
  130. package/front_end/models/ai_assistance/tools/Tool.ts +36 -13
  131. package/front_end/models/ai_assistance/tools/ToolRegistry.ts +41 -8
  132. package/front_end/models/badges/AiExplorerBadge.ts +3 -3
  133. package/front_end/models/badges/CodeWhispererBadge.ts +2 -2
  134. package/front_end/models/badges/DOMDetectiveBadge.ts +3 -3
  135. package/front_end/models/badges/SpeedsterBadge.ts +3 -3
  136. package/front_end/models/badges/StarterBadge.ts +4 -4
  137. package/front_end/models/bindings/CompilerScriptMapping.ts +11 -2
  138. package/front_end/models/bindings/ContentProviderBasedProject.ts +3 -2
  139. package/front_end/models/breakpoints/BreakpointManager.ts +1 -1
  140. package/front_end/models/emulation/EmulatedDevices.ts +2 -2
  141. package/front_end/models/formatter/FormatterWorkerPool.ts +2 -2
  142. package/front_end/models/formatter/ScriptFormatter.ts +1 -2
  143. package/front_end/models/geometry/GeometryImpl.ts +2 -2
  144. package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +1 -1
  145. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +3 -2
  146. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -5
  147. package/front_end/models/issues_manager/DOMIssuesManager.ts +144 -0
  148. package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +13 -1
  149. package/front_end/models/issues_manager/GenericIssue.ts +32 -20
  150. package/front_end/models/issues_manager/IssuesManager.ts +0 -1
  151. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
  152. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  153. package/front_end/models/javascript_metadata/{NativeFunctions.js → NativeFunctions.ts} +29 -9
  154. package/front_end/models/live-metrics/LiveMetrics.ts +9 -3
  155. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +58 -6
  156. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +2 -62
  157. package/front_end/models/network_time_calculator/RequestTimeRanges.ts +2 -2
  158. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
  159. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
  160. package/front_end/models/persistence/NetworkPersistenceManager.ts +35 -6
  161. package/front_end/models/stack_trace/StackTraceImpl.ts +2 -2
  162. package/front_end/models/trace/LanternComputationData.ts +2 -3
  163. package/front_end/models/trace/extras/StackTraceForEvent.ts +3 -2
  164. package/front_end/models/trace/extras/ThirdParties.ts +9 -9
  165. package/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +7 -4
  166. package/front_end/models/trace/handlers/FramesHandler.ts +3 -3
  167. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +2 -2
  168. package/front_end/models/trace/handlers/SamplesHandler.ts +4 -2
  169. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +1 -1
  170. package/front_end/models/trace/handlers/WarningsHandler.ts +2 -2
  171. package/front_end/models/trace/helpers/Network.ts +3 -3
  172. package/front_end/models/trace/helpers/Trace.ts +1 -1
  173. package/front_end/models/trace/insights/CLSCulprits.ts +2 -1
  174. package/front_end/models/trace/insights/Cache.ts +3 -1
  175. package/front_end/models/trace/insights/CharacterSet.ts +3 -1
  176. package/front_end/models/trace/insights/DOMSize.ts +3 -1
  177. package/front_end/models/trace/insights/DocumentLatency.ts +3 -1
  178. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -1
  179. package/front_end/models/trace/insights/FontDisplay.ts +2 -1
  180. package/front_end/models/trace/insights/ForcedReflow.ts +2 -1
  181. package/front_end/models/trace/insights/INPBreakdown.ts +3 -1
  182. package/front_end/models/trace/insights/ImageDelivery.ts +3 -1
  183. package/front_end/models/trace/insights/LCPBreakdown.ts +3 -1
  184. package/front_end/models/trace/insights/LCPDiscovery.ts +3 -1
  185. package/front_end/models/trace/insights/LegacyJavaScript.ts +3 -1
  186. package/front_end/models/trace/insights/ModernHTTP.ts +2 -1
  187. package/front_end/models/trace/insights/NetworkDependencyTree.ts +2 -1
  188. package/front_end/models/trace/insights/RenderBlocking.ts +5 -4
  189. package/front_end/models/trace/insights/SlowCSSSelector.ts +3 -1
  190. package/front_end/models/trace/insights/ThirdParties.ts +5 -3
  191. package/front_end/models/trace/insights/Viewport.ts +2 -1
  192. package/front_end/models/trace/lantern/simulation/Constants.ts +34 -2
  193. package/front_end/models/trace/lantern/simulation/DNSCache.ts +1 -1
  194. package/front_end/models/trace/types/TraceEvents.ts +8 -3
  195. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +2 -1
  196. package/front_end/models/workspace/WorkspaceImpl.ts +18 -2
  197. package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingView.ts +686 -2
  198. package/front_end/panels/accessibility/accessibilityNode.css +4 -4
  199. package/front_end/panels/accessibility/accessibilityProperties.css +1 -1
  200. package/front_end/panels/accessibility/accessibilitySidebarView.css +2 -2
  201. package/front_end/panels/accessibility/axBreadcrumbs.css +13 -13
  202. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +14 -14
  203. package/front_end/panels/ai_assistance/ExternalHandler.ts +89 -0
  204. package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -1
  205. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  206. package/front_end/panels/ai_assistance/components/ChatInput.ts +3 -2
  207. package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
  208. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +1 -1
  209. package/front_end/panels/ai_assistance/components/ExploreWidget.ts +1 -1
  210. package/front_end/panels/ai_assistance/components/chatInput.css +12 -12
  211. package/front_end/panels/ai_assistance/components/chatMessage.css +16 -16
  212. package/front_end/panels/ai_assistance/components/chatView.css +2 -2
  213. package/front_end/panels/ai_assistance/components/exploreWidget.css +1 -1
  214. package/front_end/panels/ai_assistance/components/exportForAgentsDialog.css +4 -0
  215. package/front_end/panels/ai_assistance/components/walkthroughView.css +6 -6
  216. package/front_end/panels/animation/animationTimeline.css +62 -62
  217. package/front_end/panels/application/ApplicationPanelSidebar.ts +6 -1
  218. package/front_end/panels/application/BackgroundServiceModel.ts +4 -3
  219. package/front_end/panels/application/BackgroundServiceView.ts +290 -252
  220. package/front_end/panels/application/IndexedDBModel.ts +0 -7
  221. package/front_end/panels/application/WebMCPView.ts +15 -7
  222. package/front_end/panels/application/appManifestView.css +5 -5
  223. package/front_end/panels/application/backgroundServiceView.css +18 -2
  224. package/front_end/panels/application/components/AdsView.ts +100 -4
  225. package/front_end/panels/application/components/adsView.css +8 -5
  226. package/front_end/panels/application/components/backForwardCacheView.css +5 -5
  227. package/front_end/panels/application/components/bounceTrackingMitigationsView.css +1 -1
  228. package/front_end/panels/application/components/endpointsGrid.css +1 -1
  229. package/front_end/panels/application/components/permissionsPolicySection.css +1 -1
  230. package/front_end/panels/application/components/protocolHandlersView.css +6 -6
  231. package/front_end/panels/application/components/reportsGrid.css +1 -1
  232. package/front_end/panels/application/components/serviceWorkerRouterView.css +4 -4
  233. package/front_end/panels/application/components/trustTokensView.css +7 -7
  234. package/front_end/panels/application/cookieItemsView.css +3 -3
  235. package/front_end/panels/application/deviceBoundSessionsView.css +3 -3
  236. package/front_end/panels/application/frameDetailsReportView.css +11 -11
  237. package/front_end/panels/application/indexedDBViews.css +7 -7
  238. package/front_end/panels/application/originTrialTokenRows.css +2 -2
  239. package/front_end/panels/application/originTrialTreeView.css +3 -3
  240. package/front_end/panels/application/preloading/components/RuleSetDetailsView.css +2 -2
  241. package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +1 -1
  242. package/front_end/panels/application/preloading/components/preloadingDisabledInfobar.css +2 -2
  243. package/front_end/panels/application/preloading/components/preloadingGrid.css +2 -2
  244. package/front_end/panels/application/preloading/components/usedPreloadingView.css +7 -7
  245. package/front_end/panels/application/preloading/preloadingView.css +1 -1
  246. package/front_end/panels/application/preloading/preloadingViewDropDown.css +3 -3
  247. package/front_end/panels/application/serviceWorkerCacheViews.css +5 -5
  248. package/front_end/panels/application/serviceWorkerUpdateCycleView.css +12 -12
  249. package/front_end/panels/application/serviceWorkersView.css +15 -16
  250. package/front_end/panels/application/storageView.css +5 -5
  251. package/front_end/panels/application/webMCPView.css +9 -9
  252. package/front_end/panels/autofill/autofillView.css +4 -4
  253. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +4 -4
  254. package/front_end/panels/browser_debugger/domBreakpointsSidebarPane.css +5 -3
  255. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +4 -4
  256. package/front_end/panels/changes/changesSidebar.css +1 -1
  257. package/front_end/panels/changes/changesView.css +1 -1
  258. package/front_end/panels/changes/combinedDiffView.css +1 -1
  259. package/front_end/panels/common/CPUThrottlingOption.ts +5 -10
  260. package/front_end/panels/common/badgeNotification.css +2 -2
  261. package/front_end/panels/common/domLinkifier.css +1 -1
  262. package/front_end/panels/common/gdpSignUpDialog.css +3 -3
  263. package/front_end/panels/common/geminiRebrandPromoDialog.css +1 -1
  264. package/front_end/panels/console/ConsolePrompt.ts +6 -3
  265. package/front_end/panels/console/ConsoleView.ts +23 -19
  266. package/front_end/panels/console/ConsoleViewMessage.ts +7 -2
  267. package/front_end/panels/console/console-meta.ts +9 -43
  268. package/front_end/panels/console/consoleContextSelector.css +2 -2
  269. package/front_end/panels/console/consolePinPane.css +9 -9
  270. package/front_end/panels/console/consolePrompt.css +5 -5
  271. package/front_end/panels/console/consoleView.css +39 -39
  272. package/front_end/panels/coverage/coverageListView.css +2 -2
  273. package/front_end/panels/css_overview/cssOverviewCompletedView.css +34 -34
  274. package/front_end/panels/css_overview/cssOverviewProcessingView.css +5 -5
  275. package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +1 -1
  276. package/front_end/panels/css_overview/cssOverviewStartView.css +17 -17
  277. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +209 -62
  278. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +4 -4
  279. package/front_end/panels/elements/DOMTreeContextMenu.ts +59 -54
  280. package/front_end/panels/elements/ElementIssueUtils.ts +10 -2
  281. package/front_end/panels/elements/ElementsPanel.ts +5 -2
  282. package/front_end/panels/elements/ElementsTreeElement.ts +212 -255
  283. package/front_end/panels/elements/ElementsTreeOutline.ts +1804 -495
  284. package/front_end/panels/elements/ShortcutTreeElement.ts +6 -3
  285. package/front_end/panels/elements/StandaloneStylesContainer.ts +5 -11
  286. package/front_end/panels/elements/StylePropertiesSection.ts +65 -8
  287. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -0
  288. package/front_end/panels/elements/StylesContainer.ts +1 -0
  289. package/front_end/panels/elements/StylesSidebarPane.ts +317 -159
  290. package/front_end/panels/elements/classesPaneWidget.css +6 -6
  291. package/front_end/panels/elements/components/stylePropertyEditor.css +7 -7
  292. package/front_end/panels/elements/computedStyleWidget.css +1 -1
  293. package/front_end/panels/elements/elementStatePaneWidget.css +8 -8
  294. package/front_end/panels/elements/elements-meta.ts +14 -0
  295. package/front_end/panels/elements/elementsPanel.css +4 -4
  296. package/front_end/panels/elements/elementsTreeOutline.css +222 -38
  297. package/front_end/panels/elements/layersWidget.css +4 -4
  298. package/front_end/panels/elements/layoutPane.css +18 -18
  299. package/front_end/panels/elements/metricsSidebarPane.css +11 -11
  300. package/front_end/panels/elements/platformFontsWidget.css +5 -5
  301. package/front_end/panels/elements/propertiesWidget.css +2 -2
  302. package/front_end/panels/elements/stylePropertiesTreeOutline.css +20 -20
  303. package/front_end/panels/elements/stylesSidebarPane.css +37 -20
  304. package/front_end/panels/emulation/deviceModeView.css +49 -49
  305. package/front_end/panels/emulation/mediaQueryInspector.css +18 -18
  306. package/front_end/panels/event_listeners/eventListenersView.css +1 -1
  307. package/front_end/panels/explain/components/consoleInsight.css +29 -29
  308. package/front_end/panels/issues/components/elementsPanelLink.css +2 -2
  309. package/front_end/panels/issues/components/hideIssuesMenu.css +1 -1
  310. package/front_end/panels/issues/issuesPane.css +2 -2
  311. package/front_end/panels/issues/issuesTree.css +50 -50
  312. package/front_end/panels/layer_viewer/Layers3DView.ts +9 -10
  313. package/front_end/panels/layer_viewer/layerDetailsView.css +1 -1
  314. package/front_end/panels/layer_viewer/layerTreeOutline.css +2 -2
  315. package/front_end/panels/layer_viewer/layers3DView.css +1 -1
  316. package/front_end/panels/layer_viewer/paintProfiler.css +1 -1
  317. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +2 -2
  318. package/front_end/panels/media/playerListView.css +9 -9
  319. package/front_end/panels/media/playerMessagesView.css +8 -8
  320. package/front_end/panels/media/playerPropertiesView.css +6 -6
  321. package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +1 -1
  322. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +9 -9
  323. package/front_end/panels/network/NetworkDataGridNode.ts +1 -0
  324. package/front_end/panels/network/NetworkPanel.ts +9 -4
  325. package/front_end/panels/network/RequestConditionsDrawer.ts +12 -12
  326. package/front_end/panels/network/RequestPayloadView.ts +78 -26
  327. package/front_end/panels/network/binaryResourceView.css +1 -1
  328. package/front_end/panels/network/components/EditableSpan.css +3 -3
  329. package/front_end/panels/network/components/HeaderSectionRow.css +14 -14
  330. package/front_end/panels/network/components/RequestHeaderSection.css +7 -7
  331. package/front_end/panels/network/components/RequestHeadersView.css +18 -18
  332. package/front_end/panels/network/components/RequestTrustTokensView.css +1 -1
  333. package/front_end/panels/network/network-meta.ts +9 -9
  334. package/front_end/panels/network/networkConfigView.css +11 -11
  335. package/front_end/panels/network/networkLogView.css +35 -35
  336. package/front_end/panels/network/networkManageCustomHeadersView.css +1 -1
  337. package/front_end/panels/network/networkPanel.css +7 -7
  338. package/front_end/panels/network/networkTimingTable.css +13 -13
  339. package/front_end/panels/network/requestConditionsDrawer.css +4 -4
  340. package/front_end/panels/network/requestCookiesView.css +5 -5
  341. package/front_end/panels/network/requestDeviceBoundSessionsView.css +1 -1
  342. package/front_end/panels/network/requestHTMLView.css +1 -1
  343. package/front_end/panels/network/requestHeadersTree.css +19 -19
  344. package/front_end/panels/network/requestInitiatorView.css +1 -1
  345. package/front_end/panels/network/requestInitiatorViewTree.css +3 -3
  346. package/front_end/panels/network/requestPayloadTree.css +5 -5
  347. package/front_end/panels/network/requestPayloadView.css +1 -1
  348. package/front_end/panels/network/resourceChunkView.css +3 -3
  349. package/front_end/panels/network/signedExchangeInfoTree.css +6 -6
  350. package/front_end/panels/profiler/heapProfiler.css +15 -15
  351. package/front_end/panels/profiler/profileLauncherView.css +10 -10
  352. package/front_end/panels/recorder/RecordingView.ts +1 -1
  353. package/front_end/panels/recorder/StepEditor.ts +86 -7
  354. package/front_end/panels/recorder/TimelineSection.ts +2 -1
  355. package/front_end/panels/recorder/createRecordingView.css +17 -17
  356. package/front_end/panels/recorder/extensionView.css +5 -5
  357. package/front_end/panels/recorder/injected/RecordingClient.ts +1 -1
  358. package/front_end/panels/recorder/models/SchemaUtils.ts +2 -2
  359. package/front_end/panels/recorder/models/ScreenshotStorage.ts +1 -1
  360. package/front_end/panels/recorder/recorderPanel.css +7 -7
  361. package/front_end/panels/recorder/recordingListView.css +12 -12
  362. package/front_end/panels/recorder/recordingView.css +47 -47
  363. package/front_end/panels/recorder/stepEditor.css +2 -2
  364. package/front_end/panels/recorder/stepView.css +20 -20
  365. package/front_end/panels/recorder/timelineSection.css +9 -9
  366. package/front_end/panels/screencast/screencastView.css +12 -12
  367. package/front_end/panels/search/searchResultsPane.css +10 -10
  368. package/front_end/panels/search/searchView.css +9 -9
  369. package/front_end/panels/security/SecurityPanel.ts +84 -54
  370. package/front_end/panels/security/SecurityPanelSidebar.ts +0 -32
  371. package/front_end/panels/security/mainView.css +26 -26
  372. package/front_end/panels/security/originView.css +15 -15
  373. package/front_end/panels/sensors/locationsSettingsTab.css +6 -6
  374. package/front_end/panels/sensors/sensors.css +28 -28
  375. package/front_end/panels/settings/KeybindsSettingsTab.ts +5 -2
  376. package/front_end/panels/settings/components/syncSection.css +5 -5
  377. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +13 -13
  378. package/front_end/panels/settings/emulation/devicesSettingsTab.css +16 -16
  379. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +2 -2
  380. package/front_end/panels/settings/keybindsSettingsTab.css +2 -2
  381. package/front_end/panels/settings/settingsScreen.css +5 -5
  382. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  383. package/front_end/panels/sources/breakpointEditDialog.css +9 -9
  384. package/front_end/panels/sources/breakpointsView.css +25 -25
  385. package/front_end/panels/sources/callStackSidebarPane.css +10 -10
  386. package/front_end/panels/sources/components/HeadersView.css +6 -6
  387. package/front_end/panels/sources/debuggerPausedMessage.css +4 -4
  388. package/front_end/panels/sources/dialog.css +2 -2
  389. package/front_end/panels/sources/navigatorTree.css +2 -2
  390. package/front_end/panels/sources/navigatorView.css +2 -2
  391. package/front_end/panels/sources/scopeChainSidebarPane.css +1 -1
  392. package/front_end/panels/sources/sourcesNavigator.css +1 -1
  393. package/front_end/panels/sources/sourcesPanel.css +2 -2
  394. package/front_end/panels/sources/sourcesView.css +1 -1
  395. package/front_end/panels/sources/threadsSidebarPane.css +5 -5
  396. package/front_end/panels/sources/watchExpressionsSidebarPane.css +8 -8
  397. package/front_end/panels/timeline/TimelineDetailsView.ts +9 -21
  398. package/front_end/panels/timeline/TimelineFlameChartView.ts +3 -5
  399. package/front_end/panels/timeline/TimelineMiniMap.ts +3 -3
  400. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +2 -6
  401. package/front_end/panels/timeline/components/CWVMetrics.ts +9 -10
  402. package/front_end/panels/timeline/components/DetailsView.ts +12 -16
  403. package/front_end/panels/timeline/components/ExportTraceOptions.ts +13 -13
  404. package/front_end/panels/timeline/components/FieldSettingsDialog.ts +19 -19
  405. package/front_end/panels/timeline/components/IgnoreListSetting.ts +7 -9
  406. package/front_end/panels/timeline/components/InteractionBreakdown.ts +3 -3
  407. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +13 -13
  408. package/front_end/panels/timeline/components/LiveMetricsView.ts +65 -65
  409. package/front_end/panels/timeline/components/MetricCard.ts +25 -25
  410. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +22 -22
  411. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +9 -9
  412. package/front_end/panels/timeline/components/OriginMap.ts +7 -7
  413. package/front_end/panels/timeline/components/RelatedInsightChips.ts +2 -2
  414. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +19 -20
  415. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
  416. package/front_end/panels/timeline/components/TimelineSummary.ts +2 -2
  417. package/front_end/panels/timeline/components/Utils.ts +2 -6
  418. package/front_end/panels/timeline/components/breadcrumbsUI.css +3 -3
  419. package/front_end/panels/timeline/components/exportTraceOptions.css +1 -1
  420. package/front_end/panels/timeline/components/fieldSettingsDialog.css +13 -13
  421. package/front_end/panels/timeline/components/ignoreListSetting.css +3 -3
  422. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +6 -9
  423. package/front_end/panels/timeline/components/insights/Checklist.ts +2 -2
  424. package/front_end/panels/timeline/components/insights/Table.ts +1 -1
  425. package/front_end/panels/timeline/components/liveMetricsView.css +39 -39
  426. package/front_end/panels/timeline/components/metricCard.css +20 -20
  427. package/front_end/panels/timeline/components/networkRequestDetails.css +9 -9
  428. package/front_end/panels/timeline/components/networkRequestTooltip.css +14 -14
  429. package/front_end/panels/timeline/components/networkTrackWidget.css +2 -2
  430. package/front_end/panels/timeline/components/originMap.css +4 -4
  431. package/front_end/panels/timeline/components/relatedInsightChips.css +1 -1
  432. package/front_end/panels/timeline/components/sidebarAnnotationsTab.css +4 -4
  433. package/front_end/panels/timeline/components/sidebarInsightsTab.css +5 -5
  434. package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +1 -1
  435. package/front_end/panels/timeline/components/timelineSummary.css +4 -4
  436. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +4 -4
  437. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  438. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +6 -6
  439. package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +1 -1
  440. package/front_end/panels/timeline/thirdPartyTreeView.css +5 -5
  441. package/front_end/panels/timeline/timeline-meta.ts +0 -6
  442. package/front_end/panels/timeline/timelineDetailsView.css +11 -11
  443. package/front_end/panels/timeline/timelinePanel.css +20 -20
  444. package/front_end/panels/timeline/timelineTreeView.css +8 -8
  445. package/front_end/panels/webauthn/webauthnPane.css +6 -6
  446. package/front_end/panels/whats_new/ReleaseNoteText.ts +2 -2
  447. package/front_end/third_party/chromium/README.chromium +1 -1
  448. package/front_end/third_party/i18n/i18n-impl.ts +1 -1
  449. package/front_end/third_party/puppeteer/README.chromium +2 -2
  450. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +15 -1
  451. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +42 -8
  452. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.d.ts +4 -0
  453. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.d.ts.map +1 -1
  454. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +15 -2
  455. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
  456. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts +14 -1
  457. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  458. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js +23 -1
  459. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
  460. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
  461. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
  462. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
  463. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
  464. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.d.ts.map +1 -1
  465. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.js +77 -6
  466. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.js.map +1 -1
  467. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
  468. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
  469. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js.map +1 -1
  470. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  471. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  472. package/front_end/third_party/puppeteer/package/lib/types.d.ts +15 -1
  473. package/front_end/third_party/puppeteer/package/package.json +2 -2
  474. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +16 -2
  475. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +36 -1
  476. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  477. package/front_end/third_party/puppeteer/package/src/injected/Poller.ts +86 -6
  478. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  479. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  480. package/front_end/third_party/web-vitals/README.chromium +2 -2
  481. package/front_end/third_party/web-vitals/package/README.md +22 -7
  482. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +6 -2
  483. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +2 -2
  484. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +30 -3
  485. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +14 -0
  486. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +19 -13
  487. package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.d.ts +1 -1
  488. package/front_end/third_party/web-vitals/package/dist/modules/lib/doubleRAF.js +1 -1
  489. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +3 -3
  490. package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.js +3 -1
  491. package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +15 -1
  492. package/front_end/third_party/web-vitals/package/package.json +1 -2
  493. package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +9 -2
  494. package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +36 -5
  495. package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +21 -15
  496. package/front_end/third_party/web-vitals/package/src/lib/doubleRAF.ts +1 -1
  497. package/front_end/third_party/web-vitals/package/src/lib/softNavs.ts +4 -1
  498. package/front_end/third_party/web-vitals/package/src/types/lcp.ts +16 -1
  499. package/front_end/third_party/web-vitals/rebuild.sh +3 -3
  500. package/front_end/ui/comments/CommentAnchorResolver.ts +109 -4
  501. package/front_end/ui/comments/CommentOverlayManager.ts +16 -32
  502. package/front_end/ui/comments/commentsOverlay.css +6 -5
  503. package/front_end/ui/components/adorners/Adorner.ts +1 -1
  504. package/front_end/ui/components/adorners/adorner.css +6 -6
  505. package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
  506. package/front_end/ui/components/buttons/button.css +9 -9
  507. package/front_end/ui/components/buttons/floatingButton.css +2 -2
  508. package/front_end/ui/components/buttons/textButton.css +12 -12
  509. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  510. package/front_end/ui/components/dialogs/dialog.css +1 -1
  511. package/front_end/ui/components/diff_view/diffView.css +3 -3
  512. package/front_end/ui/components/expandable_list/expandableList.css +9 -9
  513. package/front_end/ui/components/highlighting/HighlightElement.ts +1 -1
  514. package/front_end/ui/components/highlighting/HighlightManager.ts +4 -0
  515. package/front_end/ui/components/icon_button/iconButton.css +2 -2
  516. package/front_end/ui/components/input/checkbox.css +8 -8
  517. package/front_end/ui/components/input/textInput.css +3 -3
  518. package/front_end/ui/components/issue_counter/issueLinkIcon.css +2 -2
  519. package/front_end/ui/components/linkifier/linkifierImpl.css +1 -1
  520. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
  521. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +1 -1
  522. package/front_end/ui/components/markdown_view/codeBlock.css +2 -2
  523. package/front_end/ui/components/markdown_view/markdownView.css +7 -7
  524. package/front_end/ui/components/menus/menuGroup.css +2 -2
  525. package/front_end/ui/components/menus/menuItem.css +2 -2
  526. package/front_end/ui/components/menus/selectMenu.css +2 -2
  527. package/front_end/ui/components/menus/selectMenuButton.css +4 -4
  528. package/front_end/ui/components/panel_feedback/panelFeedback.css +15 -15
  529. package/front_end/ui/components/panel_feedback/previewToggle.css +2 -2
  530. package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +7 -7
  531. package/front_end/ui/components/report_view/report.css +3 -3
  532. package/front_end/ui/components/report_view/reportSectionDivider.css +1 -1
  533. package/front_end/ui/components/report_view/reportValue.css +1 -1
  534. package/front_end/ui/components/request_link_icon/requestLinkIcon.css +2 -2
  535. package/front_end/ui/components/settings/settingCheckbox.css +6 -6
  536. package/front_end/ui/components/text_editor/TextEditor.ts +3 -1
  537. package/front_end/ui/components/text_editor/config.ts +16 -4
  538. package/front_end/ui/kit/icons/icon.css +4 -4
  539. package/front_end/ui/kit/link/link.css +1 -1
  540. package/front_end/ui/legacy/ActionRegistration.ts +23 -23
  541. package/front_end/ui/legacy/Dialog.ts +1 -1
  542. package/front_end/ui/legacy/DockController.ts +7 -4
  543. package/front_end/ui/legacy/EmptyWidget.ts +13 -34
  544. package/front_end/ui/legacy/FilterBar.ts +4 -4
  545. package/front_end/ui/legacy/Infobar.ts +2 -2
  546. package/front_end/ui/legacy/InspectorDrawerView.ts +6 -6
  547. package/front_end/ui/legacy/InspectorView.ts +22 -27
  548. package/front_end/ui/legacy/KeyboardShortcut.ts +4 -7
  549. package/front_end/ui/legacy/ListWidget.ts +7 -7
  550. package/front_end/ui/legacy/PlusButton.ts +1 -3
  551. package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +6 -6
  552. package/front_end/ui/legacy/SearchableView.ts +18 -17
  553. package/front_end/ui/legacy/ShortcutRegistry.ts +6 -3
  554. package/front_end/ui/legacy/SoftContextMenu.ts +8 -8
  555. package/front_end/ui/legacy/SoftDropDown.ts +1 -1
  556. package/front_end/ui/legacy/SuggestBox.ts +2 -2
  557. package/front_end/ui/legacy/TabbedPane.ts +10 -10
  558. package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -2
  559. package/front_end/ui/legacy/Toolbar.ts +5 -5
  560. package/front_end/ui/legacy/Treeoutline.ts +1 -1
  561. package/front_end/ui/legacy/UIUtils.ts +90 -26
  562. package/front_end/ui/legacy/ViewManager.ts +1 -1
  563. package/front_end/ui/legacy/ViewRegistration.ts +7 -7
  564. package/front_end/ui/legacy/Widget.ts +5 -5
  565. package/front_end/ui/legacy/checkboxTextLabel.css +3 -3
  566. package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts +16 -0
  567. package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +1 -0
  568. package/front_end/ui/legacy/components/color_picker/spectrum.css +90 -90
  569. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +23 -24
  570. package/front_end/ui/legacy/components/cookie_table/cookiesTable.css +1 -1
  571. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +26 -28
  572. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +3 -7
  573. package/front_end/ui/legacy/components/inline_editor/bezierEditor.css +13 -13
  574. package/front_end/ui/legacy/components/inline_editor/colorSwatch.css +7 -7
  575. package/front_end/ui/legacy/components/inline_editor/cssAngleEditor.css +5 -5
  576. package/front_end/ui/legacy/components/inline_editor/cssShadowEditor.css +18 -18
  577. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +104 -86
  578. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +8 -6
  579. package/front_end/ui/legacy/components/object_ui/objectPopover.css +4 -4
  580. package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +6 -6
  581. package/front_end/ui/legacy/components/perf_ui/BrickBreaker.ts +2 -2
  582. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +28 -11
  583. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +6 -6
  584. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +14 -15
  585. package/front_end/ui/legacy/components/perf_ui/GCActionDelegate.ts +1 -1
  586. package/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts +5 -5
  587. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +5 -5
  588. package/front_end/ui/legacy/components/perf_ui/PieChart.ts +1 -1
  589. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +0 -4
  590. package/front_end/ui/legacy/components/perf_ui/chartViewport.css +4 -4
  591. package/front_end/ui/legacy/components/perf_ui/filmStripView.css +6 -6
  592. package/front_end/ui/legacy/components/perf_ui/flameChart.css +7 -7
  593. package/front_end/ui/legacy/components/perf_ui/overviewGrid.css +11 -11
  594. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +4 -6
  595. package/front_end/ui/legacy/components/perf_ui/pieChart.css +6 -6
  596. package/front_end/ui/legacy/components/perf_ui/timelineGrid.css +5 -5
  597. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +3 -3
  598. package/front_end/ui/legacy/components/source_frame/FontView.ts +2 -2
  599. package/front_end/ui/legacy/components/source_frame/ImageView.ts +13 -13
  600. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -1
  601. package/front_end/ui/legacy/components/source_frame/PreviewFactory.ts +2 -2
  602. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +2 -2
  603. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +15 -18
  604. package/front_end/ui/legacy/components/source_frame/XMLView.ts +1 -1
  605. package/front_end/ui/legacy/components/source_frame/imageView.css +1 -1
  606. package/front_end/ui/legacy/components/source_frame/jsonView.css +1 -1
  607. package/front_end/ui/legacy/components/source_frame/resourceSourceFrame.css +1 -1
  608. package/front_end/ui/legacy/components/source_frame/source_frame-meta.ts +10 -10
  609. package/front_end/ui/legacy/components/source_frame/xmlTree.css +3 -3
  610. package/front_end/ui/legacy/components/utils/imagePreview.css +1 -1
  611. package/front_end/ui/legacy/components/utils/jsUtils.css +10 -10
  612. package/front_end/ui/legacy/dropTarget.css +2 -2
  613. package/front_end/ui/legacy/emptyWidget.css +6 -0
  614. package/front_end/ui/legacy/filter.css +19 -19
  615. package/front_end/ui/legacy/infobar.css +2 -2
  616. package/front_end/ui/legacy/inspectorCommon.css +67 -67
  617. package/front_end/ui/legacy/inspectorDrawerTabbedPane.css +1 -1
  618. package/front_end/ui/legacy/listWidget.css +5 -5
  619. package/front_end/ui/legacy/progressIndicator.css +4 -4
  620. package/front_end/ui/legacy/reportView.css +7 -7
  621. package/front_end/ui/legacy/searchableView.css +5 -5
  622. package/front_end/ui/legacy/smallBubble.css +3 -3
  623. package/front_end/ui/legacy/softContextMenu.css +4 -4
  624. package/front_end/ui/legacy/softDropDownButton.css +1 -1
  625. package/front_end/ui/legacy/splitWidget.css +9 -31
  626. package/front_end/ui/legacy/suggestBox.css +4 -4
  627. package/front_end/ui/legacy/tabbedPane.css +17 -17
  628. package/front_end/ui/legacy/textPrompt.css +2 -2
  629. package/front_end/ui/legacy/toolbar.css +4 -4
  630. package/front_end/ui/legacy/treeoutline.css +14 -14
  631. package/front_end/ui/legacy/viewContainers.css +6 -6
  632. package/front_end/ui/settings/ConsoleSettings.ts +66 -0
  633. package/front_end/ui/settings/MainSettings.ts +47 -0
  634. package/front_end/ui/settings/settings.ts +2 -0
  635. package/front_end/ui/visual_logging/KnownContextValues.ts +12 -0
  636. package/inspector_overlay/common.ts +12 -12
  637. package/inspector_overlay/css_grid_label_helpers.ts +16 -17
  638. package/inspector_overlay/drag_resize_handler.ts +2 -2
  639. package/inspector_overlay/highlight_common.ts +11 -13
  640. package/inspector_overlay/highlight_container_query.ts +2 -2
  641. package/inspector_overlay/highlight_flex_common.ts +6 -7
  642. package/inspector_overlay/highlight_grid_common.ts +3 -3
  643. package/inspector_overlay/highlight_isolated_element.ts +12 -3
  644. package/inspector_overlay/highlight_scroll_snap.ts +2 -2
  645. package/inspector_overlay/loadCSS.rollup.js +0 -1
  646. package/inspector_overlay/testing/InspectorOverlayHelpers.ts +13 -13
  647. package/inspector_overlay/tool_green_dev_anchors.ts +3 -3
  648. package/inspector_overlay/tool_highlight.ts +9 -9
  649. package/inspector_overlay/tool_paused.ts +4 -4
  650. package/inspector_overlay/tool_persistent.ts +11 -11
  651. package/inspector_overlay/tool_screenshot.ts +7 -7
  652. package/inspector_overlay/tool_source_order.ts +4 -4
  653. package/inspector_overlay/tool_viewport_size.ts +3 -3
  654. package/inspector_overlay/tool_window_controls.ts +4 -4
  655. package/mcp/mcp.ts +1 -0
  656. package/package.json +2 -2
  657. package/front_end/generated/protocol-tsconfig.json +0 -10
  658. package/front_end/panels/js_timeline/DIR_METADATA +0 -3
  659. package/front_end/panels/js_timeline/js_timeline-meta.ts +0 -193
  660. package/front_end/panels/js_timeline/js_timeline.ts +0 -1
  661. /package/front_end/entrypoints/{formatter_worker/FormatterActions.ts → formatter_actions/formatter_actions.ts} +0 -0
@@ -31,6 +31,7 @@ import {StorageAgent} from './agents/StorageAgent.js';
31
31
  import {StylingAgent} from './agents/StylingAgent.js';
32
32
  import {AiAgent2} from './AiAgent2.js';
33
33
  import {AiHistoryStorage, ConversationType, type SerializedConversation} from './AiHistoryStorage.js';
34
+ import {isContextSelectionEnabled} from './AiUtils.js';
34
35
  import type {ChangeManager} from './ChangeManager.js';
35
36
  import {AccessibilityContext} from './contexts/AccessibilityContext.js';
36
37
  import {DOMNodeContext} from './contexts/DOMNodeContext.js';
@@ -106,7 +107,7 @@ export class AiConversation {
106
107
 
107
108
  #aidaClient: Host.AidaClient.AidaClient;
108
109
  #changeManager: ChangeManager|undefined;
109
- #origin?: string;
110
+ #origin?: string|SDK.SecurityOrigin.SecurityOrigin;
110
111
  #navigationOccurredDuringRun = false;
111
112
 
112
113
  #contexts: Array<ConversationContext<unknown>> = [];
@@ -180,7 +181,7 @@ export class AiConversation {
180
181
  return this.history.length === 0;
181
182
  }
182
183
 
183
- #setOriginIfEmpty(newOrigin: string|undefined): void {
184
+ #setOriginIfEmpty(newOrigin: string|SDK.SecurityOrigin.SecurityOrigin|undefined): void {
184
185
  if (!this.#origin) {
185
186
  this.#origin = newOrigin;
186
187
  }
@@ -189,7 +190,7 @@ export class AiConversation {
189
190
  setContext(updateContext: ConversationContext<unknown>|null): void {
190
191
  if (!updateContext) {
191
192
  this.#contexts = [];
192
- if (isAiAssistanceContextSelectionAgentEnabled()) {
193
+ if (isContextSelectionEnabled()) {
193
194
  this.#updateAgent(ConversationType.NONE);
194
195
  }
195
196
 
@@ -198,7 +199,7 @@ export class AiConversation {
198
199
 
199
200
  this.#contexts = [updateContext];
200
201
 
201
- if (isAiAssistanceContextSelectionAgentEnabled()) {
202
+ if (isContextSelectionEnabled()) {
202
203
  if (updateContext instanceof FileContext) {
203
204
  this.#updateAgent(ConversationType.FILE);
204
205
  } else if (updateContext instanceof DOMNodeContext) {
@@ -365,11 +366,23 @@ export class AiConversation {
365
366
  return;
366
367
  }
367
368
 
368
- const isTransitioningFromStorage = this.#type === ConversationType.STORAGE && type !== ConversationType.STORAGE;
369
- const history = isTransitioningFromStorage ? [] : this.#filterHistoryForNewAgent();
370
-
369
+ const previousType = this.#type;
371
370
  this.#type = type;
372
371
 
372
+ // In AI Architecture V2, DevTools uses a single unified agent (AiAgent2) that
373
+ // dynamically loads skills on demand. Reusing the existing agent instance across
374
+ // context changes preserves its loaded activeSkills and declared tools so the model
375
+ // does not need to re-learn skills it already acquired earlier in the conversation.
376
+ if (Root.Runtime.hostConfig.devToolsAiV2Architecture?.enabled && this.#agent instanceof AiAgent2) {
377
+ return;
378
+ }
379
+
380
+ // In legacy V1 architecture, agents are recreated when switching conversation types.
381
+ // Discard conversation history when transitioning away from Storage to prevent
382
+ // sensitive data (e.g. cookies or storage items) from leaking into subsequent agent queries.
383
+ const isTransitioningFromStorage = previousType === ConversationType.STORAGE && type !== ConversationType.STORAGE;
384
+ const history = isTransitioningFromStorage ? [] : this.#filterHistoryForNewAgent();
385
+
373
386
  const options = {
374
387
  aidaClient: this.#aidaClient,
375
388
  serverSideLoggingAllowed: isAiAssistanceServerSideLoggingAllowed(),
@@ -531,7 +544,7 @@ export class AiConversation {
531
544
  }
532
545
 
533
546
  get origin(): string|undefined {
534
- return this.#origin;
547
+ return this.#origin instanceof SDK.SecurityOrigin.SecurityOrigin ? this.#origin.siteId() : this.#origin;
535
548
  }
536
549
 
537
550
  get type(): ConversationType {
@@ -543,11 +556,11 @@ export class AiConversation {
543
556
  return {blocked: true};
544
557
  }
545
558
  if (this.#origin) {
546
- return {origin: this.#origin};
559
+ return {origin: this.origin};
547
560
  }
548
561
  this.#origin = getPrimaryPageOrigin(this.#targetManager);
549
562
 
550
- return {origin: this.#origin};
563
+ return {origin: this.origin};
551
564
  };
552
565
  }
553
566
 
@@ -561,10 +574,6 @@ function isAiAssistanceServerSideLoggingAllowed(): boolean {
561
574
  return !Root.Runtime.hostConfig.aidaAvailability?.disallowLogging;
562
575
  }
563
576
 
564
- function isAiAssistanceContextSelectionAgentEnabled(): boolean {
565
- return Boolean(Root.Runtime.hostConfig.devToolsAiAssistanceContextSelectionAgent?.enabled);
566
- }
567
-
568
577
  function getPrimaryPageOrigin(
569
578
  targetManager: SDK.TargetManager.TargetManager,
570
579
  ): Platform.DevToolsPath.UrlString|undefined {
@@ -37,7 +37,7 @@ export interface SerializedImage {
37
37
  const DEFAULT_MAX_STORAGE_SIZE = 50 * 1024 * 1024;
38
38
  export const MAX_RECENT_PROMPTS_COUNT = 20;
39
39
  export const MAX_CONVERSATIONS_COUNT = 50;
40
- export const RECENT_PROMPTS_SIZE_LIMIT = 100 * 1024;
40
+ export const RECENT_PROMPTS_SIZE_LIMIT: number = 100 * 1024;
41
41
 
42
42
  export const enum Events {
43
43
  HISTORY_DELETED = 'AiHistoryDeleted',
@@ -57,7 +57,7 @@ export class AiHistoryStorage extends Common.ObjectWrapper.ObjectWrapper<EventTy
57
57
  constructor(
58
58
  // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
59
59
  settings: Common.Settings.Settings = Common.Settings.Settings.instance(),
60
- maxStorageSize = DEFAULT_MAX_STORAGE_SIZE,
60
+ maxStorageSize: number = DEFAULT_MAX_STORAGE_SIZE,
61
61
  ) {
62
62
  super();
63
63
  this.#historySetting = settings.createSetting('ai-assistance-history-entries', []);
@@ -123,6 +123,22 @@ export function isGeminiBranding(): boolean {
123
123
  return !!Root.Runtime.hostConfig.devToolsGeminiRebranding?.enabled;
124
124
  }
125
125
 
126
+ /**
127
+ * Returns true if context selection / dynamic context switching is enabled.
128
+ *
129
+ * In the legacy V1 architecture, this corresponds to the `ContextSelectionAgent`,
130
+ * which dynamically routes conversations and allows changing the active context.
131
+ * In the unified V2 architecture (`AiAgent2`), dynamic context selection is natively
132
+ * supported across the single agent instance.
133
+ *
134
+ * This bridge function checks either flag during the transition phase and can be
135
+ * removed in the future when V2 ships permanently and the V1 architecture is removed.
136
+ */
137
+ export function isContextSelectionEnabled(): boolean {
138
+ return Boolean(Root.Runtime.hostConfig.devToolsAiAssistanceContextSelectionAgent?.enabled) ||
139
+ Boolean(Root.Runtime.hostConfig.devToolsAiV2Architecture?.enabled);
140
+ }
141
+
126
142
  /**
127
143
  * Preconditions determined entirely on the DevTools frontend side (e.g. Incognito
128
144
  * mode or age restrictions) that prevent AI assistance features from running.
@@ -108,7 +108,7 @@ export class EvaluateAction {
108
108
  returnByValue: false,
109
109
  allowUnsafeEvalBlockedByCSP: false,
110
110
  throwOnSideEffect,
111
- userGesture: true,
111
+ userGesture: false,
112
112
  awaitPromise: true,
113
113
  arguments: args.map(remoteObject => {
114
114
  return {objectId: remoteObject.objectId};
@@ -127,7 +127,7 @@ npm start -- --browser=canary
127
127
  or
128
128
 
129
129
  ```
130
- /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --custom-devtools-frontend=file://$(realpath out/Fast/gen/front_end)
130
+ /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --custom-devtools-frontend=file://$(realpath out/Default/gen/front_end)
131
131
  ```
132
132
 
133
133
  ### Enable debug logs
@@ -85,8 +85,8 @@ If the user asks a question that requires an investigation of a problem, use thi
85
85
  * instance for a new conversation.
86
86
  */
87
87
  export class AccessibilityAgent extends AiAgent<LHModel.ReporterTypes.ReportJSON> {
88
- readonly preamble = preamble;
89
- readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_ACCESSIBILITY_AGENT;
88
+ readonly preamble: string = preamble;
89
+ readonly clientFeature: Host.AidaClient.ClientFeature = Host.AidaClient.ClientFeature.CHROME_ACCESSIBILITY_AGENT;
90
90
  readonly #lighthouseRecording?:
91
91
  (overrides?: LHModel.RunTypes.RunOverrides) => Promise<LHModel.ReporterTypes.ReportJSON|null>;
92
92
 
@@ -253,7 +253,6 @@ export class AccessibilityAgent extends AiAgent<LHModel.ReporterTypes.ReportJSON
253
253
  return await executeJsTool.handler(
254
254
  args,
255
255
  {
256
- conversationContext: this.context ?? null,
257
256
  changeManager: this.#changes,
258
257
  createExtensionScope: this.#createExtensionScope.bind(this),
259
258
  execJs: this.#execJs,
@@ -205,7 +205,7 @@ export abstract class ConversationContext<T> {
205
205
  return true;
206
206
  }
207
207
 
208
- getOrigin(): string {
208
+ getOrigin(): string|SDK.SecurityOrigin.SecurityOrigin {
209
209
  return extractContextOrigin(this.getURL());
210
210
  }
211
211
 
@@ -221,15 +221,31 @@ export abstract class ConversationContext<T> {
221
221
  * @param establishedOrigin The origin that the current conversation is locked to.
222
222
  * If undefined, the conversation has not yet been locked to an origin.
223
223
  */
224
- isOriginAllowed(establishedOrigin: string|undefined): boolean {
224
+ isOriginAllowed(establishedOrigin: string|SDK.SecurityOrigin.SecurityOrigin|undefined): boolean {
225
225
  const origin = this.getOrigin();
226
+
227
+ if (origin instanceof SDK.SecurityOrigin.SecurityOrigin) {
228
+ if (origin.isOpaque()) {
229
+ return false;
230
+ }
231
+ if (!establishedOrigin) {
232
+ return true;
233
+ }
234
+ const established = establishedOrigin instanceof SDK.SecurityOrigin.SecurityOrigin ?
235
+ establishedOrigin :
236
+ SDK.SecurityOrigin.SecurityOrigin.create(establishedOrigin);
237
+ return origin.isSameOriginWith(established);
238
+ }
239
+
226
240
  // If no origin is established yet, this context will be the one to lock the conversation.
227
241
  // Opaque origins are never allowed to be used as context.
228
242
  if (!establishedOrigin) {
229
243
  return !isOpaqueOrigin(origin);
230
244
  }
231
245
  // Only allow data that matches the origin the conversation is already locked to.
232
- return areOriginsEquivalent(origin, establishedOrigin);
246
+ const establishedString =
247
+ establishedOrigin instanceof SDK.SecurityOrigin.SecurityOrigin ? establishedOrigin.siteId() : establishedOrigin;
248
+ return areOriginsEquivalent(origin, establishedString);
233
249
  }
234
250
 
235
251
  /**
@@ -505,14 +521,9 @@ export abstract class AiAgent<T> {
505
521
 
506
522
  readonly #sessionId: string;
507
523
  readonly #aidaClient: Host.AidaClient.AidaClient;
508
- /**
509
- * Whether server-side logging is permitted by the system policy (based on
510
- * user preferences, feature flags, or branding configurations).
511
- */
512
- readonly #serverSideLoggingAllowed: boolean;
513
524
  /**
514
525
  * Tracks the dynamic runtime state of logging. Even if logging is allowed
515
- * by policy, tools can temporarily deactivate this to avoid logging sensitive data.
526
+ * by policy, tools or sensitive contexts can deactivate this to avoid logging sensitive data.
516
527
  */
517
528
  #serverSideLoggingActive: boolean;
518
529
  readonly confirmSideEffect: typeof Promise.withResolvers;
@@ -548,7 +559,6 @@ export abstract class AiAgent<T> {
548
559
  if (Root.Runtime.hostConfig.devToolsGeminiRebranding?.enabled) {
549
560
  serverSideLoggingAllowed = false;
550
561
  }
551
- this.#serverSideLoggingAllowed = serverSideLoggingAllowed;
552
562
  this.#serverSideLoggingActive = serverSideLoggingAllowed;
553
563
  this.#sessionId = opts.sessionId ?? crypto.randomUUID();
554
564
  this.confirmSideEffect = opts.confirmSideEffectForTest ?? (() => Promise.withResolvers());
@@ -603,16 +613,14 @@ export abstract class AiAgent<T> {
603
613
  }
604
614
 
605
615
  /**
606
- * Toggles whether server-side logging is active.
607
- * Note that logging can only be activated if it was allowed by policy/configuration
608
- * at startup (i.e., `#serverSideLoggingAllowed` is true).
616
+ * Disables server-side logging for the remainder of this agent instance's lifetime.
617
+ *
618
+ * Logging deactivation is irreversible for the session. Conversation history
619
+ * accumulates across turns; re-enabling logging later would leak sensitive
620
+ * data from prior turns to AIDA.
609
621
  */
610
- protected setServerSideLoggingActive(active: boolean): void {
611
- if (active && this.#serverSideLoggingAllowed) {
612
- this.#serverSideLoggingActive = true;
613
- } else {
614
- this.#serverSideLoggingActive = false;
615
- }
622
+ protected disableServerSideLogging(): void {
623
+ this.#serverSideLoggingActive = false;
616
624
  }
617
625
 
618
626
  popPendingMultimodalInput(): MultimodalInput|undefined {
@@ -794,9 +802,9 @@ export abstract class AiAgent<T> {
794
802
  multimodalInput?: MultimodalInput,
795
803
  ): AsyncGenerator<ResponseData, void, void> {
796
804
  await options.selected?.refresh();
797
- if (options.selected) {
798
- this.context = options.selected;
799
- }
805
+ // Reset context on each run so cleared selections (`null`) do not leave
806
+ // stale context references on long-lived agent instances (e.g. `AiAgent2`).
807
+ this.context = options.selected ?? undefined;
800
808
  await this.preRun();
801
809
 
802
810
  const enhancedQuery = await this.enhanceQuery(initialQuery, options.selected, multimodalInput?.type);
@@ -1043,9 +1051,11 @@ export abstract class AiAgent<T> {
1043
1051
  sideEffectConfirmationPromiseWithResolvers.resolve(false);
1044
1052
  }
1045
1053
 
1046
- options?.signal?.addEventListener('abort', () => {
1054
+ const onAbort = (): void => {
1047
1055
  sideEffectConfirmationPromiseWithResolvers.resolve(false);
1048
- }, {once: true});
1056
+ };
1057
+
1058
+ options?.signal?.addEventListener('abort', onAbort, {once: true});
1049
1059
 
1050
1060
  yield {
1051
1061
  type: ResponseType.SIDE_EFFECT,
@@ -1053,7 +1063,12 @@ export abstract class AiAgent<T> {
1053
1063
  description: result.description,
1054
1064
  };
1055
1065
 
1056
- const approvedRun = await sideEffectConfirmationPromiseWithResolvers.promise;
1066
+ let approvedRun = false;
1067
+ try {
1068
+ approvedRun = await sideEffectConfirmationPromiseWithResolvers.promise;
1069
+ } finally {
1070
+ options?.signal?.removeEventListener('abort', onAbort);
1071
+ }
1057
1072
  if (!approvedRun) {
1058
1073
  yield {
1059
1074
  type: ResponseType.ACTION,
@@ -88,8 +88,8 @@ export interface ContextSelectionAgentOptions extends AgentOptions {
88
88
  * instance for a new conversation.
89
89
  */
90
90
  export class ContextSelectionAgent extends AiAgent<never> {
91
- readonly preamble = preamble;
92
- readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_CONTEXT_SELECTION_AGENT;
91
+ readonly preamble: string = preamble;
92
+ readonly clientFeature: Host.AidaClient.ClientFeature = Host.AidaClient.ClientFeature.CHROME_CONTEXT_SELECTION_AGENT;
93
93
  get userTier(): string|undefined {
94
94
  // TODO: Make this depend on variable.
95
95
  return Root.Runtime.hostConfig.devToolsFreestyler?.userTier;
@@ -550,7 +550,8 @@ export class ContextSelectionAgent extends AiAgent<never> {
550
550
  }
551
551
 
552
552
  static lastSourceId = 0;
553
- static uiSourceCodeId = new WeakMap<Workspace.UISourceCode.UISourceCode, number>();
553
+ static uiSourceCodeId: WeakMap<Workspace.UISourceCode.UISourceCode, number> =
554
+ new WeakMap<Workspace.UISourceCode.UISourceCode, number>();
554
555
  /**
555
556
  * This is a heuristic algorithm that gets all the source files coming from the
556
557
  * network and assigns unique ids to be linked from the LLM Markdown response.
@@ -78,8 +78,8 @@ MDN Web Docs: JavaScript Functions: https://developer.mozilla.org/en-US/docs/Web
78
78
  * instance for a new conversation.
79
79
  */
80
80
  export class FileAgent extends AiAgent<Workspace.UISourceCode.UISourceCode> {
81
- readonly preamble = preamble;
82
- readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_FILE_AGENT;
81
+ readonly preamble: string = preamble;
82
+ readonly clientFeature: Host.AidaClient.ClientFeature = Host.AidaClient.ClientFeature.CHROME_FILE_AGENT;
83
83
  get userTier(): string|undefined {
84
84
  return Root.Runtime.hostConfig.devToolsAiAssistanceFileAgent?.userTier;
85
85
  }
@@ -71,8 +71,8 @@ This request aims to retrieve a list of products matching the search query "lapt
71
71
  * instance for a new conversation.
72
72
  */
73
73
  export class NetworkAgent extends AiAgent<SDK.NetworkRequest.NetworkRequest> {
74
- readonly preamble = preamble;
75
- readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_NETWORK_AGENT;
74
+ readonly preamble: string = preamble;
75
+ readonly clientFeature: Host.AidaClient.ClientFeature = Host.AidaClient.ClientFeature.CHROME_NETWORK_AGENT;
76
76
  get userTier(): string|undefined {
77
77
  return Root.Runtime.hostConfig.devToolsAiAssistanceNetworkAgent?.userTier;
78
78
  }
@@ -209,7 +209,7 @@ export interface PerformanceAgentOptions extends AgentOptions {
209
209
  * instance for a new conversation.
210
210
  */
211
211
  export class PerformanceAgent extends AiAgent<AgentFocus> {
212
- readonly preamble = preamble;
212
+ readonly preamble: string = preamble;
213
213
  readonly #tracker: Tracing.FreshRecording.Tracker;
214
214
  readonly #networkLog: Logs.NetworkLog.NetworkLog;
215
215
 
@@ -79,7 +79,9 @@ const MAX_TARGET_ORIGINS = 100;
79
79
 
80
80
  function resolveTargetOrigins(context?: ConversationContext<StorageItem>, origins?: string[]): string[] {
81
81
  const primaryOrigin = context?.getOrigin();
82
- const rawList = (origins && origins.length > 0) ? origins : (primaryOrigin ? [primaryOrigin] : []);
82
+ const primaryString =
83
+ primaryOrigin instanceof SDK.SecurityOrigin.SecurityOrigin ? primaryOrigin.siteId() : primaryOrigin;
84
+ const rawList = (origins && origins.length > 0) ? origins : (primaryString ? [primaryString] : []);
83
85
  const uniqueOrigins = Array.from(new Set(rawList));
84
86
  return uniqueOrigins.slice(0, MAX_TARGET_ORIGINS);
85
87
  }
@@ -102,8 +104,8 @@ interface CookieDetails {
102
104
  }
103
105
 
104
106
  export class StorageAgent extends AiAgent<StorageItem> {
105
- readonly preamble = preamble;
106
- readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_STORAGE_AGENT;
107
+ readonly preamble: string = preamble;
108
+ readonly clientFeature: Host.AidaClient.ClientFeature = Host.AidaClient.ClientFeature.CHROME_STORAGE_AGENT;
107
109
 
108
110
  get userTier(): string|undefined {
109
111
  return Root.Runtime.hostConfig.devToolsFreestyler?.userTier;
@@ -202,7 +204,7 @@ export class StorageAgent extends AiAgent<StorageItem> {
202
204
  },
203
205
 
204
206
  handler: async args => {
205
- this.setServerSideLoggingActive(false);
207
+ this.disableServerSideLogging();
206
208
  if (!isSamePrimaryPageOrigin(this.targetManager, this.context)) {
207
209
  return {error: 'No origin available or not allowed.'};
208
210
  }
@@ -288,7 +290,7 @@ export class StorageAgent extends AiAgent<StorageItem> {
288
290
  },
289
291
 
290
292
  handler: async (args, options) => {
291
- this.setServerSideLoggingActive(false);
293
+ this.disableServerSideLogging();
292
294
  if (!isSamePrimaryPageOrigin(this.targetManager, this.context)) {
293
295
  return {error: 'No origin available or not allowed.'};
294
296
  }
@@ -388,7 +390,7 @@ export class StorageAgent extends AiAgent<StorageItem> {
388
390
  };
389
391
  },
390
392
  handler: async args => {
391
- this.setServerSideLoggingActive(false);
393
+ this.disableServerSideLogging();
392
394
  if (!isSamePrimaryPageOrigin(this.targetManager, this.context)) {
393
395
  return {error: 'No origin available or not allowed.'};
394
396
  }
@@ -448,7 +450,7 @@ export class StorageAgent extends AiAgent<StorageItem> {
448
450
  };
449
451
  },
450
452
  handler: async (args, options) => {
451
- this.setServerSideLoggingActive(false);
453
+ this.disableServerSideLogging();
452
454
  if (!isSamePrimaryPageOrigin(this.targetManager, this.context)) {
453
455
  return {error: 'No origin available or not allowed.'};
454
456
  }
@@ -618,9 +620,9 @@ export class StorageAgent extends AiAgent<StorageItem> {
618
620
  protected override async preRun(): Promise<void> {
619
621
  const item = this.context?.getItem();
620
622
  if (item instanceof CookieItem && Boolean(item.name)) {
621
- this.setServerSideLoggingActive(false);
623
+ this.disableServerSideLogging();
622
624
  } else if (item instanceof DOMStorageItem && Boolean(item.key)) {
623
- this.setServerSideLoggingActive(false);
625
+ this.disableServerSideLogging();
624
626
  }
625
627
  }
626
628
 
@@ -660,8 +662,8 @@ export class StorageAgent extends AiAgent<StorageItem> {
660
662
  * @param storageKey Optional. If specified, resolves only the partition exactly matching this unique key, bypassing origin comparison.
661
663
  */
662
664
 
663
- export async function getCookiesForDomain(
664
- target: SDK.Target.Target, origin: string): Promise<SDK.Cookie.Cookie[]|null> {
665
+ export async function getCookiesForDomain(target: SDK.Target.Target,
666
+ origin: string): Promise<SDK.Cookie.Cookie[]|null> {
665
667
  const cookieModel = target.model(SDK.CookieModel.CookieModel);
666
668
  if (!cookieModel) {
667
669
  return null;
@@ -31,7 +31,7 @@ Content:
31
31
  "function_declarations": [
32
32
  {
33
33
  "name": "getStyles",
34
- "description": "Get computed and source styles for one or multiple elements on the inspected page for multiple elements at once by uid.\n\n**CRITICAL** An element uid is a number, not a selector.\n**CRITICAL** Use selectors to refer to elements in the text output. Do not use uids.\n**CRITICAL** Always provide the explanation argument to explain what and why you query.\n**CRITICAL** You MUST provide a specific list of CSS property names. Do not use generic values like \"all\" or \"*\".",
34
+ "description": "Retrieves computed and authored CSS styles for one or more elements by their backend node IDs (uids).\n\n**CRITICAL** An element uid is a number, not a selector.\n**CRITICAL** Use selectors to refer to elements in the text output. Do not use uids.\n**CRITICAL** Always provide the explanation argument to explain what and why you query.\n**CRITICAL** You MUST provide a specific list of CSS property names. Do not use generic values like \"all\" or \"*\".",
35
35
  "parameters": {
36
36
  "type": 6,
37
37
  "description": "",
@@ -78,7 +78,7 @@ Content:
78
78
  "properties": {
79
79
  "code": {
80
80
  "type": 1,
81
- "description": "JavaScript code snippet to run on the inspected page. Make sure the code is formatted for readability.\n\n# Instructions\n\n* To return data, define a top-level `data` variable and populate it with data you want to get. Only JSON-serializable objects can be assigned to `data`.\n* If you modify styles on an element, ALWAYS call the pre-defined global `async setElementStyles(el: Element, styles: object)` function. This function is an internal mechanism for you and should never be presented as a command/advice to the user.\n* **CRITICAL** Only get styles that might be relevant to the user request.\n* **CRITICAL** Never assume a selector for the elements unless you verified your knowledge.\n* **CRITICAL** Consider that `data` variable from the previous function calls are not available in a new function call.\n* **CRITICAL** Keep code concise (max 40 lines and 2,500 characters). Split complex logic into multiple steps.\n* **CRITICAL** Network requests (e.g., fetch, XMLHttpRequest) are disabled and cannot be made.\n\nFor example, the code to change element styles:\n\n```\nawait setElementStyles($0, {\n color: 'blue',\n});\n```\n\nFor example, the code to get overlapping elements:\n\n```\nconst data = {\n overlappingElements: Array.from(document.querySelectorAll('*'))\n .filter(el => {\n const rect = el.getBoundingClientRect();\n const popupRect = $0.getBoundingClientRect();\n return (\n el !== $0 &&\n rect.left < popupRect.right &&\n rect.right > popupRect.left &&\n rect.top < popupRect.bottom &&\n rect.bottom > popupRect.top\n );\n })\n .map(el => ({\n tagName: el.tagName,\n id: el.id,\n className: el.className,\n zIndex: window.getComputedStyle(el)['z-index']\n }))\n};\n```\n"
81
+ "description": "JavaScript code snippet to run on the inspected page. Make sure the code is formatted for readability.\n\n# Instructions\n\n* To return data, define a top-level `data` variable and populate it with data you want to get. Only JSON-serializable objects can be assigned to `data`.\n* $0 refers to the currently selected DOM node (or document body if none selected).\n* **CRITICAL** Never assume a selector for the elements unless you verified your knowledge.\n* **CRITICAL** Variables from previous function calls are not available in subsequent calls.\n* **CRITICAL** Keep code concise (max 40 lines and 2,500 characters). Split complex logic into multiple steps.\n* **CRITICAL** Network requests (e.g., fetch, XMLHttpRequest) are disabled and cannot be made.\n\nFor example, to query DOM elements:\n\n```\nconst data = {\n title: document.title,\n elementText: $0?.textContent?.trim(),\n childCount: $0?.children.length,\n};\n```\n"
82
82
  },
83
83
  "explanation": {
84
84
  "type": 1,
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Host from '../../../core/host/host.js';
6
6
  import * as Root from '../../../core/root/root.js';
7
- import type * as SDK from '../../../core/sdk/sdk.js';
7
+ import * as SDK from '../../../core/sdk/sdk.js';
8
8
  import {ChangeManager} from '../ChangeManager.js';
9
9
  import {ExtensionScope} from '../ExtensionScope.js';
10
10
  import {AI_ASSISTANCE_CSS_CLASS_NAME} from '../injected.js';
@@ -94,15 +94,16 @@ const MULTIMODAL_ENHANCEMENT_PROMPTS: Record<MultimodalInputType, string> = {
94
94
  [MultimodalInputType.UPLOADED_IMAGE]: promptForUploadedImage + considerationsForMultimodalInputEvaluation,
95
95
  };
96
96
 
97
- export const AI_ASSISTANCE_FILTER_REGEX = `\\.${AI_ASSISTANCE_CSS_CLASS_NAME}-.*&`;
97
+ // eslint-disable-next-line @typescript-eslint/no-inferrable-types
98
+ export const AI_ASSISTANCE_FILTER_REGEX: string = `\\.${AI_ASSISTANCE_CSS_CLASS_NAME}-.*&`;
98
99
 
99
100
  /**
100
101
  * One agent instance handles one conversation. Create a new agent
101
102
  * instance for a new conversation.
102
103
  */
103
104
  export class StylingAgent extends AiAgent<SDK.DOMModel.DOMNode> {
104
- readonly preamble = preamble;
105
- readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_STYLING_AGENT;
105
+ readonly preamble: string = preamble;
106
+ readonly clientFeature: Host.AidaClient.ClientFeature = Host.AidaClient.ClientFeature.CHROME_STYLING_AGENT;
106
107
  get userTier(): string|undefined {
107
108
  return Root.Runtime.hostConfig.devToolsFreestyler?.userTier;
108
109
  }
@@ -153,9 +154,11 @@ export class StylingAgent extends AiAgent<SDK.DOMModel.DOMNode> {
153
154
  return {error: 'Error: Could not find the currently selected element.'};
154
155
  }
155
156
  return await getStylesTool.handler(args, {
156
- conversationContext: context,
157
157
  getTarget: () => this.targetManager.primaryPageTarget() ?? context.getItem().domModel().target(),
158
- getEstablishedOrigin: () => context.getOrigin(),
158
+ getEstablishedOrigin: () => {
159
+ const origin = context.getOrigin();
160
+ return origin instanceof SDK.SecurityOrigin.SecurityOrigin ? origin.siteId() : origin;
161
+ },
159
162
  });
160
163
  },
161
164
  });
@@ -171,7 +174,6 @@ export class StylingAgent extends AiAgent<SDK.DOMModel.DOMNode> {
171
174
  handler: (args, options) => executeJsTool.handler(
172
175
  args,
173
176
  {
174
- conversationContext: this.context ?? null,
175
177
  changeManager: this.#changes,
176
178
  createExtensionScope: this.#createExtensionScope.bind(this),
177
179
  execJs: this.#execJs,
@@ -38,9 +38,13 @@ import * as AICallTree from './performance/AICallTree.js';
38
38
  import * as AIContext from './performance/AIContext.js';
39
39
  import * as AIQueries from './performance/AIQueries.js';
40
40
  import * as PerformanceAnnotations from './PerformanceAnnotations.js';
41
+ import * as Skill from './skills/Skill.js';
42
+ import * as SkillRegistry from './skills/SkillRegistry.js';
41
43
  import * as StorageItem from './StorageItem.js';
44
+ import * as CookieUtils from './tools/CookieUtils.js';
42
45
  import * as DOMStorageUtils from './tools/DOMStorageUtils.js';
43
46
  import * as ExecuteJavaScript from './tools/ExecuteJavaScript.js';
47
+ import * as GetCookieValues from './tools/GetCookieValues.js';
44
48
  import * as GetDetailedCallTree from './tools/GetDetailedCallTree.js';
45
49
  import * as GetElementAccessibilityDetails from './tools/GetElementAccessibilityDetails.js';
46
50
  import * as GetFunctionCode from './tools/GetFunctionCode.js';
@@ -49,11 +53,13 @@ import * as GetLighthouseAudits from './tools/GetLighthouseAudits.js';
49
53
  import * as GetNetworkRequestDetails from './tools/GetNetworkRequestDetails.js';
50
54
  import * as GetResourceContent from './tools/GetResourceContent.js';
51
55
  import * as GetSourceContent from './tools/GetSourceContent.js';
56
+ import * as GetStorageBreakdown from './tools/GetStorageBreakdown.js';
52
57
  import * as GetStorageValues from './tools/GetStorageValues.js';
53
58
  import * as GetStyles from './tools/GetStyles.js';
54
59
  import * as GetTraceEventByKey from './tools/GetTraceEventByKey.js';
55
60
  import * as GetTraceMainThreadSummary from './tools/GetTraceMainThreadSummary.js';
56
61
  import * as GetTraceNetworkSummary from './tools/GetTraceNetworkSummary.js';
62
+ import * as ListCookies from './tools/ListCookies.js';
57
63
  import * as ListNetworkRequests from './tools/ListNetworkRequests.js';
58
64
  import * as ListPageOrigins from './tools/ListPageOrigins.js';
59
65
  import * as ListSources from './tools/ListSources.js';
@@ -82,6 +88,7 @@ export {
82
88
  ChangeManager,
83
89
  ContextSelectionAgent,
84
90
  ConversationSummary,
91
+ CookieUtils,
85
92
  Debug,
86
93
  DOMNodeContext,
87
94
  DOMStorageUtils,
@@ -91,6 +98,7 @@ export {
91
98
  FileAgent,
92
99
  FileContext,
93
100
  FileFormatter,
101
+ GetCookieValues,
94
102
  GetDetailedCallTree,
95
103
  GetElementAccessibilityDetails,
96
104
  GetFunctionCode,
@@ -99,6 +107,7 @@ export {
99
107
  GetNetworkRequestDetails,
100
108
  GetResourceContent,
101
109
  GetSourceContent,
110
+ GetStorageBreakdown,
102
111
  GetStorageValues,
103
112
  GetStyles,
104
113
  GetTraceEventByKey,
@@ -106,6 +115,7 @@ export {
106
115
  GetTraceNetworkSummary,
107
116
  Injected,
108
117
  LighthouseFormatter,
118
+ ListCookies,
109
119
  ListNetworkRequests,
110
120
  ListPageOrigins,
111
121
  ListSources,
@@ -122,6 +132,8 @@ export {
122
132
  ResolveDevtoolsNodePath,
123
133
  RunLighthouse,
124
134
  SelectTraceEventByKey,
135
+ Skill,
136
+ SkillRegistry,
125
137
  StorageAgent,
126
138
  StorageContext,
127
139
  StorageItem,
@@ -3,7 +3,11 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import type * as LHModel from '../../lighthouse/lighthouse.js';
6
- import {type ContextDetail, ConversationContext} from '../agents/AiAgent.js';
6
+ import {
7
+ type AiWidget,
8
+ type ContextDetail,
9
+ ConversationContext,
10
+ } from '../agents/AiAgent.js';
7
11
  import {LighthouseFormatter} from '../data_formatters/LighthouseFormatter.js';
8
12
 
9
13
  export class AccessibilityContext extends ConversationContext<LHModel.ReporterTypes.ReportJSON> {
@@ -60,4 +64,15 @@ export class AccessibilityContext extends ConversationContext<LHModel.ReporterTy
60
64
  },
61
65
  ];
62
66
  }
67
+
68
+ override async getWidgets(): Promise<AiWidget[]> {
69
+ return [
70
+ {
71
+ name: 'LIGHTHOUSE_REPORT',
72
+ data: {
73
+ report: this.#lh,
74
+ },
75
+ },
76
+ ];
77
+ }
63
78
  }
@@ -2,6 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import type * as SDK from '../../../core/sdk/sdk.js';
5
6
  import type * as Bindings from '../../bindings/bindings.js';
6
7
  import type * as Workspace from '../../workspace/workspace.js';
7
8
  import {type ContextDetail, ConversationContext} from '../agents/AiAgent.js';
@@ -18,6 +19,11 @@ export class FileContext extends ConversationContext<Workspace.UISourceCode.UISo
18
19
  this.#debuggerWorkspaceBinding = debuggerWorkspaceBinding;
19
20
  }
20
21
 
22
+ override getOrigin(): string|SDK.SecurityOrigin.SecurityOrigin {
23
+ const fallbackOrigin = super.getOrigin();
24
+ return this.#file.project()?.securityOrigin?.() ?? fallbackOrigin;
25
+ }
26
+
21
27
  override getURL(): string {
22
28
  return this.#file.url();
23
29
  }