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
@@ -7,20 +7,20 @@ import * as Common from '../../../../core/common/common.js';
7
7
  import * as i18n from '../../../../core/i18n/i18n.js';
8
8
  import type * as SDK from '../../../../core/sdk/sdk.js';
9
9
  import type * as Protocol from '../../../../generated/protocol.js';
10
- import {createIcon, type Icon} from '../../../kit/kit.js';
11
- import {render} from '../../../lit/lit.js';
10
+ import {Directives, html, type LitTemplate, nothing, render} from '../../../lit/lit.js';
12
11
  import * as UI from '../../legacy.js';
13
12
 
14
13
  import {sanitizeStyle} from './CSSStyleSanitizer.js';
15
14
  import customPreviewComponentStyles from './customPreviewComponent.css.js';
16
15
  import {
17
- defaultObjectPresentation as defaultObjectPresentationTemplate,
16
+ defaultObjectPresentation,
18
17
  ObjectPropertiesMode,
19
- ObjectPropertiesSectionsTreeOutline,
20
- ObjectPropertyTreeElement,
18
+ ObjectPropertiesSectionWidget,
21
19
  ObjectTree,
22
20
  } from './ObjectPropertiesSection.js';
23
21
 
22
+ const {widget} = UI.Widget;
23
+
24
24
  const UIStrings = {
25
25
  /**
26
26
  * @description Context menu item to show a custom formatted object as a standard JavaScript object.
@@ -33,54 +33,76 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
33
33
  export class CustomPreviewSection {
34
34
  private readonly sectionElement: HTMLSpanElement;
35
35
  private readonly object: SDK.RemoteObject.RemoteObject;
36
- private expanded: boolean;
37
- private cachedContent: Node|null;
38
- private readonly header: Node|undefined;
39
- private readonly expandIcon: Icon|undefined;
36
+ private expanded = false;
37
+ private cachedContent?: unknown|ObjectTree|null;
38
+ private headerJsonML?: unknown;
40
39
  constructor(object: SDK.RemoteObject.RemoteObject) {
41
40
  this.sectionElement = document.createElement('span');
42
41
  this.sectionElement.classList.add('custom-expandable-section');
43
42
  this.object = object;
44
- this.expanded = false;
45
- this.cachedContent = null;
46
43
  const customPreview = object.customPreview();
47
44
 
48
45
  if (!customPreview) {
49
46
  return;
50
47
  }
51
48
 
52
- let headerJSON;
53
49
  try {
54
- headerJSON = JSON.parse(customPreview.header);
50
+ this.headerJsonML = JSON.parse(customPreview.header);
55
51
  } catch (e) {
56
52
  Common.Console.Console.instance().error('Broken formatter: header is invalid json ' + e);
57
53
  return;
58
54
  }
59
- this.header = this.renderJSONMLTag(headerJSON);
60
- if (this.header.nodeType === Node.TEXT_NODE) {
61
- Common.Console.Console.instance().error('Broken formatter: header should be an element node.');
55
+ this.render();
56
+ }
57
+
58
+ private render(): void {
59
+ const customPreview = this.object.customPreview();
60
+ if (!customPreview || !this.headerJsonML) {
62
61
  return;
63
62
  }
64
63
 
64
+ const headerTemplate = this.renderJSONMLTag(this.headerJsonML);
65
65
  if (customPreview.bodyGetterId) {
66
- if (this.header instanceof Element) {
67
- this.header.classList.add('custom-expandable-section-header');
66
+ let bodyContent: LitTemplate|Node|undefined;
67
+ if (this.cachedContent instanceof ObjectTree) {
68
+ bodyContent = html`<devtools-widget class="custom-expandable-section-default-body" ${
69
+ widget(ObjectPropertiesSectionWidget, {
70
+ objectTree: this.cachedContent,
71
+ showOverflow: false,
72
+ })}></devtools-widget>`;
73
+ } else if (this.cachedContent !== undefined) {
74
+ bodyContent = this.renderJSONMLTag(this.cachedContent);
68
75
  }
69
- this.header.addEventListener('click', this.onClick.bind(this), false);
70
- this.expandIcon = createIcon('triangle-right', 'custom-expand-icon');
71
- this.header.insertBefore(this.expandIcon, this.header.firstChild);
72
- }
73
76
 
74
- this.sectionElement.appendChild(this.header);
77
+ // eslint-disable-next-line @devtools/no-lit-render-outside-of-view
78
+ render(
79
+ html`
80
+ <span class=${
81
+ Directives.classMap({'custom-expandable-section-header': true,
82
+ expanded: this.expanded})} @click=${(event: Event) => this.onClick(event)}>
83
+ <devtools-icon name=${
84
+ this.expanded ? 'triangle-down' : 'triangle-right'} class="custom-expand-icon"></devtools-icon>
85
+ ${headerTemplate}
86
+ </span>
87
+ ${
88
+ bodyContent ?
89
+ html`<span class="custom-expandable-section-body" ?hidden=${!this.expanded}>${bodyContent}</span>` :
90
+ nothing}
91
+ `,
92
+ this.sectionElement);
93
+ } else {
94
+ // eslint-disable-next-line @devtools/no-lit-render-outside-of-view
95
+ render(html`${headerTemplate}`, this.sectionElement);
96
+ }
75
97
  }
76
98
 
77
99
  element(): Element {
78
100
  return this.sectionElement;
79
101
  }
80
102
 
81
- private renderJSONMLTag(jsonML: unknown): Node {
103
+ private renderJSONMLTag(jsonML: unknown): LitTemplate {
82
104
  if (!Array.isArray(jsonML)) {
83
- return document.createTextNode(String(jsonML));
105
+ return html`${String(jsonML)}`;
84
106
  }
85
107
 
86
108
  if (jsonML[0] !== 'object') {
@@ -88,22 +110,24 @@ export class CustomPreviewSection {
88
110
  }
89
111
  if (jsonML.length !== 2) {
90
112
  Common.Console.Console.instance().error('Broken formatter: object reference must contain exactly two elements');
91
- return document.createElement('span');
113
+ return html`<span></span>`;
92
114
  }
93
115
  return this.layoutObjectTag(jsonML);
94
116
  }
95
117
 
96
- // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
97
118
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
- private renderElement(object: any[]): Node {
99
- const tagName = object.shift();
119
+ private renderElement(object: any[]): LitTemplate {
120
+ const it = object[Symbol.iterator]();
121
+ const tagName = it.next().value as string;
100
122
  if (!ALLOWED_TAGS.includes(tagName)) {
101
123
  Common.Console.Console.instance().error('Broken formatter: element ' + tagName + ' is not allowed!');
102
- return document.createElement('span');
124
+ return html`<span></span>`;
103
125
  }
104
- const element = document.createElement((tagName as string));
105
- if ((typeof object[0] === 'object') && !Array.isArray(object[0])) {
106
- const attributes = object.shift();
126
+
127
+ let next = it.next();
128
+ const stylePropertyMap: Record<string, string> = {};
129
+ if (typeof next.value === 'object' && !Array.isArray(next.value) && next.value !== null) {
130
+ const attributes = next.value as Record<string, string>;
107
131
  for (const key in attributes) {
108
132
  const value = attributes[key];
109
133
  if ((key !== 'style') || (typeof value !== 'string')) {
@@ -113,37 +137,55 @@ export class CustomPreviewSection {
113
137
  const sanitizedStyle = new Map<string, {value: string, priority: string}>();
114
138
  sanitizeStyle(sanitizedStyle, value);
115
139
  for (const [property, {value: propertyValue, priority}] of sanitizedStyle) {
116
- element.style.setProperty(property, propertyValue, priority);
140
+ stylePropertyMap[property] = priority ? `${propertyValue} !${priority}` : propertyValue;
117
141
  }
118
142
  }
143
+ next = it.next();
119
144
  }
120
145
 
121
- this.appendJsonMLTags(element, object);
122
- return element;
146
+ const children: LitTemplate[] = [];
147
+ while (!next.done) {
148
+ children.push(this.renderJSONMLTag(next.value));
149
+ next = it.next();
150
+ }
151
+ const style = Directives.styleMap(stylePropertyMap);
152
+
153
+ switch (tagName) {
154
+ case 'span':
155
+ return html`<span style=${style}>${children}</span>`;
156
+ case 'div':
157
+ return html`<div style=${style}>${children}</div>`;
158
+ case 'ol':
159
+ return html`<ol style=${style}>${children}</ol>`;
160
+ case 'li':
161
+ return html`<li style=${style}>${children}</li>`;
162
+ case 'table':
163
+ return html`<table style=${style}>${children}</table>`;
164
+ case 'tr':
165
+ return html`<tr style=${style}>${children}</tr>`;
166
+ case 'td':
167
+ return html`<td style=${style}>${children}</td>`;
168
+ default:
169
+ return html`<span>${children}</span>`;
170
+ }
123
171
  }
124
172
 
125
- private layoutObjectTag(objectTag: unknown[]): Node {
126
- objectTag.shift();
127
- const attributes = objectTag.shift();
173
+ private layoutObjectTag(objectTag: unknown[]): LitTemplate {
174
+ const it = objectTag[Symbol.iterator]();
175
+ it.next(); // skip 'object'
176
+ const attributes = it.next().value;
128
177
  const remoteObject = this.object.runtimeModel().createRemoteObject((attributes as Protocol.Runtime.RemoteObject));
129
178
  if (remoteObject.customPreview()) {
130
- return (new CustomPreviewSection(remoteObject)).element();
179
+ return html`${(new CustomPreviewSection(remoteObject)).element()}`;
131
180
  }
132
181
 
133
- const sectionElement = defaultObjectPresentation(remoteObject);
134
- sectionElement.classList.toggle('custom-expandable-section-standard-section', remoteObject.hasChildren);
135
- return sectionElement;
136
- }
137
-
138
- private appendJsonMLTags(parentElement: Node, jsonMLTags: unknown[]): void {
139
- for (let i = 0; i < jsonMLTags.length; ++i) {
140
- parentElement.appendChild(this.renderJSONMLTag(jsonMLTags[i]));
141
- }
182
+ return defaultObjectPresentation(remoteObject, undefined, undefined, undefined,
183
+ {'custom-expandable-section-standard-section': remoteObject.hasChildren});
142
184
  }
143
185
 
144
186
  private onClick(event: Event): void {
145
187
  event.consume(true);
146
- if (this.cachedContent) {
188
+ if (this.cachedContent !== undefined) {
147
189
  this.toggleExpand();
148
190
  } else {
149
191
  void this.loadBody();
@@ -152,21 +194,8 @@ export class CustomPreviewSection {
152
194
 
153
195
  private toggleExpand(): void {
154
196
  this.expanded = !this.expanded;
155
- if (this.header instanceof Element) {
156
- this.header.classList.toggle('expanded', this.expanded);
157
- }
158
- if (this.cachedContent instanceof Element) {
159
- this.cachedContent.classList.toggle('hidden', !this.expanded);
160
- }
161
- if (this.expandIcon) {
162
- if (this.expanded) {
163
- this.expandIcon.name = 'triangle-down';
164
- } else {
165
- this.expandIcon.name = 'triangle-right';
166
- }
167
- }
197
+ this.render();
168
198
  }
169
- private defaultBodyTreeOutline: ObjectPropertiesSectionsTreeOutline|undefined;
170
199
 
171
200
  async loadBody(): Promise<void> {
172
201
  const customPreview = this.object.customPreview();
@@ -181,23 +210,18 @@ export class CustomPreviewSection {
181
210
  if (bodyJsonML === null) {
182
211
  // Per https://firefox-source-docs.mozilla.org/devtools-user/custom_formatters/index.html#custom-formatter-structure
183
212
  // we are supposed to fall back to the default format when the `body()` callback returns `null`.
184
- this.defaultBodyTreeOutline = new ObjectPropertiesSectionsTreeOutline();
185
- this.defaultBodyTreeOutline.setShowSelectionOnKeyboardFocus(/* show */ true, /* preventTabOrder */ false);
186
- this.defaultBodyTreeOutline.element.classList.add('custom-expandable-section-default-body');
187
- void ObjectPropertyTreeElement.populate(
188
- this.defaultBodyTreeOutline.rootElement(), new ObjectTree(this.object, {
189
- readOnly: true,
190
- propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
191
- }),
192
- false, false);
193
-
194
- this.cachedContent = this.defaultBodyTreeOutline.element;
213
+ const objectTree = new ObjectTree(this.object, {
214
+ readOnly: true,
215
+ propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
216
+ });
217
+ objectTree.expanded = true;
218
+ this.cachedContent = objectTree;
195
219
  } else {
196
- this.cachedContent = this.renderJSONMLTag(bodyJsonML);
220
+ this.cachedContent = bodyJsonML;
197
221
  }
