chrome-devtools-frontend 1.0.1664496 → 1.0.1665921

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 (407) hide show
  1. package/.agents/skills/devtools-testing-guidance/SKILL.md +48 -0
  2. package/.agents/skills/devtools-ux-writing-refactor/SKILL.md +3 -3
  3. package/.agents/skills/repro-flaky-tests/SKILL.md +2 -2
  4. package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +7 -1
  5. package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +2 -0
  6. package/.agents/skills/version-control/SKILL.md +4 -3
  7. package/docs/ui_engineering.md +89 -0
  8. package/eslint.config.mjs +9 -2
  9. package/front_end/Images/rollup.config.mjs +1 -1
  10. package/front_end/Tests.js +15 -16
  11. package/front_end/core/common/Gzip.ts +2 -2
  12. package/front_end/core/common/Settings.ts +4 -20
  13. package/front_end/core/common/Srcset.ts +1 -1
  14. package/front_end/core/common/VersionController.ts +1 -1
  15. package/front_end/core/host/AidaClient.ts +19 -4
  16. package/front_end/core/host/AidaGcaTranslation.ts +2 -2
  17. package/front_end/core/host/GcaClient.ts +2 -2
  18. package/front_end/core/host/GdpClient.ts +3 -3
  19. package/front_end/core/host/InspectorFrontendHostStub.ts +1 -1
  20. package/front_end/core/host/ResourceLoader.ts +15 -15
  21. package/front_end/core/protocol_client/DevToolsCDPConnection.ts +2 -2
  22. package/front_end/core/protocol_client/InspectorBackend.ts +1 -1
  23. package/front_end/core/root/Runtime.ts +0 -1
  24. package/front_end/core/sdk/CSSMatchedStyles.ts +78 -3
  25. package/front_end/core/sdk/CSSMetadata.ts +17 -12
  26. package/front_end/core/sdk/CSSProperty.ts +1 -1
  27. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +2 -2
  28. package/front_end/core/sdk/CSSRule.ts +3 -3
  29. package/front_end/core/sdk/CSSStyleSheetHeader.ts +3 -3
  30. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +1 -1
  31. package/front_end/core/sdk/Connections.ts +1 -1
  32. package/front_end/core/sdk/DebuggerModel.ts +13 -13
  33. package/front_end/core/sdk/NetworkManager.ts +19 -19
  34. package/front_end/core/sdk/NetworkRequest.ts +57 -57
  35. package/front_end/core/sdk/OverlayModel.ts +1 -1
  36. package/front_end/core/sdk/PageResourceLoader.ts +2 -2
  37. package/front_end/core/sdk/RehydratingConnection.ts +5 -5
  38. package/front_end/core/sdk/ScreenCaptureModel.ts +1 -1
  39. package/front_end/core/sdk/Script.ts +2 -2
  40. package/front_end/core/sdk/ServerTiming.ts +7 -7
  41. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +1 -1
  42. package/front_end/core/sdk/ServiceWorkerManager.ts +11 -11
  43. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
  44. package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
  45. package/front_end/core/sdk/StorageKeyManager.ts +1 -1
  46. package/front_end/core/sdk/sdk-meta.ts +98 -98
  47. package/front_end/devtools_compatibility.js +15 -13
  48. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +4 -8
  49. package/front_end/entrypoints/main/MainImpl.ts +2 -3
  50. package/front_end/entrypoints/main/main-meta.ts +1 -16
  51. package/front_end/entrypoints/shell/shell.ts +1 -0
  52. package/front_end/entrypoints/trace_app/trace_app.ts +1 -0
  53. package/front_end/foundation/README.md +1 -1
  54. package/front_end/foundation/Universe.test.api.ts +73 -0
  55. package/front_end/foundation/Universe.ts +22 -0
  56. package/front_end/generated/InspectorBackendCommands.ts +2 -2
  57. package/front_end/generated/SupportedCSSProperties.js +1 -1
  58. package/front_end/generated/protocol.ts +19 -0
  59. package/front_end/models/ai_assistance/AiAgent2.ts +1 -1
  60. package/front_end/models/ai_assistance/AiConversation.ts +1 -1
  61. package/front_end/models/ai_assistance/BuiltInAi.ts +1 -1
  62. package/front_end/models/ai_assistance/ChangeManager.ts +0 -70
  63. package/front_end/models/ai_assistance/ExtensionScope.ts +2 -36
  64. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +9 -9
  65. package/front_end/models/ai_assistance/agents/AiAgent.ts +10 -2
  66. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +4 -4
  67. package/front_end/models/ai_assistance/agents/ExecuteJavascript.ts +1 -1
  68. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +21 -21
  69. package/front_end/models/ai_assistance/agents/StorageAgent.ts +4 -4
  70. package/front_end/models/ai_assistance/agents/StylingAgent.ts +1 -1
  71. package/front_end/models/ai_assistance/ai_assistance.ts +0 -5
  72. package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +11 -4
  73. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +8 -2
  74. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +14 -11
  75. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +2 -2
  76. package/front_end/models/ai_assistance/performance/AICallTree.ts +2 -2
  77. package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +1 -1
  78. package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +9 -2
  79. package/front_end/models/ai_assistance/tools/GetStyles.ts +4 -4
  80. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +2 -5
  81. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +2 -2
  82. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +2 -2
  83. package/front_end/models/badges/badges-meta.ts +27 -0
  84. package/front_end/models/bindings/CSSWorkspaceBinding.ts +4 -3
  85. package/front_end/models/bindings/ContentProviderBasedProject.ts +1 -1
  86. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +6 -7
  87. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +5 -4
  88. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +72 -29
  89. package/front_end/models/bindings/ResourceMapping.ts +38 -32
  90. package/front_end/models/bindings/ResourceScriptMapping.ts +5 -7
  91. package/front_end/models/breakpoints/BreakpointManager.ts +2 -1
  92. package/front_end/models/har/Writer.ts +2 -2
  93. package/front_end/models/issues_manager/ElementAccessibilityIssue.ts +1 -1
  94. package/front_end/models/issues_manager/GenericIssue.ts +1 -1
  95. package/front_end/models/issues_manager/IssuesManager.ts +14 -5
  96. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +1 -1
  97. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +2 -2
  98. package/front_end/models/issues_manager/SourceFrameIssuesManager.ts +13 -2
  99. package/front_end/models/issues_manager/issues_manager.ts +0 -2
  100. package/front_end/models/live-metrics/LiveMetrics.ts +22 -5
  101. package/front_end/models/live-metrics/web-vitals-injected/rollup.config.mjs +1 -1
  102. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +10 -4
  103. package/front_end/models/logs/logs-meta.ts +23 -16
  104. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +2 -2
  105. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
  106. package/front_end/models/persistence/IsolatedFileSystemManager.ts +1 -1
  107. package/front_end/models/source_map_scopes/NamesResolver.ts +104 -86
  108. package/front_end/models/source_map_scopes/ScopeChainModel.ts +6 -2
  109. package/front_end/models/stack_trace/StackTraceModel.ts +1 -1
  110. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -1
  111. package/front_end/models/trace/handlers/UserTimingsHandler.ts +17 -6
  112. package/front_end/models/trace/helpers/SamplesIntegrator.ts +1 -1
  113. package/front_end/models/trace/helpers/Timing.ts +1 -1
  114. package/front_end/models/trace/insights/Common.ts +1 -1
  115. package/front_end/models/trace/insights/DocumentLatency.ts +3 -3
  116. package/front_end/models/trace/insights/LCPDiscovery.ts +1 -1
  117. package/front_end/models/trace/insights/ModernHTTP.ts +1 -1
  118. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +2 -2
  119. package/front_end/models/workspace_diff/WorkspaceDiff.ts +14 -9
  120. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +2 -15
  121. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -2
  122. package/front_end/panels/ai_assistance/components/ChatInput.ts +23 -19
  123. package/front_end/panels/ai_assistance/components/ChatMessage.ts +9 -18
  124. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -35
  125. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +1 -1
  126. package/front_end/panels/ai_assistance/components/ExploreWidget.ts +4 -4
  127. package/front_end/panels/ai_assistance/components/ImageResize.ts +74 -0
  128. package/front_end/panels/ai_assistance/components/WalkthroughView.ts +2 -2
  129. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +28 -29
  130. package/front_end/panels/animation/AnimationTimeline.ts +3 -3
  131. package/front_end/panels/animation/animationTimeline.css +0 -2
  132. package/front_end/panels/application/AppManifestView.ts +1 -1
  133. package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -1
  134. package/front_end/panels/application/CookieItemsView.ts +1 -1
  135. package/front_end/panels/application/CrashReportContextView.ts +3 -3
  136. package/front_end/panels/application/DeviceBoundSessionsModel.ts +1 -1
  137. package/front_end/panels/application/DeviceBoundSessionsTreeElement.ts +1 -1
  138. package/front_end/panels/application/DeviceBoundSessionsView.ts +1 -1
  139. package/front_end/panels/application/IndexedDBViews.ts +1 -1
  140. package/front_end/panels/application/KeyValueStorageItemsView.ts +1 -1
  141. package/front_end/panels/application/OriginTrialTreeView.ts +1 -1
  142. package/front_end/panels/application/ServiceWorkersView.ts +6 -6
  143. package/front_end/panels/application/StorageBucketsTreeElement.ts +1 -1
  144. package/front_end/panels/application/StorageItemsToolbar.ts +3 -3
  145. package/front_end/panels/application/WebMCPView.ts +7 -5
  146. package/front_end/panels/application/components/AdsView.ts +21 -6
  147. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -2
  148. package/front_end/panels/application/components/ProtocolHandlersView.ts +1 -1
  149. package/front_end/panels/application/components/StorageMetadataView.ts +1 -1
  150. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +2 -2
  151. package/front_end/panels/application/preloading/components/PreloadingDetailsReportView.ts +2 -1
  152. package/front_end/panels/application/preloading/components/PreloadingString.ts +3 -3
  153. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -1
  154. package/front_end/panels/autofill/AutofillView.ts +1 -1
  155. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
  156. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +2 -2
  157. package/front_end/panels/changes/ChangesSidebar.ts +2 -2
  158. package/front_end/panels/changes/ChangesView.ts +4 -5
  159. package/front_end/panels/changes/CombinedDiffView.ts +3 -3
  160. package/front_end/panels/changes/changes-meta.ts +2 -2
  161. package/front_end/panels/common/AiCodeCompletionTeaser.ts +1 -1
  162. package/front_end/panels/common/AiCodeGenerationTeaser.ts +3 -3
  163. package/front_end/panels/common/BadgeNotification.ts +8 -8
  164. package/front_end/panels/common/DOMLinkifier.ts +1 -1
  165. package/front_end/panels/common/GdpSignUpDialog.ts +2 -2
  166. package/front_end/panels/common/GeminiRebrandPromoDialog.ts +1 -1
  167. package/front_end/panels/common/aiCodeCompletionDisclaimer.css +0 -1
  168. package/front_end/panels/console/ConsoleInsightTeaser.ts +1 -1
  169. package/front_end/panels/console/ConsolePinPane.ts +3 -3
  170. package/front_end/panels/console/ConsolePrompt.ts +6 -4
  171. package/front_end/panels/console/ConsoleSidebar.ts +8 -10
  172. package/front_end/panels/console_counters/WarningErrorCounter.ts +10 -11
  173. package/front_end/panels/coverage/CoverageView.ts +2 -2
  174. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -3
  175. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +1 -1
  176. package/front_end/panels/developer_resources/DeveloperResourcesView.ts +1 -1
  177. package/front_end/panels/elements/CSSRuleValidator.ts +1 -1
  178. package/front_end/panels/elements/ComputedStyleWidget.ts +3 -2
  179. package/front_end/panels/elements/ElementsTreeElement.ts +3 -3
  180. package/front_end/panels/elements/EventListenersWidget.ts +1 -3
  181. package/front_end/panels/elements/LayoutPane.ts +23 -13
  182. package/front_end/panels/elements/StandaloneStylesContainer.ts +7 -7
  183. package/front_end/panels/elements/StylePropertiesSection.ts +33 -5
  184. package/front_end/panels/elements/StylePropertyTreeElement.ts +5 -5
  185. package/front_end/panels/elements/StylesAiCodeCompletionProvider.ts +6 -6
  186. package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
  187. package/front_end/panels/elements/elements-meta.ts +18 -2
  188. package/front_end/panels/emulation/DeviceModeToolbar.ts +100 -40
  189. package/front_end/panels/emulation/DeviceModeView.ts +5 -4
  190. package/front_end/panels/emulation/MediaQueryInspector.ts +35 -19
  191. package/front_end/panels/event_listeners/EventListenersView.ts +4 -4
  192. package/front_end/panels/explain/components/ConsoleInsight.ts +8 -9
  193. package/front_end/panels/explain/explain-meta.ts +3 -3
  194. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +135 -167
  195. package/front_end/panels/layer_viewer/Layers3DView.ts +10 -23
  196. package/front_end/panels/layer_viewer/layer_viewer-meta.ts +27 -0
  197. package/front_end/panels/lighthouse/LighthouseController.ts +44 -55
  198. package/front_end/panels/lighthouse/LighthousePanel.ts +9 -9
  199. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +2 -2
  200. package/front_end/panels/lighthouse/LighthouseStartView.ts +9 -12
  201. package/front_end/panels/lighthouse/LighthouseStatusView.ts +33 -33
  202. package/front_end/panels/lighthouse/RadioSetting.ts +1 -1
  203. package/front_end/panels/lighthouse/lighthouse-meta.ts +131 -1
  204. package/front_end/panels/media/EventDisplayTable.ts +67 -94
  205. package/front_end/panels/media/PlayerListView.ts +1 -1
  206. package/front_end/panels/media/eventDisplayTable.css +9 -4
  207. package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +5 -5
  208. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +1 -1
  209. package/front_end/panels/network/EventSourceMessagesView.ts +98 -107
  210. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -1
  211. package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
  212. package/front_end/panels/network/RequestConditionsDrawer.ts +2 -2
  213. package/front_end/panels/network/RequestCookiesView.ts +2 -2
  214. package/front_end/panels/network/RequestHeadersView.ts +5 -5
  215. package/front_end/panels/network/RequestPayloadView.ts +4 -4
  216. package/front_end/panels/network/RequestTimingView.ts +2 -2
  217. package/front_end/panels/network/components/DirectSocketConnectionView.ts +1 -1
  218. package/front_end/panels/network/eventSourceMessagesView.css +12 -3
  219. package/front_end/panels/network/networkTimingTable.css +2 -2
  220. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
  221. package/front_end/panels/profiler/BottomUpProfileDataGrid.ts +25 -29
  222. package/front_end/panels/profiler/HeapProfileView.ts +308 -247
  223. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +13 -3
  224. package/front_end/panels/profiler/HeapSnapshotView.ts +30 -10
  225. package/front_end/panels/profiler/HeapTimelineOverview.ts +5 -2
  226. package/front_end/panels/profiler/ProfileDataGrid.ts +128 -157
  227. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +17 -5
  228. package/front_end/panels/profiler/ProfilesPanel.ts +2 -2
  229. package/front_end/panels/profiler/TopDownProfileDataGrid.ts +17 -21
  230. package/front_end/panels/profiler/profilesPanel.css +9 -13
  231. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +2 -2
  232. package/front_end/panels/recorder/CreateRecordingView.ts +4 -4
  233. package/front_end/panels/recorder/RecorderPanel.ts +6 -6
  234. package/front_end/panels/recorder/RecordingView.ts +1 -1
  235. package/front_end/panels/recorder/ReplaySection.ts +1 -1
  236. package/front_end/panels/recorder/StepView.ts +1 -1
  237. package/front_end/panels/recorder/injected/rollup.config.mjs +1 -1
  238. package/front_end/panels/search/SearchView.ts +1 -1
  239. package/front_end/panels/security/SecurityPanel.ts +54 -41
  240. package/front_end/panels/sensors/LocationsSettingsTab.ts +246 -233
  241. package/front_end/panels/sensors/SensorsView.ts +1 -1
  242. package/front_end/panels/settings/AISettingsTab.ts +11 -10
  243. package/front_end/panels/settings/SettingsScreen.ts +29 -24
  244. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +2 -2
  245. package/front_end/panels/sources/AiCodeCompletionPlugin.ts +5 -5
  246. package/front_end/panels/sources/BreakpointEditDialog.ts +2 -2
  247. package/front_end/panels/sources/BreakpointsView.ts +1 -1
  248. package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
  249. package/front_end/panels/sources/DebuggerPausedMessage.ts +2 -2
  250. package/front_end/panels/sources/DebuggerPlugin.ts +25 -22
  251. package/front_end/panels/sources/ScopeChainSidebarPane.ts +3 -1
  252. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +7 -5
  253. package/front_end/panels/sources/sources-meta.ts +1 -1
  254. package/front_end/panels/timeline/CountersGraph.ts +1 -2
  255. package/front_end/panels/timeline/ExtensionTrackAppender.ts +1 -1
  256. package/front_end/panels/timeline/TimelineDetailsView.ts +2 -2
  257. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -2
  258. package/front_end/panels/timeline/TimelineFlameChartView.ts +4 -4
  259. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
  260. package/front_end/panels/timeline/TimelinePanel.ts +53 -81
  261. package/front_end/panels/timeline/TimelineSelectorStatsView.ts +10 -3
  262. package/front_end/panels/timeline/TimelineUIUtils.ts +18 -4
  263. package/front_end/panels/timeline/TrackConfigBanner.ts +1 -1
  264. package/front_end/panels/timeline/components/ExportTraceOptions.ts +1 -1
  265. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +8 -9
  266. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +1 -1
  267. package/front_end/panels/timeline/components/TimelineRangeSummaryView.ts +1 -1
  268. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +2 -2
  269. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +1 -1
  270. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +1 -1
  271. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +2 -2
  272. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +5 -0
  273. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +13 -8
  274. package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +1 -0
  275. package/front_end/panels/timeline/timeline-meta.ts +169 -0
  276. package/front_end/panels/timeline/timelineFlameChartView.css +5 -0
  277. package/front_end/panels/webauthn/WebauthnPane.ts +1 -1
  278. package/front_end/panels/whats_new/ReleaseNoteText.ts +9 -9
  279. package/front_end/panels/whats_new/resources/WNDT.md +7 -8
  280. package/front_end/third_party/chromium/README.chromium +1 -1
  281. package/front_end/third_party/web-vitals/README.chromium +2 -2
  282. package/front_end/third_party/web-vitals/package/README.md +120 -19
  283. package/front_end/third_party/web-vitals/package/attribution.d.ts +16 -0
  284. package/front_end/third_party/web-vitals/package/attribution.js +18 -0
  285. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onCLS.d.ts +1 -1
  286. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.d.ts +1 -7
  287. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onFCP.js +53 -32
  288. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.d.ts +2 -2
  289. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +43 -12
  290. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +1 -1
  291. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +21 -3
  292. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.d.ts +1 -1
  293. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onTTFB.js +30 -24
  294. package/front_end/third_party/web-vitals/package/dist/modules/lib/FCPEntryManager.d.ts +3 -0
  295. package/front_end/third_party/web-vitals/package/dist/modules/lib/FCPEntryManager.js +18 -0
  296. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +2 -1
  297. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +18 -2
  298. package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.d.ts +1 -0
  299. package/front_end/third_party/web-vitals/package/dist/modules/lib/LCPEntryManager.js +1 -0
  300. package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.d.ts +1 -1
  301. package/front_end/third_party/web-vitals/package/dist/modules/lib/generateUniqueID.js +1 -1
  302. package/front_end/third_party/web-vitals/package/dist/modules/lib/getLoadState.d.ts +1 -1
  303. package/front_end/third_party/web-vitals/package/dist/modules/lib/getLoadState.js +7 -7
  304. package/front_end/third_party/web-vitals/package/dist/modules/lib/getSelector.js +1 -1
  305. package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.d.ts +1 -1
  306. package/front_end/third_party/web-vitals/package/dist/modules/lib/getVisibilityWatcher.js +4 -1
  307. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +7 -3
  308. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.js +20 -11
  309. package/front_end/third_party/web-vitals/package/dist/modules/lib/initUnique.js +8 -3
  310. package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.d.ts +3 -1
  311. package/front_end/third_party/web-vitals/package/dist/modules/lib/observe.js +19 -4
  312. package/front_end/third_party/web-vitals/package/dist/modules/lib/polyfills/interactionCountPolyfill.js +1 -1
  313. package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.d.ts +3 -0
  314. package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.js +38 -0
  315. package/front_end/third_party/web-vitals/package/dist/modules/lib/whenIdleOrHidden.js +5 -1
  316. package/front_end/third_party/web-vitals/package/dist/modules/onCLS.d.ts +1 -1
  317. package/front_end/third_party/web-vitals/package/dist/modules/onCLS.js +30 -11
  318. package/front_end/third_party/web-vitals/package/dist/modules/onFCP.d.ts +1 -1
  319. package/front_end/third_party/web-vitals/package/dist/modules/onFCP.js +36 -4
  320. package/front_end/third_party/web-vitals/package/dist/modules/onINP.d.ts +1 -1
  321. package/front_end/third_party/web-vitals/package/dist/modules/onINP.js +42 -22
  322. package/front_end/third_party/web-vitals/package/dist/modules/onLCP.d.ts +1 -1
  323. package/front_end/third_party/web-vitals/package/dist/modules/onLCP.js +109 -30
  324. package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.d.ts +1 -1
  325. package/front_end/third_party/web-vitals/package/dist/modules/onTTFB.js +25 -7
  326. package/front_end/third_party/web-vitals/package/dist/modules/types/base.d.ts +24 -1
  327. package/front_end/third_party/web-vitals/package/dist/modules/types/fcp.d.ts +1 -1
  328. package/front_end/third_party/web-vitals/package/dist/modules/types/inp.d.ts +14 -6
  329. package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +1 -1
  330. package/front_end/third_party/web-vitals/package/dist/modules/types/ttfb.d.ts +2 -2
  331. package/front_end/third_party/web-vitals/package/dist/modules/types.d.ts +26 -4
  332. package/front_end/third_party/web-vitals/package/package.json +21 -22
  333. package/front_end/third_party/web-vitals/package/src/attribution/onCLS.ts +1 -1
  334. package/front_end/third_party/web-vitals/package/src/attribution/onFCP.ts +62 -39
  335. package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +52 -15
  336. package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +25 -7
  337. package/front_end/third_party/web-vitals/package/src/attribution/onTTFB.ts +43 -37
  338. package/front_end/third_party/web-vitals/package/src/lib/{polyfills/getFirstHiddenTimePolyfill.ts → FCPEntryManager.ts} +4 -14
  339. package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +22 -2
  340. package/front_end/third_party/web-vitals/package/src/lib/LCPEntryManager.ts +1 -0
  341. package/front_end/third_party/web-vitals/package/src/lib/bindReporter.ts +1 -1
  342. package/front_end/third_party/web-vitals/package/src/lib/generateUniqueID.ts +1 -1
  343. package/front_end/third_party/web-vitals/package/src/lib/getLoadState.ts +11 -12
  344. package/front_end/third_party/web-vitals/package/src/lib/getSelector.ts +1 -1
  345. package/front_end/third_party/web-vitals/package/src/lib/getVisibilityWatcher.ts +4 -1
  346. package/front_end/third_party/web-vitals/package/src/lib/initMetric.ts +24 -11
  347. package/front_end/third_party/web-vitals/package/src/lib/initUnique.ts +12 -4
  348. package/front_end/third_party/web-vitals/package/src/lib/observe.ts +26 -5
  349. package/front_end/third_party/web-vitals/package/src/lib/polyfills/interactionCountPolyfill.ts +1 -1
  350. package/front_end/third_party/web-vitals/package/src/lib/softNavs.ts +48 -0
  351. package/front_end/third_party/web-vitals/package/src/lib/whenIdleOrHidden.ts +12 -4
  352. package/front_end/third_party/web-vitals/package/src/onCLS.ts +75 -18
  353. package/front_end/third_party/web-vitals/package/src/onFCP.ts +66 -7
  354. package/front_end/third_party/web-vitals/package/src/onINP.ts +100 -39
  355. package/front_end/third_party/web-vitals/package/src/onLCP.ts +169 -34
  356. package/front_end/third_party/web-vitals/package/src/onTTFB.ts +50 -13
  357. package/front_end/third_party/web-vitals/package/src/types/base.ts +31 -10
  358. package/front_end/third_party/web-vitals/package/src/types/fcp.ts +1 -1
  359. package/front_end/third_party/web-vitals/package/src/types/inp.ts +14 -6
  360. package/front_end/third_party/web-vitals/package/src/types/lcp.ts +1 -1
  361. package/front_end/third_party/web-vitals/package/src/types/ttfb.ts +2 -2
  362. package/front_end/third_party/web-vitals/package/src/types.ts +32 -9
  363. package/front_end/third_party/web-vitals/patches/0001-Add-onEachInteraction-to-onINP-options.patch +11 -11
  364. package/front_end/third_party/web-vitals/rebuild.sh +2 -2
  365. package/front_end/third_party/web-vitals/web-vitals-tsconfig.json +2 -0
  366. package/front_end/ui/components/buttons/Button.ts +16 -0
  367. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  368. package/front_end/ui/components/highlighting/HighlightManager.ts +6 -1
  369. package/front_end/ui/components/highlighting/highlighting.ts +1 -1
  370. package/front_end/ui/components/icon_button/FileSourceIcon.ts +1 -1
  371. package/front_end/ui/components/linkifier/LinkifierImpl.ts +1 -1
  372. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +2 -2
  373. package/front_end/ui/components/settings/SettingCheckbox.ts +12 -7
  374. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +2 -2
  375. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +6 -6
  376. package/front_end/ui/components/text_editor/javascript.ts +3 -1
  377. package/front_end/ui/components/tooltips/Tooltip.ts +1 -1
  378. package/front_end/ui/legacy/ContextMenu.ts +12 -2
  379. package/front_end/ui/legacy/ListControl.ts +1 -1
  380. package/front_end/ui/legacy/SelectMenu.docs.ts +17 -19
  381. package/front_end/ui/legacy/Toolbar.ts +4 -1
  382. package/front_end/ui/legacy/Treeoutline.ts +1 -1
  383. package/front_end/ui/legacy/components/color_picker/spectrum.css +1 -2
  384. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
  385. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -4
  386. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +3 -1
  387. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +4 -4
  388. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +8 -7
  389. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +14 -11
  390. package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +1 -1
  391. package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +15 -5
  392. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +4 -4
  393. package/front_end/ui/legacy/components/utils/Linkifier.ts +5 -1
  394. package/front_end/ui/lit/render.ts +1 -1
  395. package/front_end/ui/settings/SettingUIRegistration.ts +8 -3
  396. package/front_end/ui/visual_logging/KnownContextValues.ts +8 -0
  397. package/front_end/ui/visual_logging/LoggingEvents.ts +1 -1
  398. package/inspector_overlay/main.ts +1 -1
  399. package/mcp/mcp.ts +5 -4
  400. package/package.json +13 -13
  401. package/front_end/models/ai_assistance/AgentProject.ts +0 -261
  402. package/front_end/models/ai_assistance/agents/PatchAgent.ts +0 -306
  403. package/front_end/models/issues_manager/CheckFormsIssuesTrigger.ts +0 -45
  404. package/front_end/models/text_utils/text_utils.ts +0 -5
  405. package/front_end/panels/ai_assistance/PatchWidget.ts +0 -867
  406. package/front_end/panels/ai_assistance/SelectWorkspaceDialog.ts +0 -368
  407. package/front_end/panels/ai_assistance/selectWorkspaceDialog.css +0 -92