198
222
 
199
- this.sectionElement.appendChild(this.cachedContent);
200
- this.toggleExpand();
223
+ this.expanded = true;
224
+ this.render();
201
225
  }
202
226
  }
203
227
  }
@@ -240,14 +264,8 @@ export class CustomPreviewComponent {
240
264
  if (this.element.shadowRoot) {
241
265
  this.element.shadowRoot.textContent = '';
242
266
  this.customPreviewSection = null;
243
- this.element.shadowRoot.appendChild(defaultObjectPresentation(this.object));
267
+ // eslint-disable-next-line @devtools/no-lit-render-outside-of-view
268
+ render(defaultObjectPresentation(this.object), this.element.shadowRoot);
244
269
  }
245
270
  }
246
271
  }
247
-
248
- function defaultObjectPresentation(object: SDK.RemoteObject.RemoteObject): Element {
249
- const element = document.createElement('span');
250
- // eslint-disable-next-line @devtools/no-lit-render-outside-of-view
251
- render(defaultObjectPresentationTemplate(object), element);
252
- return element;
253
- }
@@ -1638,20 +1638,22 @@ export function renderPropertyValue(value: SDK.RemoteObject.RemoteObject, wasThr
1638
1638
 
1639
1639
  export function defaultObjectPresentation(objectOrTree: SDK.RemoteObject.RemoteObject|ObjectTree,
1640
1640
  linkifier?: Components.Linkifier.Linkifier, skipProto?: boolean,
1641
- readOnly?: boolean): LitTemplate {
1641
+ readOnly?: boolean, extraClasses?: Record<string, boolean>): LitTemplate {
1642
1642
  const objectTree = objectOrTree instanceof ObjectTree ? objectOrTree : new ObjectTree(objectOrTree, {
1643
1643
  readOnly: Boolean(readOnly),
1644
1644
  propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
1645
1645
  });
1646
1646
  const object = objectTree.object;
1647
- const title = html`<span class="source-code"><style>${objectValueStyles}</style>${
1648
- renderPropertyValue(object, /* wasThrown= */ false, /* showPreview= */ true)}</span>`;
1647
+ const title = html`<span class=${
1648
+ classMap({'source-code': true, ...(!object.hasChildren ? extraClasses : undefined)})}><style>${
1649
+ objectValueStyles}</style>${renderPropertyValue(object, /* wasThrown= */ false, /* showPreview= */ true)}</span>`;
1649
1650
  if (!object.hasChildren) {
1650
1651
  return title;
1651
1652
  }
1652
- return html`${
1653
- widget(ObjectPropertiesSectionWidget,
1654
- {objectTree, title, linkifier, skipProto: !!skipProto, showOverflow: !readOnly})}`;
1653
+ return html`<devtools-widget class=${classMap(extraClasses ?? {})} ${
1654
+ widget(
1655
+ ObjectPropertiesSectionWidget,
1656
+ {objectTree, title, linkifier, skipProto: Boolean(skipProto), showOverflow: !readOnly})}></devtools-widget>`;
1655
1657
  }
1656
1658
 
1657
1659
  /**
@@ -23,13 +23,13 @@
23
23
  white-space: nowrap;
24
24
  font-weight: bold;
25
25
  padding-left: 18px;
26
- padding-bottom: 2px;
26
+ padding-bottom: var(--sys-size-2);
27
27
  padding-top: var(--sys-size-3);
28
28
  flex-shrink: 0;
29
29
  }
30
30
 
31
31
  .object-popover-tree {
32
- border-top: 1px solid var(--sys-color-divider);
32
+ border-top: var(--sys-size-1) solid var(--sys-color-divider);
33
33
  overflow: auto;
34
34
  width: 100%;
35
35
  height: calc(100% - 13px);
@@ -40,11 +40,11 @@
40
40
  }
41
41
 
42
42
  .object-popover-description-box {
43
- padding: 6px;
43
+ padding: var(--sys-size-4);
44
44
  max-width: 350px;
45
45
  line-height: 1.4;
46
46
  }
47
47
 
48
48
  .object-popover-footer {
49
- margin-top: 8px;
49
+ margin-top: var(--sys-size-5);
50
50
  }
@@ -27,14 +27,14 @@ li.object-properties-section {
27
27
 
28
28
  &::before {
29
29
  flex-shrink: 0;
30
- margin-right: 2px;
30
+ margin-right: var(--sys-size-2);
31
31
  align-self: flex-start;
32
32
  }
33
33
  }
34
34
 
35
35
  .object-properties-section li.editing-sub-part {
36
- padding: 3px 12px 8px 6px;
37
- margin: -1px -6px -8px;
36
+ padding: 3px var(--sys-size-6) var(--sys-size-5) var(--sys-size-4);
37
+ margin: calc(-1 * var(--sys-size-1)) calc(-1 * var(--sys-size-4)) calc(-1 * var(--sys-size-5));
38
38
  text-overflow: clip;
39
39
  }
40
40
 
@@ -69,7 +69,7 @@ li.object-properties-section {
69
69
  }
70
70
 
71
71
  .name-and-value {
72
- line-height: 16px;
72
+ line-height: var(--sys-size-8);
73
73
  display: flex;
74
74
  white-space: nowrap;
75
75
  }
@@ -85,7 +85,7 @@ li.object-properties-section {
85
85
  }
86
86
 
87
87
  .property-prompt {
88
- margin-left: 4px;
88
+ margin-left: var(--sys-size-3);
89
89
  }
90
90
 
91
91
  .tree-outline.hide-selection-when-blurred .selected:focus-visible {
@@ -97,7 +97,7 @@ li.object-properties-section {
97
97
  .tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value,
98
98
  .tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message {
99
99
  background: var(--sys-color-state-focus-highlight);
100
- border-radius: 2px;
100
+ border-radius: var(--sys-size-2);
101
101
  }
102
102
 
103
103
  @media (forced-colors: active) {
@@ -11,11 +11,11 @@ import type {FlameChart} from './FlameChart.js';
11
11
 
12
12
  const UIStrings = {
13
13
  /**
14
- * @description Message congratulating the user for having won a game.
14
+ * @description Message congratulating the user for winning the brick breaker game.
15
15
  */
16
16
  congrats: 'Congrats, you win!',
17
17
  /**
18
- * @description A Postscript hinting the user the possibility to open the game using a keycombo.
18
+ * @description Postscript message explaining how to open the brick breaker game using a keyboard shortcut.
19
19
  */
20
20
  ps: 'PS: You can also open the game by typing `fixme`',
21
21
  } as const;
@@ -504,31 +504,48 @@ export class ChartViewport extends UI.Widget.VBox {
504
504
  // that if the view is restored, the time shown is correct.
505
505
  if (this.cancelWindowTimesAnimation) {
506
506
  this.cancelWindowTimesAnimation();
507
+ this.cancelWindowTimesAnimation = null;
507
508
  this.setWindowTimes(this.targetLeftTime, this.targetRightTime, false);
508
509
  }
509
510
  }
510
511
 
511
512
  setWindowTimes(startTime: number, endTime: number, animate?: boolean): void {
512
- if (startTime === this.targetLeftTime && endTime === this.targetRightTime) {
513
+ // If already animating to the requested target, let the active animation continue.
514
+ if (animate && this.cancelWindowTimesAnimation && this.targetLeftTime === startTime &&
515
+ this.targetRightTime === endTime) {
513
516
  return;
514
517
  }
515
- if (!animate || this.visibleLeftTime === 0 || this.visibleRightTime === Infinity ||
516
- (startTime === 0 && endTime === Infinity) || (startTime === Infinity && endTime === Infinity)) {
517
- // Skip animation, move instantly.
518
- this.targetLeftTime = startTime;
519
- this.targetRightTime = endTime;
520
- this.visibleLeftTime = startTime;
521
- this.visibleRightTime = endTime;
522
- this.scheduleUpdate();
518
+
519
+ // If already at rest at the target window with no active animation, nothing to do.
520
+ if (!this.cancelWindowTimesAnimation && this.visibleLeftTime === startTime && this.visibleRightTime === endTime) {
523
521
  return;
524
522
  }
523
+
524
+ // Cancel any in-flight animation before starting a new transition or snapping.
525
525
  if (this.cancelWindowTimesAnimation) {
526
526
  this.cancelWindowTimesAnimation();
527
- this.visibleLeftTime = this.targetLeftTime;
528
- this.visibleRightTime = this.targetRightTime;
527
+ this.cancelWindowTimesAnimation = null;
529
528
  }
529
+
530
530
  this.targetLeftTime = startTime;
531
531
  this.targetRightTime = endTime;
532
+
533
+ // Only animate if requested and both current and target bounds are finite, valid ranges.
534
+ // Initial loads (where visibleLeftTime/RightTime are 0 or uninitialized) and sentinel
535
+ // ranges (like Infinity) snap instantly to prevent animation glitches or NaN calculations.
536
+ const hasInitialWindow = Number.isFinite(this.visibleLeftTime) && Number.isFinite(this.visibleRightTime) &&
537
+ this.visibleRightTime > this.visibleLeftTime;
538
+ const isFiniteTarget = Number.isFinite(startTime) && Number.isFinite(endTime) && endTime > startTime;
539
+ const canAnimate = Boolean(animate) && hasInitialWindow && isFiniteTarget;
540
+
541
+ if (!canAnimate) {
542
+ // Snap instantly.
543
+ this.visibleLeftTime = startTime;
544
+ this.visibleRightTime = endTime;
545
+ this.scheduleUpdate();
546
+ return;
547
+ }
548
+
532
549
  this.cancelWindowTimesAnimation = UI.UIUtils.animateFunction(
533
550
  this.element.window(), animateWindowTimes.bind(this),
534
551
  [{from: this.visibleLeftTime, to: startTime}, {from: this.visibleRightTime, to: endTime}], 100, () => {
@@ -14,24 +14,24 @@ import filmStripViewStyles from './filmStripView.css.js';
14
14
 
15
15
  const UIStrings = {
16
16
  /**
17
- * @description Element title in Film Strip View of the Performance panel
17
+ * @description Tooltip text for a screenshot frame in the film strip view of the Performance panel.
18
18
  */
19
- doubleclickToZoomImageClickTo: 'Doubleclick to zoom image. Click to view preceding requests.',
19
+ doubleclickToZoomImageClickTo: 'Double-click to zoom image. Click to view preceding requests.',
20
20
  /**
21
- * @description Aria label for captured screenshots in network panel.
21
+ * @description Accessible label for a screenshot frame in the film strip view of the Network panel.
22
22
  * @example {3ms} PH1
23
23
  */
24
24
  screenshotForSSelectToView: 'Screenshot for {PH1} - select to view preceding requests.',
25
25
  /**
26
- * @description Text for one or a group of screenshots
26
+ * @description Alt text for a screenshot thumbnail image in the film strip view.
27
27
  */
28
28
  screenshot: 'Screenshot',
29
29
  /**
30
- * @description Prev button title in Film Strip View of the Performance panel
30
+ * @description Tooltip text for the previous frame button in the film strip dialog.
31
31
  */
32
32
  previousFrame: 'Previous frame',
33
33
  /**
34
- * @description Next button title in Film Strip View of the Performance panel
34
+ * @description Tooltip text for the next frame button in the film strip dialog.
35
35
  */
36
36
  nextFrame: 'Next frame',
37
37
  } as const;
@@ -36,58 +36,57 @@ const SUBTITLE_FONT_SIZE_AND_STYLE = 'italic 10px';
36
36
 
37
37
  const UIStrings = {
38
38
  /**
39
- * @description Aria alert used to notify the user when an event has been selected because they tabbed into a group.
39
+ * @description Accessible announcement when an event is selected by tabbing into a group in the flame chart.
40
40
  * @example {Paint} PH1
41
41
  * @example {Main thread} PH2
42
- *
43
42
  */
44
- eventSelectedFromGroup: 'Selected a {PH1} event within {PH2}. Press enter to focus this event.',
43
+ eventSelectedFromGroup: 'Selected a {PH1} event within {PH2}. Press Enter to focus this event.',
45
44
  /**
46
- * @description Aria accessible name in Flame Chart of the Performance panel
45
+ * @description Accessible name for the flame chart canvas.
47
46
  */
48
- flameChart: 'Flame Chart',
47
+ flameChart: 'Flame chart',
49
48
  /**
50
- * @description Text for the screen reader to announce a hovered group
49
+ * @description Accessible announcement when hovering over a group in the flame chart.
51
50
  * @example {Network} PH1
52
51
  */
53
52
  sHovered: '{PH1} hovered',
54
53
  /**
55
- * @description Text for screen reader to announce a selected group.
54
+ * @description Accessible announcement when selecting a group in the flame chart.
56
55
  * @example {Network} PH1
57
56
  */
58
57
  sSelected: '{PH1} selected',
59
58
  /**
60
- * @description Text for screen reader to announce an expanded group
59
+ * @description Accessible announcement when expanding a group in the flame chart.
61
60
  * @example {Network} PH1
62
61
  */
63
62
  sExpanded: '{PH1} expanded',
64
63
  /**
65
- * @description Text for screen reader to announce a collapsed group
64
+ * @description Accessible announcement when collapsing a group in the flame chart.
66
65
  * @example {Network} PH1
67
66
  */
68
67
  sCollapsed: '{PH1} collapsed',
69
68
  /**
70
- * @description Text for an action that adds a label annotation to an entry in the Flame Chart
69
+ * @description Context menu option to add a label annotation to an entry in the flame chart.
71
70
  */
72
71
  labelEntry: 'Label entry',
73
72
  /**
74
- * @description Text for an action that adds link annotation between entries in the Flame Chart
73
+ * @description Context menu option to add a link annotation between entries in the flame chart.
75
74
  */
76
75
  linkEntries: 'Link entries',
77
76
  /**
78
- * @description Shown in the context menu when right clicking on a track header to enable the user to enter the track configuration mode.
77
+ * @description Context menu option to enter track configuration mode in the flame chart.
79
78
  */
80
79
  enterTrackConfigurationMode: 'Configure tracks',
81
80
  /**
82
- * @description Shown in the context menu when right clicking on a track header to allow the user to exit track configuration mode.
81
+ * @description Context menu option to exit track configuration mode in the flame chart.
83
82
  */
84
83
  exitTrackConfigurationMode: 'Finish configuring tracks',
85
84
  /**
86
- * @description Context menu option to copy the name of the track.
85
+ * @description Context menu option to copy the track name in the flame chart.
87
86
  */
88
87
  copyTrackName: 'Copy track name',
89
88
  /**
90
- * @description Context menu option to copy the URL of the track.
89
+ * @description Context menu option to copy the track URL in the flame chart.
91
90
  */
92
91
  copyTrackUrl: 'Copy track URL',
93
92
  } as const;
@@ -9,7 +9,7 @@ import type * as UI from '../../legacy.js';
9
9
 
10
10
  const UIStrings = {
11
11
  /**
12
- * @description Notification message shown to the user when garbage collection has completed.
12
+ * @description Notification message shown when garbage collection completes.
13
13
  */
14
14
  garbageCollectionCompleted: 'Garbage collection completed',
15
15
  } as const;
@@ -7,23 +7,23 @@ import * as Protocol from '../../../../generated/protocol.js';
7
7
 
8
8
  const UIStrings = {
9
9
  /**
10
- * @description Text in Network Priorities of the Performance panel
10
+ * @description Label for lowest network priority.
11
11
  */
12
12
  lowest: 'Lowest',
13
13
  /**
14
- * @description Text in Network Priorities of the Performance panel
14
+ * @description Label for low network priority.
15
15
  */
16
16
  low: 'Low',
17
17
  /**
18
- * @description Text in Network Priorities of the Performance panel
18
+ * @description Label for medium network priority.
19
19
  */
20
20
  medium: 'Medium',
21
21
  /**
22
- * @description Text in Network Priorities of the Performance panel
22
+ * @description Label for high network priority.
23
23
  */
24
24
  high: 'High',
25
25
  /**
26
- * @description Text in Network Priorities of the Performance panel
26
+ * @description Label for highest network priority.
27
27
  */
28
28
  highest: 'Highest',
29
29
  } as const;
@@ -16,17 +16,17 @@ import {TimelineGrid} from './TimelineGrid.js';
16
16
 
17
17
  const UIStrings = {
18
18
  /**
19
- * @description Label for the window for Overview grids
19
+ * @description Accessible label for the selection window in the overview grid.
20
20
  */
21
21
  overviewGridWindow: 'Overview grid window',
22
22
  /**
23
- * @description Label for left window resizer for Overview grids
23
+ * @description Accessible label for the left window resizer in the overview grid.
24
24
  */
25
- leftResizer: 'Left Resizer',
25
+ leftResizer: 'Left resizer',
26
26
  /**
27
- * @description Label for right window resizer for Overview grids
27
+ * @description Accessible label for the right window resizer in the overview grid.
28
28
  */
29
- rightResizer: 'Right Resizer',
29
+ rightResizer: 'Right resizer',
30
30
  } as const;
31
31
  const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/perf_ui/OverviewGrid.ts', UIStrings);
32
32
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);