@@ -124,7 +124,7 @@ const DEFAULT_VIEW: View = (input, output, target) => {
124
124
  {offset: 0.9, width: '100%', opacity: 1},
125
125
  {offset: 1, width: '100%', opacity: 0},
126
126
  ],
127
- {duration: 200, easing: 'cubic-bezier(0, 0, 0.2, 1)'}
127
+ {duration: 200, easing: 'cubic-bezier(0, 0, 0.2, 1)'},
128
128
  );
129
129
  };
130
130
  }
@@ -195,34 +195,33 @@ export class AnimationGroupPreviewUI extends UI.Widget.Widget {
195
195
  }
196
196
 
197
197
  override performUpdate(): void {
198
- this.#view(
199
- {
200
- isScrollDrivenAnimationGroup: this.#config.animationGroup.isScrollDriven(),
201
- isPreviewAnimationDisabled: this.#previewAnimationDisabled,
202
- isSelected: this.#selected,
203
- isPaused: this.#paused,
204
- isFocusable: this.#focusable,
205
- label: this.#config.label,
206
- animationGroupDuration: this.#config.animationGroup.groupDuration(),
207
- animations: this.#config.animationGroup.animations().slice(0, MAX_ANIMATION_LINES_TO_SHOW),
208
- onPreviewAnimationEnd: () => {
209
- this.#previewAnimationDisabled = true;
210
- this.requestUpdate();
211
- },
212
- onRemoveAnimationGroup: () => {
213
- this.#config.onRemoveAnimationGroup();
214
- },
215
- onSelectAnimationGroup: () => {
216
- this.#config.onSelectAnimationGroup();
217
- },
218
- onFocusNextGroup: () => {
219
- this.#config.onFocusNextGroup();
220
- },
221
- onFocusPreviousGroup: () => {
222
- this.#config.onFocusPreviousGroup();
223
- }
224
- },
225
- this.#viewOutput, this.contentElement);
198
+ this.#view({
199
+ isScrollDrivenAnimationGroup: this.#config.animationGroup.isScrollDriven(),
200
+ isPreviewAnimationDisabled: this.#previewAnimationDisabled,
201
+ isSelected: this.#selected,
202
+ isPaused: this.#paused,
203
+ isFocusable: this.#focusable,
204
+ label: this.#config.label,
205
+ animationGroupDuration: this.#config.animationGroup.groupDuration(),
206
+ animations: this.#config.animationGroup.animations().slice(0, MAX_ANIMATION_LINES_TO_SHOW),
207
+ onPreviewAnimationEnd: () => {
208
+ this.#previewAnimationDisabled = true;
209
+ this.requestUpdate();
210
+ },
211
+ onRemoveAnimationGroup: () => {
212
+ this.#config.onRemoveAnimationGroup();
213
+ },
214
+ onSelectAnimationGroup: () => {
215
+ this.#config.onSelectAnimationGroup();
216
+ },
217
+ onFocusNextGroup: () => {
218
+ this.#config.onFocusNextGroup();
219
+ },
220
+ onFocusPreviousGroup: () => {
221
+ this.#config.onFocusPreviousGroup();
222
+ },
223
+ },
224
+ this.#viewOutput, this.contentElement);
226
225
  }
227
226
 
228
227
  override focus(): void {
@@ -470,7 +470,7 @@ export class AnimationTimeline extends UI.Widget.VBox implements
470
470
  },
471
471
  onSetPlaybackRateClick: (playbackRate: number) => {
472
472
  this.setPlaybackRate(playbackRate);
473
- }
473
+ },
474
474
  },
475
475
  undefined, this.#toolbarViewContainer);
476
476
  }
@@ -698,7 +698,7 @@ export class AnimationTimeline extends UI.Widget.VBox implements
698
698
  },
699
699
  onFocusPreviousGroup: () => {
700
700
  this.focusNextGroup(group, /* focusPrevious */ true);
701
- }
701
+ },
702
702
  });
703
703
 
704
704
  const previewUiContainer = document.createElement('div');
@@ -1216,7 +1216,7 @@ export class NodeUI {
1216
1216
  const link = PanelsCommon.DOMLinkifier.Linkifier.instance().linkify(node, {
1217
1217
  onClick: () => {
1218
1218
  Host.userMetrics.actionTaken(Host.UserMetrics.Action.AnimatedNodeDescriptionClicked);
1219
- }
1219
+ },
1220
1220
  });
1221
1221
  render(link, this.#description, {host: this});
1222
1222
  if (!node.ownerDocument) {
@@ -44,13 +44,11 @@
44
44
  }
45
45
 
46
46
  path.animation-keyframe {
47
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
48
47
  fill-opacity: 20%;
49
48
  }
50
49
 
51
50
  .animation-node-selected path.animation-keyframe,
52
51
  svg.animation-ui g:first-child:hover path.animation-keyframe {
53
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
54
52
  fill-opacity: 40%;
55
53
  }
56
54
 
@@ -1098,7 +1098,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
1098
1098
  ${isEmpty ? widget(UI.EmptyWidget.EmptyWidget, {
1099
1099
  header: i18nString(UIStrings.noManifestDetected),
1100
1100
  text: i18nString(UIStrings.manifestDescription),
1101
- link: 'https://web.dev/add-manifest/' as Platform.DevToolsPath.UrlString
1101
+ link: 'https://web.dev/add-manifest/' as Platform.DevToolsPath.UrlString,
1102
1102
  }) : html`
1103
1103
  <devtools-report .data=${{reportTitle: i18nString(UIStrings.appManifest), reportUrl: url}}>
1104
1104
  ${renderErrors(warnings, errors, imageErrors, output)}
@@ -296,7 +296,7 @@ const UIStrings = {
296
296
  /**
297
297
  * @description Description text in the Application Panel describing a frame's resources
298
298
  */
299
- resourceDescription: 'On this page you can view the frame’s resources.'
299
+ resourceDescription: 'On this page you can view the frame’s resources.',
300
300
  } as const;
301
301
  const str_ = i18n.i18n.registerUIStrings('panels/application/ApplicationPanelSidebar.ts', UIStrings);
302
302
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -230,7 +230,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
230
230
  </devtools-widget>` :
231
231
  html`<devtools-widget ${widget(UI.EmptyWidget.EmptyWidget, {
232
232
  header: i18nString(UIStrings.noCookieSelected),
233
- text: i18nString(UIStrings.selectACookieToPreviewItsValue)
233
+ text: i18nString(UIStrings.selectACookieToPreviewItsValue),
234
234
  })}></devtools-widget>`}
235
235
  </devtools-widget>
236
236
  </devtools-split-view>
@@ -107,7 +107,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
107
107
  .iconName=${'refresh'}
108
108
  .variant=${Buttons.Button.Variant.TOOLBAR}
109
109
  jslog=${VisualLogging.action('refresh').track({
110
- click: true
110
+ click: true,
111
111
  })}>
112
112
  </devtools-button>
113
113
  <devtools-toolbar-input type="filter" placeholder=${i18nString(UIStrings.filterByText)}
@@ -127,8 +127,8 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
127
127
  data: {
128
128
  entries: frame.entries.map(e => ({key: e.key, value: e.value})),
129
129
  selectedKey: input.selectedKey || undefined,
130
- filters: input.filters
131
- }
130
+ filters: input.filters,
131
+ },
132
132
  })}
133
133
  @select=${(e: CustomEvent<string>) => input.onRowSelected(e.detail)}>
134
134
  </devtools-widget>
@@ -155,7 +155,7 @@ export class DeviceBoundSessionsModel extends Common.ObjectWrapper.ObjectWrapper
155
155
  sessionAndEvent = {
156
156
  isSessionTerminated: false,
157
157
  hasErrors: false,
158
- eventsById: new Map<string, EventWithTimestamp>()
158
+ eventsById: new Map<string, EventWithTimestamp>(),
159
159
  };
160
160
  sessionIdToSessionMap.set(sessionId, sessionAndEvent);
161
161
  }
@@ -12,7 +12,7 @@ import {ApplicationPanelTreeElement} from './ApplicationPanelTreeElement.js';
12
12
  import {
13
13
  DeviceBoundSessionModelEvents,
14
14
  type DeviceBoundSessionModelEventTypes,
15
- type DeviceBoundSessionsModel
15
+ type DeviceBoundSessionsModel,
16
16
  } from './DeviceBoundSessionsModel.js';
17
17
  import type {ResourcesPanel} from './ResourcesPanel.js';
18
18
 
@@ -16,7 +16,7 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
16
16
  import {
17
17
  DeviceBoundSessionModelEvents,
18
18
  type DeviceBoundSessionsModel,
19
- type SessionAndEvents
19
+ type SessionAndEvents,
20
20
  } from './DeviceBoundSessionsModel.js';
21
21
  import deviceBoundSessionsViewStyles from './deviceBoundSessionsView.css.js';
22
22
  const {widget} = UI.Widget;
@@ -293,7 +293,7 @@ const renderDataGrid = (input: IndexedDBDataViewInput): LitTemplate => {
293
293
  <td>${widget(ObjectPropertiesSectionWidget, {value: entry.key})}</td>
294
294
  ${input.isIndex ? html`<td>${widget(ObjectPropertiesSectionWidget, {value: entry.primaryKey})}</td>` : nothing}
295
295
  <td class="value-column">${widget(ObjectPropertiesSectionWidget, {value: entry.value})}</td>
296
- </tr>`
296
+ </tr>`,
297
297
  )}
298
298
  </table>`}>
299
299
  </devtools-data-grid>`;
@@ -229,7 +229,7 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
229
229
  const viewOutput = {
230
230
  set toolbar(toolbar: StorageItemsToolbar) {
231
231
  that.#toolbar = toolbar;
232
- }
232
+ },
233
233
  };
234
234
  const viewInput = {
235
235
  items: this.#items,
@@ -238,7 +238,7 @@ export class OriginTrialTokenRows extends UI.Widget.Widget {
238
238
  name: i18nString(UIStrings.expiryTime),
239
239
  value: {
240
240
  text: this.#dateFormatter.format(this.#tokenWithStatus.parsedToken.expiryTime * 1000),
241
- hasError: this.#tokenWithStatus.status === Protocol.Page.OriginTrialTokenStatus.Expired
241
+ hasError: this.#tokenWithStatus.status === Protocol.Page.OriginTrialTokenStatus.Expired,
242
242
  },
243
243
  },
244
244
  {
@@ -288,9 +288,9 @@ export const DEFAULT_VIEW: View = (input, _output, target): void => {
288
288
  container: {
289
289
  classes: [
290
290
  'service-worker-list',
291
- (input.sections.length > 0 ? 'service-worker-has-current' : 'service-worker-list-empty')
292
- ]
293
- }
291
+ (input.sections.length > 0 ? 'service-worker-has-current' : 'service-worker-list-empty'),
292
+ ],
293
+ },
294
294
  });
295
295
  // clang-format on
296
296
  };
@@ -502,7 +502,7 @@ function renderHeaderButtons(input: SectionViewInput): LitTemplate {
502
502
  <devtools-button .data=${{
503
503
  variant: Buttons.Button.Variant.TEXT,
504
504
  title: i18nString(UIStrings.networkRequests),
505
- jslogContext: 'show-network-requests'
505
+ jslogContext: 'show-network-requests',
506
506
  } as Buttons.Button.ButtonData}
507
507
  .disabled=${input.isDeleted}
508
508
  @click=${input.onNetworkRequests}>
@@ -511,7 +511,7 @@ function renderHeaderButtons(input: SectionViewInput): LitTemplate {
511
511
  <devtools-button .data=${{
512
512
  variant: Buttons.Button.Variant.TEXT,
513
513
  title: i18nString(UIStrings.update),
514
- jslogContext: 'update'
514
+ jslogContext: 'update',
515
515
  } as Buttons.Button.ButtonData}
516
516
  .disabled=${input.isDeleted}
517
517
  @click=${input.onUpdate}>
@@ -520,7 +520,7 @@ function renderHeaderButtons(input: SectionViewInput): LitTemplate {
520
520
  <devtools-button .data=${{
521
521
  variant: Buttons.Button.Variant.TEXT,
522
522
  title: i18nString(UIStrings.unregisterServiceWorker),
523
- jslogContext: 'unregister'
523
+ jslogContext: 'unregister',
524
524
  } as Buttons.Button.ButtonData}
525
525
  .disabled=${input.isDeleted}
526
526
  @click=${input.onUnregister}>
@@ -37,7 +37,7 @@ const UIStrings = {
37
37
  * deleted independently. https://developer.chrome.com/docs/web-platform/storage-buckets.
38
38
  */
39
39
  storageBucketsDescription:
40
- 'On this page you can view and delete storage buckets, and their associated `Storage APIs`.'
40
+ 'On this page you can view and delete storage buckets, and their associated `Storage APIs`.',
41
41
  } as const;
42
42
  const str_ = i18n.i18n.registerUIStrings('panels/application/StorageBucketsTreeElement.ts', UIStrings);
43
43
  export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -59,7 +59,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: object, target: HTMLElem
59
59
  jslog=${VisualLogging.toolbar()}>
60
60
  <devtools-button title=${i18nString(UIStrings.refresh)}
61
61
  jslog=${VisualLogging.action('storage-items-view.refresh').track({
62
- click: true
62
+ click: true,
63
63
  })}
64
64
  @click=${input.onRefresh}
65
65
  .iconName=${'refresh'}
@@ -74,7 +74,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: object, target: HTMLElem
74
74
  id=storage-items-delete-all
75
75
  ?disabled=${!input.deleteAllButtonEnabled}
76
76
  jslog=${VisualLogging.action('storage-items-view.clear-all').track({
77
- click: true
77
+ click: true,
78
78
  })}
79
79
  .iconName=${input.deleteAllButtonIconName}
80
80
  .variant=${Buttons.Button.Variant.TOOLBAR}></devtools-button>
@@ -82,7 +82,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: object, target: HTMLElem
82
82
  @click=${input.onDeleteSelected}
83
83
  ?disabled=${!input.deleteSelectedButtonDisabled}
84
84
  jslog=${VisualLogging.action('storage-items-view.delete-selected').track({
85
- click: true
85
+ click: true,
86
86
  })}
87
87
  .iconName=${'cross'}
88
88
  .variant=${Buttons.Button.Variant.TOOLBAR}></devtools-button>
@@ -338,8 +338,10 @@ function toolStatsIcon(status: Protocol.WebMCP.InvocationStatus|undefined): {ico
338
338
  function getIconGroupsFromStats(toolStats?: ToolStats):
339
339
  Array<IconButton.IconButton.IconWithTextData&{status: Protocol.WebMCP.InvocationStatus | undefined}> {
340
340
  const status = [
341
- Protocol.WebMCP.InvocationStatus.Completed, Protocol.WebMCP.InvocationStatus.Error,
342
- Protocol.WebMCP.InvocationStatus.Canceled, undefined
341
+ Protocol.WebMCP.InvocationStatus.Completed,
342
+ Protocol.WebMCP.InvocationStatus.Error,
343
+ Protocol.WebMCP.InvocationStatus.Canceled,
344
+ undefined,
343
345
  ];
344
346
  return status
345
347
  .map(status => ({
@@ -691,7 +693,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
691
693
  ...getJSONEditorParameters(input.selectedTool.tool),
692
694
  commandToDisplay: {
693
695
  command: input.selectedTool.tool.name,
694
- parameters: input.selectedTool.parameters || {}
696
+ parameters: input.selectedTool.parameters || {},
695
697
  },
696
698
  })}
697
699
  ${UI.Widget.widgetRef(ProtocolMonitor.JSONEditor.JSONEditor, e => { editorWidget = e; })}
@@ -709,7 +711,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
709
711
  data: {
710
712
  command: input.selectedTool.tool.name,
711
713
  parameters: params,
712
- } as ProtocolMonitor.JSONEditor.Command
714
+ } as ProtocolMonitor.JSONEditor.Command,
713
715
  });
714
716
  }
715
717
  }}>Run tool</devtools-button>
@@ -1145,7 +1147,7 @@ const TOOL_DETAILS_VIEW = (input: ToolDetailsViewInput, output: undefined, targe
1145
1147
  <devtools-node-text .data=${{
1146
1148
  nodeId: origin.getAttribute('id') || undefined,
1147
1149
  nodeTitle: origin.nodeNameInCorrectCase(),
1148
- nodeClasses: origin.getAttribute('class')?.split(/\s+/).filter(s => Boolean(s))
1150
+ nodeClasses: origin.getAttribute('class')?.split(/\s+/).filter(s => Boolean(s)),
1149
1151
  } as NodeText.NodeText.NodeTextData}>
1150
1152
  </devtools-node-text>
1151
1153
  </span>
@@ -102,6 +102,7 @@ interface AdFrameNodeData {
102
102
  initialOrigin: string;
103
103
  networkBytes: string;
104
104
  cpuTime: string;
105
+ revealFrame: (e: Event) => void;
105
106
  }
106
107
 
107
108
  export interface ViewInput {
@@ -212,7 +213,15 @@ const DEFAULT_VIEW: View = (input, output, target) => {
212
213
  </tr>
213
214
  ${input.adFrames.map(frame => html`
214
215
  <tr>
215
- <td title=${frame.elementId}>${frame.elementId}</td>
216
+ <td title=${frame.elementId}>
217
+ ${frame.elementId
218
+ ? html`
219
+ <button class="text-button link-style devtools-link" @click=${frame.revealFrame}>
220
+ ${frame.elementId}
221
+ </button>
222
+ `
223
+ : Lit.nothing}
224
+ </td>
216
225
  <td title=${frame.initialOrigin}>${frame.initialOrigin}</td>
217
226
  <td title=${frame.cpuTime}>${frame.cpuTime}</td>
218
227
  <td title=${frame.networkBytes}>${frame.networkBytes}</td>
@@ -365,11 +374,7 @@ export class AdsView extends UI.Widget.Widget {
365
374
  if (!frame) {
366
375
  return undefined;
367
376
  }
368
- const domModel = frame.resourceTreeModel().target().model(SDK.DOMModel.DOMModel);
369
- if (!domModel) {
370
- return undefined;
371
- }
372
- const deferredNode = await domModel.getOwnerNodeForFrame(frameId);
377
+ const deferredNode = await frame.getOwnerDeferredDOMNode();
373
378
  if (deferredNode) {
374
379
  const node = await deferredNode.resolvePromise();
375
380
  return node?.getAttribute('id') || null;
@@ -403,11 +408,21 @@ export class AdsView extends UI.Widget.Widget {
403
408
  (this.#adIframeElementIds.get(frameId) || i18nString(UIStrings.unnamed)) :
404
409
  '';
405
410
 
411
+ const revealFrame = (e: Event): void => {
412
+ e.preventDefault();
413
+ e.stopPropagation();
414
+ const frameToReveal = SDK.FrameManager.FrameManager.instance().getFrame(frameId);
415
+ if (frameToReveal) {
416
+ void Common.Revealer.reveal(frameToReveal);
417
+ }
418
+ };
419
+
406
420
  adFramesArray.push({
407
421
  elementId: elementIdText,
408
422
  initialOrigin: frame.initialOrigin || '',
409
423
  cpuTime: formatCpu(frame.cpuTime),
410
424
  networkBytes: formatNetwork(frame.networkBytes),
425
+ revealFrame,
411
426
  });
412
427
  }
413
428
 
@@ -362,7 +362,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
362
362
  title: i18nString(UIStrings.framesPerIssue, {n: frames.length}),
363
363
  } as ExpandableList.ExpandableList.ExpandableListData}
364
364
  jslog=${VisualLogging.treeItem().track({
365
- resize: true
365
+ resize: true,
366
366
  })}></devtools-expandable-list>
367
367
  </div>
368
368
  `;
@@ -394,7 +394,7 @@ function maybeRenderJavaScriptDetails(details: Protocol.Page.BackForwardCacheBlo
394
394
  columnNumber: detail.columnNumber,
395
395
  showColumnNumber: true,
396
396
  maxLength: maxLengthForDisplayedURLs,
397
- }
397
+ },
398
398
  })}`));
399
399
  return html`
400
400
  <div class="details-list">
@@ -17,7 +17,7 @@ import {
17
17
  type LitTemplate,
18
18
  nothing,
19
19
  render,
20
- type TemplateResult
20
+ type TemplateResult,
21
21
  } from '../../../ui/lit/lit.js';
22
22
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
23
23
 
@@ -244,7 +244,7 @@ export class StorageMetadataView extends LegacyWrapper.LegacyWrapper.WrappableCo
244
244
  @click=${revealBucket}
245
245
  title=${name}
246
246
  jslog=${VisualLogging.action('storage-bucket').track({
247
- click: true
247
+ click: true,
248
248
  })}
249
249
  >${name}</devtools-link>`;
250
250
  };
@@ -124,7 +124,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, never>, t
124
124
  case Diff.Diff.Operation.Insert:
125
125
  return html`<span style=${styleMap({
126
126
  color: 'var(--sys-color-green)',
127
- 'text-decoration': 'line-through'
127
+ 'text-decoration': 'line-through',
128
128
  })}
129
129
  >${s}</span>`;
130
130
  case Diff.Diff.Operation.Delete:
@@ -132,7 +132,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, never>, t
132
132
  case Diff.Diff.Operation.Edit:
133
133
  return html`<span style=${styleMap({
134
134
  color: 'var(--sys-color-green',
135
- 'text-decoration': 'line-through'
135
+ 'text-decoration': 'line-through',
136
136
  })}
137
137
  >${s}</span>`;
138
138
  default:
@@ -273,7 +273,8 @@ export class PreloadingDetailsReportView extends LegacyWrapper.LegacyWrapper.Wra
273
273
 
274
274
  #isPrerenderLike(speculationAction: Protocol.Preload.SpeculationAction): boolean {
275
275
  return [
276
- Protocol.Preload.SpeculationAction.Prerender, Protocol.Preload.SpeculationAction.PrerenderUntilScript
276
+ Protocol.Preload.SpeculationAction.Prerender,
277
+ Protocol.Preload.SpeculationAction.PrerenderUntilScript,
277
278
  ].includes(speculationAction);
278
279
  }
279
280
 
@@ -332,7 +332,7 @@ const UIStrings = {
332
332
  * Description text for PrerenderFinalStatus::kSpeculationRuleRemoved.
333
333
  */
334
334
  prerenderFinalStatusSpeculationRuleRemoved:
335
- 'The prerendered page was unloaded because the initiating page removed the corresponding prerender rule from <script type="speculationrules">.',
335
+ 'The prerendered page was unloaded because the initiating page removed the corresponding prerender rule from `<script type="speculationrules">`.',
336
336
  /**
337
337
  * Description text for PrerenderFinalStatus::kActivatedWithAuxiliaryBrowsingContexts.
338
338
  */
@@ -342,7 +342,7 @@ const UIStrings = {
342
342
  * Description text for PrerenderFinalStatus::kMaxNumOfRunningEagerPrerendersExceeded.
343
343
  */
344
344
  prerenderFinalStatusMaxNumOfRunningEagerPrerendersExceeded:
345
- 'The prerender whose eagerness is "eager" was not performed because the initiating page already has too many prerenders ongoing. Remove other speculation rules with "eager" to enable further prerendering.',
345
+ 'The prerender whose eagerness is "`eager`" was not performed because the initiating page already has too many prerenders ongoing. Remove other speculation rules with "`eager`" to enable further prerendering.',
346
346
  /**
347
347
  * Description text for PrerenderFinalStatus::kMaxNumOfRunningEmbedderPrerendersExceeded.
348
348
  */
@@ -352,7 +352,7 @@ const UIStrings = {
352
352
  * Description text for PrerenderFinalStatus::kMaxNumOfRunningNonEagerPrerendersExceeded.
353
353
  */
354
354
  prerenderFinalStatusMaxNumOfRunningNonEagerPrerendersExceeded:
355
- 'The old non-eager prerender (with a "moderate" or "conservative" eagerness and triggered by hovering or clicking links) was automatically canceled due to starting a new non-eager prerender. It can be retriggered by interacting with the link again.',
355
+ 'The old non-eager prerender (with a "`moderate`" or "`conservative`" eagerness and triggered by hovering or clicking links) was automatically canceled due to starting a new non-eager prerender. It can be retriggered by interacting with the link again.',
356
356
  /**
357
357
  * Description text for PrenderFinalStatus::kPrerenderingUrlHasEffectiveUrl.
358
358
  */
@@ -451,7 +451,8 @@ export class UsedPreloadingView extends UI.Widget.VBox {
451
451
 
452
452
  #isPrerenderLike(speculationAction: Protocol.Preload.SpeculationAction): boolean {
453
453
  return [
454
- Protocol.Preload.SpeculationAction.Prerender, Protocol.Preload.SpeculationAction.PrerenderUntilScript
454
+ Protocol.Preload.SpeculationAction.Prerender,
455
+ Protocol.Preload.SpeculationAction.PrerenderUntilScript,
455
456
  ].includes(speculationAction);
456
457
  }
457
458
 
@@ -209,7 +209,7 @@ const DEFAULT_VIEW: View = (input: ViewInput, _output: ViewOutput, target: HTMLE
209
209
  Lit.nothing}
210
210
  </td>
211
211
  <td>"${field.value}"</td>
212
- </tr>`
212
+ </tr>`,
213
213
  )}
214
214
  </table>
215
215
  </devtools-data-grid>
@@ -179,7 +179,7 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
179
179
  </div>`}
180
180
  </div>
181
181
  `,
182
- target
182
+ target,
183
183
  );
184
184
  // clang-format on
185
185
  };
@@ -170,7 +170,7 @@ export class XHRBreakpointsSidebarPane extends UI.Widget.VBox implements UI.Cont
170
170
  @cancel=${cancel}>
171
171
  </devtools-prompt>
172
172
  `,
173
- inputElementContainer
173
+ inputElementContainer,
174
174
  );
175
175
  // clang-format on
176
176
  }
@@ -282,7 +282,7 @@ export class XHRBreakpointsSidebarPane extends UI.Widget.VBox implements UI.Cont
282
282
  </devtools-checkbox>
283
283
  </div>
284
284
  `,
285
- listItemElement
285
+ listItemElement,
286
286
  );
287
287
  // clang-format on
288
288
 
@@ -17,7 +17,7 @@ import changesSidebarStyles from './changesSidebar.css.js';
17
17
 
18
18
  const UIStrings = {
19
19
  /**
20
- * @description Name of an item from source map
20
+ * @description Tooltip title for a file item in the Changes sidebar when the file is generated from a source map.
21
21
  * @example {compile.html} PH1
22
22
  */
23
23
  sFromSourceMap: '{PH1} (from source map)',
@@ -95,7 +95,7 @@ export class ChangesSidebar extends Common.ObjectWrapper.eventMixin<EventTypes,
95
95
  const input: ViewInput = {
96
96
  onSelect: uiSourceCode => this.#selectionChanged(uiSourceCode),
97
97
  sourceCodes: this.#sourceCodes,
98
- selectedSourceCode: this.#selectedUISourceCode
98
+ selectedSourceCode: this.#selectedUISourceCode,
99
99
  };
100
100
  this.#view(input, {}, this.contentElement);
101
101
  }
@@ -20,14 +20,13 @@ const CHANGES_VIEW_URL = 'https://developer.chrome.com/docs/devtools/changes' as
20
20
 
21
21
  const UIStrings = {
22
22
  /**
23
- * @description Text in Changes View of the Changes tab if no change has been made so far.
23
+ * @description Title shown in the Changes panel when no code changes have been made.
24
24
  */
25
25
  noChanges: 'No changes yet',
26
26
  /**
27
- * @description Text in Changes View of the Changes tab to explain the Changes panel.
27
+ * @description Description text shown in the Changes panel explaining how to track code changes.
28
28
  */
29
- changesViewDescription: 'On this page you can track code changes made within DevTools.',
30
-
29
+ changesViewDescription: 'Track code changes made within DevTools.',
31
30
  } as const;
32
31
  const str_ = i18n.i18n.registerUIStrings('panels/changes/ChangesView.ts', UIStrings);
33
32
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -58,7 +57,7 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
58
57
  <div class=diff-container role=tabpanel ?hidden=${input.workspaceDiff.modifiedUISourceCodes().length === 0}>
59
58
  ${widget(CombinedDiffView.CombinedDiffView, {
60
59
  selectedFileUrl: input.selectedSourceCode?.url(),
61
- workspaceDiff: input.workspaceDiff
60
+ workspaceDiff: input.workspaceDiff,
62
61
  })}
63
62
  </div>
64
63
  </div>
@@ -25,11 +25,11 @@ const {html, Directives: {classMap}} = Lit;
25
25
 
26
26
  const UIStrings = {
27
27
  /**
28
- * @description The title of the button after it was pressed and the text was copied to clipboard.
28
+ * @description Text shown after copying code changes to the clipboard.
29
29
  */
30
30
  copied: 'Copied to clipboard',
31
31
  /**
32
- * @description The title of the copy file to clipboard button
32
+ * @description Title of the button to copy file content to the clipboard.
33
33
  * @example {index.css} PH1
34
34
  */
35
35
  copyFile: 'Copy file {PH1} to clipboard',
@@ -242,7 +242,7 @@ export class CombinedDiffView extends UI.Widget.Widget {
242
242
  if (fileSystemUiSourceCode) {
243
243
  displayText = [
244
244
  fileSystemUiSourceCode.project().displayName(),
245
- ...Persistence.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.relativePath(fileSystemUiSourceCode)
245
+ ...Persistence.FileSystemWorkspaceBinding.FileSystemWorkspaceBinding.relativePath(fileSystemUiSourceCode),
246
246
  ].join('/');
247
247
  }
248
248
  return {
@@ -11,11 +11,11 @@ let loadedChangesModule: (typeof Changes|undefined);
11
11
 
12
12
  const UIStrings = {
13
13
  /**
14
- * @description Title of the 'Changes' tool in the bottom drawer
14
+ * @description Title of the Changes panel.
15
15
  */
16
16
  changes: 'Changes',
17
17
  /**
18
- * @description Command for showing the 'Changes' tool in the bottom drawer
18
+ * @description Command for showing the Changes panel.
19
19
  */
20
20
  showChanges: 'Show Changes',
21
21
  } as const;