chrome-devtools-frontend 1.0.1684555 → 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 (602) hide show
  1. package/.agents/skills/gerrit-cli/SKILL.md +29 -8
  2. package/.agents/skills/gerrit-cli/references/commands.md +51 -18
  3. package/.agents/skills/gerrit-cli/references/workflows.md +6 -6
  4. package/.agents/skills/gerrit-cli/scripts/import_upstream.py +43 -70
  5. package/config/typescript/tsconfig.base.json +1 -0
  6. package/config/typescript/tsconfig.eslint.json +9 -0
  7. package/docs/contributing/issues.md +1 -1
  8. package/docs/styleguide/ux/writing.md +2 -2
  9. package/eslint.config.mjs +18 -10
  10. package/front_end/core/common/Base64.ts +1 -1
  11. package/front_end/core/common/Color.ts +28 -6
  12. package/front_end/core/common/ColorConverter.ts +12 -0
  13. package/front_end/core/common/Console.ts +2 -1
  14. package/front_end/core/common/Object.ts +2 -2
  15. package/front_end/core/common/ResourceType.ts +12 -13
  16. package/front_end/core/common/Revealer.ts +1 -1
  17. package/front_end/core/common/Settings.ts +2 -2
  18. package/front_end/core/common/TextDictionary.ts +2 -2
  19. package/front_end/core/common/Throttler.ts +1 -1
  20. package/front_end/core/host/InspectorFrontendHostAPI.ts +2 -2
  21. package/front_end/core/host/UserMetrics.ts +51 -37
  22. package/front_end/core/host/host.ts +1 -1
  23. package/front_end/core/i18n/i18nImpl.ts +1 -1
  24. package/front_end/core/platform/HostRuntime.ts +3 -3
  25. package/front_end/core/platform/KeyboardUtilities.ts +1 -1
  26. package/front_end/core/protocol_client/InspectorBackend.ts +7 -6
  27. package/front_end/core/root/Runtime.ts +4 -2
  28. package/front_end/core/sdk/AnimationModel.ts +1 -1
  29. package/front_end/core/sdk/CPUThrottlingManager.ts +198 -0
  30. package/front_end/core/sdk/CSSMetadata.ts +11 -6
  31. package/front_end/core/sdk/CSSPropertyParser.ts +5 -3
  32. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +90 -59
  33. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  34. package/front_end/core/sdk/DOMModel.ts +3 -3
  35. package/front_end/core/sdk/DebuggerModel.ts +1 -1
  36. package/front_end/core/sdk/EmulationModel.ts +5 -0
  37. package/front_end/core/sdk/LayerTreeBase.ts +1 -1
  38. package/front_end/core/sdk/NetworkManager.ts +1 -1
  39. package/front_end/core/sdk/README.md +40 -0
  40. package/front_end/core/sdk/RehydratingConnection.ts +1 -1
  41. package/front_end/core/sdk/RemoteObject.ts +1 -1
  42. package/front_end/core/sdk/ResourceTreeModel.ts +2 -2
  43. package/front_end/core/sdk/SDKModel.ts +1 -1
  44. package/front_end/core/sdk/SDKSettings.ts +6 -0
  45. package/front_end/core/sdk/Script.ts +2 -1
  46. package/front_end/core/sdk/SecurityOrigin.ts +48 -0
  47. package/front_end/core/sdk/ServiceWorkerManager.ts +75 -17
  48. package/front_end/core/sdk/sdk.ts +2 -0
  49. package/front_end/core/text_utils/ContentData.ts +1 -1
  50. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +3 -1
  51. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -1
  52. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +2 -2
  53. package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
  54. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
  55. package/front_end/entrypoints/inspector_main/InspectorMain.ts +1 -1
  56. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +1 -1
  57. package/front_end/entrypoints/inspector_main/nodeIcon.css +1 -1
  58. package/front_end/entrypoints/inspector_main/outermostTargetSelector.css +3 -3
  59. package/front_end/entrypoints/inspector_main/renderingOptions.css +3 -3
  60. package/front_end/entrypoints/js_app/js_app.ts +25 -9
  61. package/front_end/entrypoints/node_app/app/nodeConnectionsPanel.css +5 -5
  62. package/front_end/entrypoints/node_app/node_app.ts +1 -1
  63. package/front_end/generated/ARIAProperties.ts +39 -1
  64. package/front_end/generated/InspectorBackendCommands.ts +2 -1
  65. package/front_end/generated/SupportedCSSProperties.ts +60 -119
  66. package/front_end/generated/protocol-mapping.d.ts +9 -0
  67. package/front_end/generated/protocol-proxy-api.d.ts +7 -0
  68. package/front_end/generated/protocol.ts +12 -2
  69. package/front_end/models/ai_assistance/AiAgent2.ts +13 -7
  70. package/front_end/models/ai_assistance/AiConversation.ts +8 -17
  71. package/front_end/models/ai_assistance/AiHistoryStorage.ts +2 -2
  72. package/front_end/models/ai_assistance/AiUtils.ts +16 -0
  73. package/front_end/models/ai_assistance/EvaluateAction.ts +1 -1
  74. package/front_end/models/ai_assistance/README.md +1 -1
  75. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +2 -3
  76. package/front_end/models/ai_assistance/agents/AiAgent.ts +29 -6
  77. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +4 -3
  78. package/front_end/models/ai_assistance/agents/FileAgent.ts +2 -2
  79. package/front_end/models/ai_assistance/agents/NetworkAgent.ts +2 -2
  80. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +1 -1
  81. package/front_end/models/ai_assistance/agents/StorageAgent.ts +7 -5
  82. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -2
  83. package/front_end/models/ai_assistance/agents/StylingAgent.ts +9 -7
  84. package/front_end/models/ai_assistance/ai_assistance.ts +8 -0
  85. package/front_end/models/ai_assistance/contexts/AccessibilityContext.ts +16 -1
  86. package/front_end/models/ai_assistance/contexts/FileContext.ts +6 -0
  87. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +150 -325
  88. package/front_end/models/ai_assistance/injected.ts +5 -3
  89. package/front_end/models/ai_assistance/performance/AIContext.ts +1 -1
  90. package/front_end/models/ai_assistance/skills/README.md +1 -1
  91. package/front_end/models/ai_assistance/skills/accessibility.md +19 -10
  92. package/front_end/models/ai_assistance/skills/network.md +13 -7
  93. package/front_end/models/ai_assistance/skills/performance.md +22 -16
  94. package/front_end/models/ai_assistance/skills/sources.md +13 -7
  95. package/front_end/models/ai_assistance/skills/storage.md +19 -18
  96. package/front_end/models/ai_assistance/skills/styling.md +30 -37
  97. package/front_end/models/ai_assistance/tools/CookieUtils.ts +120 -0
  98. package/front_end/models/ai_assistance/tools/DOMStorageUtils.ts +53 -4
  99. package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +8 -32
  100. package/front_end/models/ai_assistance/tools/GetCookieValues.ts +146 -0
  101. package/front_end/models/ai_assistance/tools/GetDetailedCallTree.ts +11 -9
  102. package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +17 -5
  103. package/front_end/models/ai_assistance/tools/GetFunctionCode.ts +12 -11
  104. package/front_end/models/ai_assistance/tools/GetInsightDetails.ts +11 -11
  105. package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +3 -2
  106. package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +3 -3
  107. package/front_end/models/ai_assistance/tools/GetResourceContent.ts +12 -12
  108. package/front_end/models/ai_assistance/tools/GetSourceContent.ts +3 -2
  109. package/front_end/models/ai_assistance/tools/GetStorageBreakdown.ts +132 -0
  110. package/front_end/models/ai_assistance/tools/GetStorageValues.ts +17 -4
  111. package/front_end/models/ai_assistance/tools/GetStyles.ts +3 -3
  112. package/front_end/models/ai_assistance/tools/GetTraceEventByKey.ts +9 -8
  113. package/front_end/models/ai_assistance/tools/GetTraceMainThreadSummary.ts +13 -14
  114. package/front_end/models/ai_assistance/tools/GetTraceNetworkSummary.ts +12 -10
  115. package/front_end/models/ai_assistance/tools/ListCookies.ts +93 -0
  116. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +15 -6
  117. package/front_end/models/ai_assistance/tools/ListPageOrigins.ts +3 -3
  118. package/front_end/models/ai_assistance/tools/ListSources.ts +5 -3
  119. package/front_end/models/ai_assistance/tools/ListStorageKeys.ts +16 -4
  120. package/front_end/models/ai_assistance/tools/RecordPerformanceTrace.ts +3 -2
  121. package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +4 -3
  122. package/front_end/models/ai_assistance/tools/RunLighthouse.ts +9 -9
  123. package/front_end/models/ai_assistance/tools/SelectTraceEventByKey.ts +9 -8
  124. package/front_end/models/ai_assistance/tools/Tool.ts +21 -11
  125. package/front_end/models/ai_assistance/tools/ToolRegistry.ts +41 -8
  126. package/front_end/models/badges/AiExplorerBadge.ts +3 -3
  127. package/front_end/models/badges/CodeWhispererBadge.ts +2 -2
  128. package/front_end/models/badges/DOMDetectiveBadge.ts +3 -3
  129. package/front_end/models/badges/SpeedsterBadge.ts +3 -3
  130. package/front_end/models/badges/StarterBadge.ts +4 -4
  131. package/front_end/models/bindings/CompilerScriptMapping.ts +11 -2
  132. package/front_end/models/bindings/ContentProviderBasedProject.ts +3 -2
  133. package/front_end/models/breakpoints/BreakpointManager.ts +1 -1
  134. package/front_end/models/emulation/EmulatedDevices.ts +2 -2
  135. package/front_end/models/formatter/FormatterWorkerPool.ts +2 -2
  136. package/front_end/models/formatter/ScriptFormatter.ts +1 -2
  137. package/front_end/models/geometry/GeometryImpl.ts +2 -2
  138. package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +1 -1
  139. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +3 -2
  140. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +5 -5
  141. package/front_end/models/issues_manager/GenericIssue.ts +18 -18
  142. package/front_end/models/issues_manager/StylesheetLoadingIssue.ts +1 -1
  143. package/front_end/models/javascript_metadata/{NativeFunctions.js → NativeFunctions.ts} +25 -9
  144. package/front_end/models/live-metrics/LiveMetrics.ts +9 -3
  145. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +58 -6
  146. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +2 -62
  147. package/front_end/models/network_time_calculator/RequestTimeRanges.ts +2 -2
  148. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
  149. package/front_end/models/persistence/IsolatedFileSystem.ts +1 -1
  150. package/front_end/models/persistence/NetworkPersistenceManager.ts +35 -6
  151. package/front_end/models/stack_trace/StackTraceImpl.ts +2 -2
  152. package/front_end/models/trace/LanternComputationData.ts +2 -3
  153. package/front_end/models/trace/extras/StackTraceForEvent.ts +3 -2
  154. package/front_end/models/trace/extras/ThirdParties.ts +9 -9
  155. package/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +7 -4
  156. package/front_end/models/trace/handlers/FramesHandler.ts +3 -3
  157. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +2 -2
  158. package/front_end/models/trace/handlers/SamplesHandler.ts +4 -2
  159. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +1 -1
  160. package/front_end/models/trace/handlers/WarningsHandler.ts +2 -2
  161. package/front_end/models/trace/helpers/Network.ts +3 -3
  162. package/front_end/models/trace/helpers/Trace.ts +1 -1
  163. package/front_end/models/trace/insights/CLSCulprits.ts +2 -1
  164. package/front_end/models/trace/insights/Cache.ts +3 -1
  165. package/front_end/models/trace/insights/CharacterSet.ts +3 -1
  166. package/front_end/models/trace/insights/DOMSize.ts +3 -1
  167. package/front_end/models/trace/insights/DocumentLatency.ts +3 -1
  168. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +3 -1
  169. package/front_end/models/trace/insights/FontDisplay.ts +2 -1
  170. package/front_end/models/trace/insights/ForcedReflow.ts +2 -1
  171. package/front_end/models/trace/insights/INPBreakdown.ts +3 -1
  172. package/front_end/models/trace/insights/ImageDelivery.ts +3 -1
  173. package/front_end/models/trace/insights/LCPBreakdown.ts +3 -1
  174. package/front_end/models/trace/insights/LCPDiscovery.ts +3 -1
  175. package/front_end/models/trace/insights/LegacyJavaScript.ts +3 -1
  176. package/front_end/models/trace/insights/ModernHTTP.ts +2 -1
  177. package/front_end/models/trace/insights/NetworkDependencyTree.ts +2 -1
  178. package/front_end/models/trace/insights/RenderBlocking.ts +5 -4
  179. package/front_end/models/trace/insights/SlowCSSSelector.ts +3 -1
  180. package/front_end/models/trace/insights/ThirdParties.ts +5 -3
  181. package/front_end/models/trace/insights/Viewport.ts +2 -1
  182. package/front_end/models/trace/lantern/simulation/Constants.ts +34 -2
  183. package/front_end/models/trace/lantern/simulation/DNSCache.ts +1 -1
  184. package/front_end/models/trace/types/TraceEvents.ts +8 -3
  185. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +2 -1
  186. package/front_end/models/workspace/WorkspaceImpl.ts +18 -2
  187. package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingView.ts +686 -2
  188. package/front_end/panels/accessibility/accessibilityNode.css +4 -4
  189. package/front_end/panels/accessibility/accessibilityProperties.css +1 -1
  190. package/front_end/panels/accessibility/accessibilitySidebarView.css +2 -2
  191. package/front_end/panels/accessibility/axBreadcrumbs.css +13 -13
  192. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +14 -14
  193. package/front_end/panels/ai_assistance/ExternalHandler.ts +1 -1
  194. package/front_end/panels/ai_assistance/aiAssistancePanel.css +1 -1
  195. package/front_end/panels/ai_assistance/components/ChatInput.ts +3 -2
  196. package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
  197. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +1 -1
  198. package/front_end/panels/ai_assistance/components/ExploreWidget.ts +1 -1
  199. package/front_end/panels/ai_assistance/components/chatInput.css +12 -12
  200. package/front_end/panels/ai_assistance/components/chatMessage.css +16 -16
  201. package/front_end/panels/ai_assistance/components/chatView.css +2 -2
  202. package/front_end/panels/ai_assistance/components/exploreWidget.css +1 -1
  203. package/front_end/panels/ai_assistance/components/exportForAgentsDialog.css +4 -0
  204. package/front_end/panels/ai_assistance/components/walkthroughView.css +6 -6
  205. package/front_end/panels/animation/animationTimeline.css +62 -62
  206. package/front_end/panels/application/ApplicationPanelSidebar.ts +6 -1
  207. package/front_end/panels/application/BackgroundServiceView.ts +290 -252
  208. package/front_end/panels/application/WebMCPView.ts +15 -7
  209. package/front_end/panels/application/appManifestView.css +5 -5
  210. package/front_end/panels/application/backgroundServiceView.css +18 -2
  211. package/front_end/panels/application/components/AdsView.ts +100 -4
  212. package/front_end/panels/application/components/adsView.css +8 -5
  213. package/front_end/panels/application/components/backForwardCacheView.css +5 -5
  214. package/front_end/panels/application/components/bounceTrackingMitigationsView.css +1 -1
  215. package/front_end/panels/application/components/endpointsGrid.css +1 -1
  216. package/front_end/panels/application/components/permissionsPolicySection.css +1 -1
  217. package/front_end/panels/application/components/protocolHandlersView.css +6 -6
  218. package/front_end/panels/application/components/reportsGrid.css +1 -1
  219. package/front_end/panels/application/components/serviceWorkerRouterView.css +4 -4
  220. package/front_end/panels/application/components/trustTokensView.css +7 -7
  221. package/front_end/panels/application/cookieItemsView.css +3 -3
  222. package/front_end/panels/application/deviceBoundSessionsView.css +3 -3
  223. package/front_end/panels/application/frameDetailsReportView.css +11 -11
  224. package/front_end/panels/application/indexedDBViews.css +7 -7
  225. package/front_end/panels/application/originTrialTokenRows.css +2 -2
  226. package/front_end/panels/application/originTrialTreeView.css +3 -3
  227. package/front_end/panels/application/preloading/components/RuleSetDetailsView.css +2 -2
  228. package/front_end/panels/application/preloading/components/preloadingDetailsReportView.css +1 -1
  229. package/front_end/panels/application/preloading/components/preloadingDisabledInfobar.css +2 -2
  230. package/front_end/panels/application/preloading/components/preloadingGrid.css +2 -2
  231. package/front_end/panels/application/preloading/components/usedPreloadingView.css +7 -7
  232. package/front_end/panels/application/preloading/preloadingView.css +1 -1
  233. package/front_end/panels/application/preloading/preloadingViewDropDown.css +3 -3
  234. package/front_end/panels/application/serviceWorkerCacheViews.css +5 -5
  235. package/front_end/panels/application/serviceWorkerUpdateCycleView.css +12 -12
  236. package/front_end/panels/application/serviceWorkersView.css +15 -16
  237. package/front_end/panels/application/storageView.css +5 -5
  238. package/front_end/panels/application/webMCPView.css +9 -9
  239. package/front_end/panels/autofill/autofillView.css +4 -4
  240. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +4 -4
  241. package/front_end/panels/browser_debugger/domBreakpointsSidebarPane.css +5 -3
  242. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +4 -4
  243. package/front_end/panels/changes/changesSidebar.css +1 -1
  244. package/front_end/panels/changes/changesView.css +1 -1
  245. package/front_end/panels/changes/combinedDiffView.css +1 -1
  246. package/front_end/panels/common/CPUThrottlingOption.ts +5 -10
  247. package/front_end/panels/common/badgeNotification.css +2 -2
  248. package/front_end/panels/common/domLinkifier.css +1 -1
  249. package/front_end/panels/common/gdpSignUpDialog.css +3 -3
  250. package/front_end/panels/common/geminiRebrandPromoDialog.css +1 -1
  251. package/front_end/panels/console/ConsolePrompt.ts +6 -3
  252. package/front_end/panels/console/ConsoleView.ts +6 -3
  253. package/front_end/panels/console/ConsoleViewMessage.ts +3 -1
  254. package/front_end/panels/console/console-meta.ts +5 -24
  255. package/front_end/panels/console/consoleContextSelector.css +2 -2
  256. package/front_end/panels/console/consolePinPane.css +9 -9
  257. package/front_end/panels/console/consolePrompt.css +5 -5
  258. package/front_end/panels/console/consoleView.css +39 -39
  259. package/front_end/panels/coverage/coverageListView.css +2 -2
  260. package/front_end/panels/css_overview/cssOverviewCompletedView.css +34 -34
  261. package/front_end/panels/css_overview/cssOverviewProcessingView.css +5 -5
  262. package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +1 -1
  263. package/front_end/panels/css_overview/cssOverviewStartView.css +17 -17
  264. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +209 -62
  265. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +4 -4
  266. package/front_end/panels/elements/DOMTreeContextMenu.ts +59 -54
  267. package/front_end/panels/elements/ElementsPanel.ts +1 -1
  268. package/front_end/panels/elements/ElementsTreeElement.ts +130 -94
  269. package/front_end/panels/elements/ElementsTreeOutline.ts +1751 -363
  270. package/front_end/panels/elements/ShortcutTreeElement.ts +6 -3
  271. package/front_end/panels/elements/StylePropertiesSection.ts +65 -8
  272. package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -0
  273. package/front_end/panels/elements/StylesSidebarPane.ts +143 -8
  274. package/front_end/panels/elements/classesPaneWidget.css +6 -6
  275. package/front_end/panels/elements/components/stylePropertyEditor.css +7 -7
  276. package/front_end/panels/elements/computedStyleWidget.css +1 -1
  277. package/front_end/panels/elements/elementStatePaneWidget.css +8 -8
  278. package/front_end/panels/elements/elements-meta.ts +14 -0
  279. package/front_end/panels/elements/elementsPanel.css +4 -4
  280. package/front_end/panels/elements/elementsTreeOutline.css +222 -38
  281. package/front_end/panels/elements/layersWidget.css +4 -4
  282. package/front_end/panels/elements/layoutPane.css +18 -18
  283. package/front_end/panels/elements/metricsSidebarPane.css +11 -11
  284. package/front_end/panels/elements/platformFontsWidget.css +5 -5
  285. package/front_end/panels/elements/propertiesWidget.css +2 -2
  286. package/front_end/panels/elements/stylePropertiesTreeOutline.css +20 -20
  287. package/front_end/panels/elements/stylesSidebarPane.css +37 -20
  288. package/front_end/panels/emulation/deviceModeView.css +49 -49
  289. package/front_end/panels/emulation/mediaQueryInspector.css +18 -18
  290. package/front_end/panels/event_listeners/eventListenersView.css +1 -1
  291. package/front_end/panels/explain/components/consoleInsight.css +29 -29
  292. package/front_end/panels/issues/components/elementsPanelLink.css +2 -2
  293. package/front_end/panels/issues/components/hideIssuesMenu.css +1 -1
  294. package/front_end/panels/issues/issuesPane.css +2 -2
  295. package/front_end/panels/issues/issuesTree.css +50 -50
  296. package/front_end/panels/layer_viewer/Layers3DView.ts +9 -10
  297. package/front_end/panels/layer_viewer/layerDetailsView.css +1 -1
  298. package/front_end/panels/layer_viewer/layerTreeOutline.css +2 -2
  299. package/front_end/panels/layer_viewer/layers3DView.css +1 -1
  300. package/front_end/panels/layer_viewer/paintProfiler.css +1 -1
  301. package/front_end/panels/lighthouse/LighthouseReportSelector.ts +2 -2
  302. package/front_end/panels/media/playerListView.css +9 -9
  303. package/front_end/panels/media/playerMessagesView.css +8 -8
  304. package/front_end/panels/media/playerPropertiesView.css +6 -6
  305. package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +1 -1
  306. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +9 -9
  307. package/front_end/panels/network/NetworkDataGridNode.ts +1 -0
  308. package/front_end/panels/network/NetworkPanel.ts +9 -4
  309. package/front_end/panels/network/RequestConditionsDrawer.ts +12 -12
  310. package/front_end/panels/network/RequestPayloadView.ts +78 -26
  311. package/front_end/panels/network/binaryResourceView.css +1 -1
  312. package/front_end/panels/network/components/EditableSpan.css +3 -3
  313. package/front_end/panels/network/components/HeaderSectionRow.css +14 -14
  314. package/front_end/panels/network/components/RequestHeaderSection.css +7 -7
  315. package/front_end/panels/network/components/RequestHeadersView.css +18 -18
  316. package/front_end/panels/network/components/RequestTrustTokensView.css +1 -1
  317. package/front_end/panels/network/network-meta.ts +9 -9
  318. package/front_end/panels/network/networkConfigView.css +11 -11
  319. package/front_end/panels/network/networkLogView.css +35 -35
  320. package/front_end/panels/network/networkManageCustomHeadersView.css +1 -1
  321. package/front_end/panels/network/networkPanel.css +7 -7
  322. package/front_end/panels/network/networkTimingTable.css +13 -13
  323. package/front_end/panels/network/requestConditionsDrawer.css +4 -4
  324. package/front_end/panels/network/requestCookiesView.css +5 -5
  325. package/front_end/panels/network/requestDeviceBoundSessionsView.css +1 -1
  326. package/front_end/panels/network/requestHTMLView.css +1 -1
  327. package/front_end/panels/network/requestHeadersTree.css +19 -19
  328. package/front_end/panels/network/requestInitiatorView.css +1 -1
  329. package/front_end/panels/network/requestInitiatorViewTree.css +3 -3
  330. package/front_end/panels/network/requestPayloadTree.css +5 -5
  331. package/front_end/panels/network/requestPayloadView.css +1 -1
  332. package/front_end/panels/network/resourceChunkView.css +3 -3
  333. package/front_end/panels/network/signedExchangeInfoTree.css +6 -6
  334. package/front_end/panels/profiler/heapProfiler.css +15 -15
  335. package/front_end/panels/profiler/profileLauncherView.css +10 -10
  336. package/front_end/panels/recorder/RecordingView.ts +1 -1
  337. package/front_end/panels/recorder/StepEditor.ts +86 -7
  338. package/front_end/panels/recorder/TimelineSection.ts +2 -1
  339. package/front_end/panels/recorder/createRecordingView.css +17 -17
  340. package/front_end/panels/recorder/extensionView.css +5 -5
  341. package/front_end/panels/recorder/injected/RecordingClient.ts +1 -1
  342. package/front_end/panels/recorder/models/SchemaUtils.ts +2 -2
  343. package/front_end/panels/recorder/models/ScreenshotStorage.ts +1 -1
  344. package/front_end/panels/recorder/recorderPanel.css +7 -7
  345. package/front_end/panels/recorder/recordingListView.css +12 -12
  346. package/front_end/panels/recorder/recordingView.css +47 -47
  347. package/front_end/panels/recorder/stepEditor.css +2 -2
  348. package/front_end/panels/recorder/stepView.css +20 -20
  349. package/front_end/panels/recorder/timelineSection.css +9 -9
  350. package/front_end/panels/screencast/screencastView.css +12 -12
  351. package/front_end/panels/search/searchResultsPane.css +10 -10
  352. package/front_end/panels/search/searchView.css +9 -9
  353. package/front_end/panels/security/SecurityPanel.ts +84 -54
  354. package/front_end/panels/security/mainView.css +26 -26
  355. package/front_end/panels/security/originView.css +15 -15
  356. package/front_end/panels/sensors/locationsSettingsTab.css +6 -6
  357. package/front_end/panels/sensors/sensors.css +28 -28
  358. package/front_end/panels/settings/components/syncSection.css +5 -5
  359. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +13 -13
  360. package/front_end/panels/settings/emulation/devicesSettingsTab.css +16 -16
  361. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +2 -2
  362. package/front_end/panels/settings/keybindsSettingsTab.css +2 -2
  363. package/front_end/panels/settings/settingsScreen.css +5 -5
  364. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  365. package/front_end/panels/sources/breakpointEditDialog.css +9 -9
  366. package/front_end/panels/sources/breakpointsView.css +25 -25
  367. package/front_end/panels/sources/callStackSidebarPane.css +10 -10
  368. package/front_end/panels/sources/components/HeadersView.css +6 -6
  369. package/front_end/panels/sources/debuggerPausedMessage.css +4 -4
  370. package/front_end/panels/sources/dialog.css +2 -2
  371. package/front_end/panels/sources/navigatorTree.css +2 -2
  372. package/front_end/panels/sources/navigatorView.css +2 -2
  373. package/front_end/panels/sources/scopeChainSidebarPane.css +1 -1
  374. package/front_end/panels/sources/sourcesNavigator.css +1 -1
  375. package/front_end/panels/sources/sourcesPanel.css +2 -2
  376. package/front_end/panels/sources/sourcesView.css +1 -1
  377. package/front_end/panels/sources/threadsSidebarPane.css +5 -5
  378. package/front_end/panels/sources/watchExpressionsSidebarPane.css +8 -8
  379. package/front_end/panels/timeline/TimelineDetailsView.ts +9 -21
  380. package/front_end/panels/timeline/TimelineFlameChartView.ts +3 -5
  381. package/front_end/panels/timeline/TimelineMiniMap.ts +3 -3
  382. package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
  383. package/front_end/panels/timeline/components/breadcrumbsUI.css +3 -3
  384. package/front_end/panels/timeline/components/exportTraceOptions.css +1 -1
  385. package/front_end/panels/timeline/components/fieldSettingsDialog.css +13 -13
  386. package/front_end/panels/timeline/components/ignoreListSetting.css +3 -3
  387. package/front_end/panels/timeline/components/liveMetricsView.css +39 -39
  388. package/front_end/panels/timeline/components/metricCard.css +20 -20
  389. package/front_end/panels/timeline/components/networkRequestDetails.css +9 -9
  390. package/front_end/panels/timeline/components/networkRequestTooltip.css +14 -14
  391. package/front_end/panels/timeline/components/networkTrackWidget.css +2 -2
  392. package/front_end/panels/timeline/components/originMap.css +4 -4
  393. package/front_end/panels/timeline/components/relatedInsightChips.css +1 -1
  394. package/front_end/panels/timeline/components/sidebarAnnotationsTab.css +4 -4
  395. package/front_end/panels/timeline/components/sidebarInsightsTab.css +5 -5
  396. package/front_end/panels/timeline/components/sidebarSingleInsightSet.css +1 -1
  397. package/front_end/panels/timeline/components/timelineSummary.css +4 -4
  398. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +4 -4
  399. package/front_end/panels/timeline/overlays/components/EntriesLinkOverlay.ts +1 -1
  400. package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +6 -6
  401. package/front_end/panels/timeline/overlays/components/TimeRangeOverlay.ts +1 -1
  402. package/front_end/panels/timeline/thirdPartyTreeView.css +5 -5
  403. package/front_end/panels/timeline/timeline-meta.ts +0 -6
  404. package/front_end/panels/timeline/timelineDetailsView.css +11 -11
  405. package/front_end/panels/timeline/timelinePanel.css +20 -20
  406. package/front_end/panels/timeline/timelineTreeView.css +8 -8
  407. package/front_end/panels/webauthn/webauthnPane.css +6 -6
  408. package/front_end/panels/whats_new/ReleaseNoteText.ts +2 -2
  409. package/front_end/third_party/chromium/README.chromium +1 -1
  410. package/front_end/third_party/i18n/i18n-impl.ts +1 -1
  411. package/front_end/third_party/puppeteer/README.chromium +2 -2
  412. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +15 -1
  413. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +42 -8
  414. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.d.ts +4 -0
  415. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.d.ts.map +1 -1
  416. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +15 -2
  417. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
  418. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts +14 -1
  419. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  420. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js +23 -1
  421. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
  422. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
  423. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
  424. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
  425. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
  426. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.d.ts.map +1 -1
  427. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.js +77 -6
  428. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/Poller.js.map +1 -1
  429. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
  430. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
  431. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js.map +1 -1
  432. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  433. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  434. package/front_end/third_party/puppeteer/package/lib/types.d.ts +15 -1
  435. package/front_end/third_party/puppeteer/package/package.json +2 -2
  436. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +16 -2
  437. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +36 -1
  438. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  439. package/front_end/third_party/puppeteer/package/src/injected/Poller.ts +86 -6
  440. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  441. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  442. package/front_end/third_party/web-vitals/README.chromium +2 -2
  443. package/front_end/third_party/web-vitals/package/README.md +22 -7
  444. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onINP.js +6 -2
  445. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.d.ts +2 -2
  446. package/front_end/third_party/web-vitals/package/dist/modules/attribution/onLCP.js +30 -3
  447. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.d.ts +14 -0
  448. package/front_end/third_party/web-vitals/package/dist/modules/lib/InteractionManager.js +19 -13
  449. package/front_end/third_party/web-vitals/package/dist/modules/lib/bindReporter.d.ts +1 -1
  450. package/front_end/third_party/web-vitals/package/dist/modules/lib/doubleRAF.js +1 -1
  451. package/front_end/third_party/web-vitals/package/dist/modules/lib/initMetric.d.ts +3 -3
  452. package/front_end/third_party/web-vitals/package/dist/modules/lib/softNavs.js +3 -1
  453. package/front_end/third_party/web-vitals/package/dist/modules/types/lcp.d.ts +15 -1
  454. package/front_end/third_party/web-vitals/package/package.json +1 -2
  455. package/front_end/third_party/web-vitals/package/src/attribution/onINP.ts +9 -2
  456. package/front_end/third_party/web-vitals/package/src/attribution/onLCP.ts +36 -5
  457. package/front_end/third_party/web-vitals/package/src/lib/InteractionManager.ts +21 -15
  458. package/front_end/third_party/web-vitals/package/src/lib/doubleRAF.ts +1 -1
  459. package/front_end/third_party/web-vitals/package/src/lib/softNavs.ts +4 -1
  460. package/front_end/third_party/web-vitals/package/src/types/lcp.ts +16 -1
  461. package/front_end/third_party/web-vitals/rebuild.sh +3 -3
  462. package/front_end/ui/comments/CommentAnchorResolver.ts +15 -4
  463. package/front_end/ui/comments/commentsOverlay.css +6 -5
  464. package/front_end/ui/components/adorners/Adorner.ts +1 -1
  465. package/front_end/ui/components/adorners/adorner.css +6 -6
  466. package/front_end/ui/components/buttons/FloatingButton.ts +1 -1
  467. package/front_end/ui/components/buttons/button.css +9 -9
  468. package/front_end/ui/components/buttons/floatingButton.css +2 -2
  469. package/front_end/ui/components/buttons/textButton.css +12 -12
  470. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  471. package/front_end/ui/components/dialogs/dialog.css +1 -1
  472. package/front_end/ui/components/diff_view/diffView.css +3 -3
  473. package/front_end/ui/components/expandable_list/expandableList.css +9 -9
  474. package/front_end/ui/components/highlighting/HighlightElement.ts +1 -1
  475. package/front_end/ui/components/highlighting/HighlightManager.ts +4 -0
  476. package/front_end/ui/components/icon_button/iconButton.css +2 -2
  477. package/front_end/ui/components/input/checkbox.css +8 -8
  478. package/front_end/ui/components/input/textInput.css +3 -3
  479. package/front_end/ui/components/issue_counter/issueLinkIcon.css +2 -2
  480. package/front_end/ui/components/linkifier/linkifierImpl.css +1 -1
  481. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
  482. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +1 -1
  483. package/front_end/ui/components/markdown_view/codeBlock.css +2 -2
  484. package/front_end/ui/components/markdown_view/markdownView.css +7 -7
  485. package/front_end/ui/components/menus/menuGroup.css +2 -2
  486. package/front_end/ui/components/menus/menuItem.css +2 -2
  487. package/front_end/ui/components/menus/selectMenu.css +2 -2
  488. package/front_end/ui/components/menus/selectMenuButton.css +4 -4
  489. package/front_end/ui/components/panel_feedback/panelFeedback.css +15 -15
  490. package/front_end/ui/components/panel_feedback/previewToggle.css +2 -2
  491. package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +7 -7
  492. package/front_end/ui/components/report_view/report.css +3 -3
  493. package/front_end/ui/components/report_view/reportSectionDivider.css +1 -1
  494. package/front_end/ui/components/report_view/reportValue.css +1 -1
  495. package/front_end/ui/components/request_link_icon/requestLinkIcon.css +2 -2
  496. package/front_end/ui/components/settings/settingCheckbox.css +6 -6
  497. package/front_end/ui/components/text_editor/TextEditor.ts +3 -1
  498. package/front_end/ui/components/text_editor/config.ts +16 -4
  499. package/front_end/ui/kit/icons/icon.css +4 -4
  500. package/front_end/ui/kit/link/link.css +1 -1
  501. package/front_end/ui/legacy/ActionRegistration.ts +23 -23
  502. package/front_end/ui/legacy/Dialog.ts +1 -1
  503. package/front_end/ui/legacy/DockController.ts +3 -3
  504. package/front_end/ui/legacy/EmptyWidget.ts +13 -34
  505. package/front_end/ui/legacy/FilterBar.ts +4 -4
  506. package/front_end/ui/legacy/Infobar.ts +2 -2
  507. package/front_end/ui/legacy/InspectorDrawerView.ts +6 -6
  508. package/front_end/ui/legacy/InspectorView.ts +19 -26
  509. package/front_end/ui/legacy/ListWidget.ts +7 -7
  510. package/front_end/ui/legacy/PlusButton.ts +1 -3
  511. package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +6 -6
  512. package/front_end/ui/legacy/SearchableView.ts +16 -16
  513. package/front_end/ui/legacy/SoftContextMenu.ts +8 -8
  514. package/front_end/ui/legacy/SoftDropDown.ts +1 -1
  515. package/front_end/ui/legacy/SuggestBox.ts +2 -2
  516. package/front_end/ui/legacy/TabbedPane.ts +10 -10
  517. package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -2
  518. package/front_end/ui/legacy/Toolbar.ts +5 -5
  519. package/front_end/ui/legacy/Treeoutline.ts +1 -1
  520. package/front_end/ui/legacy/UIUtils.ts +80 -20
  521. package/front_end/ui/legacy/ViewManager.ts +1 -1
  522. package/front_end/ui/legacy/ViewRegistration.ts +7 -7
  523. package/front_end/ui/legacy/Widget.ts +5 -5
  524. package/front_end/ui/legacy/checkboxTextLabel.css +3 -3
  525. package/front_end/ui/legacy/components/color_picker/ColorFormatSpec.ts +16 -0
  526. package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +1 -0
  527. package/front_end/ui/legacy/components/color_picker/spectrum.css +90 -90
  528. package/front_end/ui/legacy/components/cookie_table/cookiesTable.css +1 -1
  529. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +26 -28
  530. package/front_end/ui/legacy/components/data_grid/ShowMoreDataGridNode.ts +3 -7
  531. package/front_end/ui/legacy/components/inline_editor/bezierEditor.css +13 -13
  532. package/front_end/ui/legacy/components/inline_editor/colorSwatch.css +7 -7
  533. package/front_end/ui/legacy/components/inline_editor/cssAngleEditor.css +5 -5
  534. package/front_end/ui/legacy/components/inline_editor/cssShadowEditor.css +18 -18
  535. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +104 -86
  536. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +8 -6
  537. package/front_end/ui/legacy/components/object_ui/objectPopover.css +4 -4
  538. package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +6 -6
  539. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +28 -11
  540. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +0 -4
  541. package/front_end/ui/legacy/components/perf_ui/chartViewport.css +4 -4
  542. package/front_end/ui/legacy/components/perf_ui/filmStripView.css +6 -6
  543. package/front_end/ui/legacy/components/perf_ui/flameChart.css +7 -7
  544. package/front_end/ui/legacy/components/perf_ui/overviewGrid.css +11 -11
  545. package/front_end/ui/legacy/components/perf_ui/pieChart.css +6 -6
  546. package/front_end/ui/legacy/components/perf_ui/timelineGrid.css +5 -5
  547. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +3 -3
  548. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +1 -1
  549. package/front_end/ui/legacy/components/source_frame/imageView.css +1 -1
  550. package/front_end/ui/legacy/components/source_frame/jsonView.css +1 -1
  551. package/front_end/ui/legacy/components/source_frame/resourceSourceFrame.css +1 -1
  552. package/front_end/ui/legacy/components/source_frame/xmlTree.css +3 -3
  553. package/front_end/ui/legacy/components/utils/imagePreview.css +1 -1
  554. package/front_end/ui/legacy/components/utils/jsUtils.css +10 -10
  555. package/front_end/ui/legacy/dropTarget.css +2 -2
  556. package/front_end/ui/legacy/emptyWidget.css +6 -0
  557. package/front_end/ui/legacy/filter.css +19 -19
  558. package/front_end/ui/legacy/infobar.css +2 -2
  559. package/front_end/ui/legacy/inspectorCommon.css +67 -67
  560. package/front_end/ui/legacy/inspectorDrawerTabbedPane.css +1 -1
  561. package/front_end/ui/legacy/listWidget.css +5 -5
  562. package/front_end/ui/legacy/progressIndicator.css +4 -4
  563. package/front_end/ui/legacy/reportView.css +7 -7
  564. package/front_end/ui/legacy/searchableView.css +5 -5
  565. package/front_end/ui/legacy/smallBubble.css +3 -3
  566. package/front_end/ui/legacy/softContextMenu.css +4 -4
  567. package/front_end/ui/legacy/softDropDownButton.css +1 -1
  568. package/front_end/ui/legacy/splitWidget.css +9 -31
  569. package/front_end/ui/legacy/suggestBox.css +4 -4
  570. package/front_end/ui/legacy/tabbedPane.css +17 -17
  571. package/front_end/ui/legacy/textPrompt.css +2 -2
  572. package/front_end/ui/legacy/toolbar.css +4 -4
  573. package/front_end/ui/legacy/treeoutline.css +14 -14
  574. package/front_end/ui/legacy/viewContainers.css +6 -6
  575. package/front_end/ui/settings/ConsoleSettings.ts +34 -0
  576. package/front_end/ui/visual_logging/KnownContextValues.ts +12 -0
  577. package/inspector_overlay/common.ts +12 -12
  578. package/inspector_overlay/css_grid_label_helpers.ts +16 -17
  579. package/inspector_overlay/drag_resize_handler.ts +2 -2
  580. package/inspector_overlay/highlight_common.ts +11 -13
  581. package/inspector_overlay/highlight_container_query.ts +2 -2
  582. package/inspector_overlay/highlight_flex_common.ts +6 -7
  583. package/inspector_overlay/highlight_grid_common.ts +3 -3
  584. package/inspector_overlay/highlight_isolated_element.ts +12 -3
  585. package/inspector_overlay/highlight_scroll_snap.ts +2 -2
  586. package/inspector_overlay/loadCSS.rollup.js +0 -1
  587. package/inspector_overlay/testing/InspectorOverlayHelpers.ts +13 -13
  588. package/inspector_overlay/tool_green_dev_anchors.ts +3 -3
  589. package/inspector_overlay/tool_highlight.ts +9 -9
  590. package/inspector_overlay/tool_paused.ts +4 -4
  591. package/inspector_overlay/tool_persistent.ts +11 -11
  592. package/inspector_overlay/tool_screenshot.ts +7 -7
  593. package/inspector_overlay/tool_source_order.ts +4 -4
  594. package/inspector_overlay/tool_viewport_size.ts +3 -3
  595. package/inspector_overlay/tool_window_controls.ts +4 -4
  596. package/mcp/mcp.ts +1 -0
  597. package/package.json +2 -2
  598. package/front_end/generated/protocol-tsconfig.json +0 -10
  599. package/front_end/panels/js_timeline/DIR_METADATA +0 -3
  600. package/front_end/panels/js_timeline/js_timeline-meta.ts +0 -193
  601. package/front_end/panels/js_timeline/js_timeline.ts +0 -1
  602. /package/front_end/entrypoints/{formatter_worker/FormatterActions.ts → formatter_actions/formatter_actions.ts} +0 -0
@@ -5,7 +5,13 @@
5
5
 
6
6
  // clang-format off
7
7
 
8
- export const NativeFunctions = [
8
+ export interface NativeFunctionValue {
9
+ name: string;
10
+ signatures: string[][];
11
+ receivers?: string[];
12
+ }
13
+
14
+ export const NativeFunctions: readonly NativeFunctionValue[] = [
9
15
  {
10
16
  name: "eval",
11
17
  signatures: [["x"]]
@@ -6656,7 +6662,7 @@ export const NativeFunctions = [
6656
6662
  },
6657
6663
  {
6658
6664
  name: "WebSocket",
6659
- signatures: [["url","?protocolsOrOptions"]]
6665
+ signatures: [["url","?protocols"]]
6660
6666
  },
6661
6667
  {
6662
6668
  name: "WebSocketError",
@@ -7000,7 +7006,7 @@ export const NativeFunctions = [
7000
7006
  },
7001
7007
  {
7002
7008
  name: "install",
7003
- signatures: [["?install_url","?manifest_id"],["params"]],
7009
+ signatures: [["?params"]],
7004
7010
  receivers: ["Navigator"]
7005
7011
  },
7006
7012
  {
@@ -7288,7 +7294,7 @@ export const NativeFunctions = [
7288
7294
  },
7289
7295
  {
7290
7296
  name: "RTCEncodedVideoFrame",
7291
- signatures: [["originalFrame","?options"]]
7297
+ signatures: [["init"],["originalFrame","?options"]]
7292
7298
  },
7293
7299
  {
7294
7300
  name: "RTCError",
@@ -8564,7 +8570,21 @@ export const NativeFunctions = [
8564
8570
  },
8565
8571
  {
8566
8572
  name: "getElementTransform",
8567
- signatures: [["element","draw_transform"]]
8573
+ signatures: [["element","draw_transform"]],
8574
+ receivers: ["OffscreenCanvas"]
8575
+ },
8576
+ {
8577
+ name: "getElementTransform",
8578
+ signatures: [["element","?draw_transform"]],
8579
+ receivers: ["HTMLCanvasElement"]
8580
+ },
8581
+ {
8582
+ name: "updateElementGeometry",
8583
+ signatures: [["element","?options"]]
8584
+ },
8585
+ {
8586
+ name: "clearElementGeometry",
8587
+ signatures: [["element"]]
8568
8588
  },
8569
8589
  {
8570
8590
  name: "NavigateEvent",
@@ -9126,10 +9146,6 @@ export const NativeFunctions = [
9126
9146
  name: "prependHTMLUnsafe",
9127
9147
  signatures: [["html","?options"]]
9128
9148
  },
9129
- {
9130
- name: "setCanvasTransform",
9131
- signatures: [["?matrix"]]
9132
- },
9133
9149
  {
9134
9150
  name: "matchContainer",
9135
9151
  signatures: [["query"]]
@@ -371,12 +371,18 @@ export class LiveMetrics extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
371
371
  // Use our own "interactionId" rather than the Chrome/web-vitals
372
372
  // provided one, so we can group events with same start time
373
373
  // (e.g. `pointerup` and `click` are one interaction log entry)
374
- interactionId: `interaction-${webVitalsEvent.entryGroupId}-${webVitalsEvent.startTime}`,
374
+ interactionId: webVitalsEvent.entryGroupId !== undefined && webVitalsEvent.startTime !== undefined ?
375
+ `interaction-${webVitalsEvent.entryGroupId}-${webVitalsEvent.startTime}` :
376
+ undefined,
375
377
  };
376
378
  this.#inpValue = inpEvent;
377
379
  break;
378
380
  }
379
381
  case 'InteractionEntry': {
382
+ if (webVitalsEvent.entryGroupId === undefined || webVitalsEvent.startTime === undefined) {
383
+ break;
384
+ }
385
+
380
386
  const groupInteractions =
381
387
  Platform.MapUtilities.getWithDefault(this.#interactionsByGroupId, webVitalsEvent.entryGroupId, () => []);
382
388
 
@@ -409,7 +415,7 @@ export class LiveMetrics extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
409
415
  // We can get multiple instances of the first input interaction since web-vitals.js installs
410
416
  // an extra listener for events of type `first-input`. This is a simple way to de-dupe those
411
417
  // events without adding complexity to the injected code.
412
- if (!interaction.eventNames.includes(webVitalsEvent.eventName)) {
418
+ if (webVitalsEvent.eventName && !interaction.eventNames.includes(webVitalsEvent.eventName)) {
413
419
  interaction.eventNames.push(webVitalsEvent.eventName);
414
420
  }
415
421
 
@@ -720,7 +726,7 @@ export interface LcpValue extends MetricValue {
720
726
 
721
727
  export interface InpValue extends MetricValue {
722
728
  subparts: Spec.InpSubparts;
723
- interactionId: InteractionId;
729
+ interactionId?: InteractionId;
724
730
  }
725
731
 
726
732
  export interface ClsValue extends MetricValue {
@@ -50,8 +50,8 @@ export interface InpChangeEvent {
50
50
  value: Trace.Types.Timing.Milli;
51
51
  interactionType: WebVitals.INPAttribution['interactionType'];
52
52
  subparts: InpSubparts;
53
- startTime: number;
54
- entryGroupId: InteractionEntryGroupId;
53
+ startTime?: number;
54
+ entryGroupId?: InteractionEntryGroupId;
55
55
  }
56
56
 
57
57
  // These object keys will be user visible
@@ -96,10 +96,10 @@ export interface PerformanceLongAnimationFrameTimingJSON {
96
96
  export interface InteractionEntryEvent {
97
97
  name: 'InteractionEntry';
98
98
  interactionType?: WebVitals.INPAttribution['interactionType'];
99
- eventName: string;
100
- entryGroupId: InteractionEntryGroupId;
101
- startTime: number;
102
- navigationId: number;
99
+ eventName?: string;
100
+ entryGroupId?: InteractionEntryGroupId;
101
+ startTime?: number;
102
+ navigationId?: number;
103
103
  nextPaintTime?: number;
104
104
  duration: Trace.Types.Timing.Milli;
105
105
  subparts: InpSubparts;
@@ -122,5 +122,57 @@ export interface ResetEvent {
122
122
  navigationType?: NavigationType;
123
123
  }
124
124
 
125
+ export function limitScripts(loafs: PerformanceLongAnimationFrameTimingJSON[]):
126
+ PerformanceLongAnimationFrameTimingJSON[] {
127
+ return loafs.map(loaf => {
128
+ loaf.scripts = loaf.scripts.slice()
129
+ .sort((a, b) => b.duration - a.duration)
130
+ .slice(0, SCRIPTS_PER_LOAF_LIMIT)
131
+ .sort((a, b) => a.startTime - b.startTime);
132
+ return loaf;
133
+ });
134
+ }
135
+
136
+ export function createInteractionEntryEvent(interaction: WebVitals.INPMetricWithAttribution): InteractionEntryEvent {
137
+ const event: InteractionEntryEvent = {
138
+ name: 'InteractionEntry',
139
+ duration: interaction.value as Trace.Types.Timing.Milli,
140
+ subparts: {
141
+ inputDelay: interaction.attribution.inputDelay as Trace.Types.Timing.Milli,
142
+ processingDuration: interaction.attribution.processingDuration as Trace.Types.Timing.Milli,
143
+ presentationDelay: interaction.attribution.presentationDelay as Trace.Types.Timing.Milli,
144
+ },
145
+ startTime: interaction.entries?.[0]?.startTime,
146
+ navigationId: interaction.navigationId,
147
+ entryGroupId: interaction.entries?.[0]?.interactionId as InteractionEntryGroupId | undefined,
148
+ nextPaintTime: interaction.attribution.nextPaintTime,
149
+ interactionType: interaction.attribution.interactionType,
150
+ eventName: interaction.entries?.[0]?.name,
151
+ // To limit the amount of events, just get the last 5 LoAFs
152
+ longAnimationFrameEntries: limitScripts(
153
+ interaction.attribution.longAnimationFrameEntries?.slice(-LOAF_LIMIT).map(loaf => loaf.toJSON()) ?? []),
154
+ };
155
+ const target = interaction.attribution.interactionTarget;
156
+ if (target) {
157
+ event.nodeIndex = Number(target);
158
+ }
159
+ return event;
160
+ }
161
+
162
+ export function createInpChangeEvent(metric: WebVitals.INPMetricWithAttribution): InpChangeEvent {
163
+ return {
164
+ name: 'INP',
165
+ value: metric.value as Trace.Types.Timing.Milli,
166
+ subparts: {
167
+ inputDelay: metric.attribution.inputDelay as Trace.Types.Timing.Milli,
168
+ processingDuration: metric.attribution.processingDuration as Trace.Types.Timing.Milli,
169
+ presentationDelay: metric.attribution.presentationDelay as Trace.Types.Timing.Milli,
170
+ },
171
+ startTime: metric.entries?.[0]?.startTime,
172
+ entryGroupId: metric.entries?.[0]?.interactionId as InteractionEntryGroupId | undefined,
173
+ interactionType: metric.attribution.interactionType,
174
+ };
175
+ }
176
+
125
177
  export type WebVitalsEvent =
126
178
  LcpChangeEvent|ClsChangeEvent|InpChangeEvent|InteractionEntryEvent|LayoutShiftEvent|ResetEvent;
@@ -122,29 +122,6 @@ window.getNodeForIndex = (index: number): Node|undefined => {
122
122
  return nodeList[index].deref();
123
123
  };
124
124
 
125
- function limitScripts(loafs: Spec.PerformanceLongAnimationFrameTimingJSON[]):
126
- Spec.PerformanceLongAnimationFrameTimingJSON[] {
127
- return loafs.map(loaf => {
128
- const longestScripts: Spec.PerformanceScriptTimingJSON[] = [];
129
- for (const script of loaf.scripts) {
130
- if (longestScripts.length < Spec.SCRIPTS_PER_LOAF_LIMIT) {
131
- longestScripts.push(script);
132
- continue;
133
- }
134
-
135
- const shorterIndex = longestScripts.findIndex(s => s.duration < script.duration);
136
- if (shorterIndex === -1) {
137
- continue;
138
- }
139
-
140
- longestScripts[shorterIndex] = script;
141
- }
142
- longestScripts.sort((a, b) => a.startTime - b.startTime);
143
- loaf.scripts = longestScripts;
144
- return loaf;
145
- });
146
- }
147
-
148
125
  function isPrerendered(): boolean {
149
126
  if (document.prerendering) {
150
127
  return true;
@@ -213,48 +190,11 @@ function initialize(): void {
213
190
  }, {reportAllChanges: true, reportSoftNavs: window.devToolsReportSoftNavs});
214
191
 
215
192
  function onEachInteraction(interaction: WebVitals.INPMetricWithAttribution): void {
216
- // Multiple `InteractionEntry` events can be emitted for the same `uniqueInteractionId`
217
- // However, it is easier to combine these entries in the DevTools client rather than in
218
- // this injected code.
219
- const event: Spec.InteractionEntryEvent = {
220
- name: 'InteractionEntry',
221
- duration: interaction.value as Trace.Types.Timing.Milli,
222
- subparts: {
223
- inputDelay: interaction.attribution.inputDelay as Trace.Types.Timing.Milli,
224
- processingDuration: interaction.attribution.processingDuration as Trace.Types.Timing.Milli,
225
- presentationDelay: interaction.attribution.presentationDelay as Trace.Types.Timing.Milli,
226
- },
227
- startTime: interaction.entries[0].startTime,
228
- navigationId: interaction.navigationId,
229
- entryGroupId: interaction.entries[0].interactionId as Spec.InteractionEntryGroupId,
230
- nextPaintTime: interaction.attribution.nextPaintTime,
231
- interactionType: interaction.attribution.interactionType,
232
- eventName: interaction.entries[0].name,
233
- // To limit the amount of events, just get the last 5 LoAFs
234
- longAnimationFrameEntries: limitScripts(
235
- interaction.attribution.longAnimationFrameEntries.slice(-Spec.LOAF_LIMIT).map(loaf => loaf.toJSON())),
236
- };
237
- const target = interaction.attribution.interactionTarget;
238
- if (target) {
239
- event.nodeIndex = Number(target);
240
- }
241
- sendEventToDevTools(event);
193
+ sendEventToDevTools(Spec.createInteractionEntryEvent(interaction));
242
194
  }
243
195
 
244
196
  onINP(metric => {
245
- const event: Spec.InpChangeEvent = {
246
- name: 'INP',
247
- value: metric.value as Trace.Types.Timing.Milli,
248
- subparts: {
249
- inputDelay: metric.attribution.inputDelay as Trace.Types.Timing.Milli,
250
- processingDuration: metric.attribution.processingDuration as Trace.Types.Timing.Milli,
251
- presentationDelay: metric.attribution.presentationDelay as Trace.Types.Timing.Milli,
252
- },
253
- startTime: metric.entries[0].startTime,
254
- entryGroupId: metric.entries[0].interactionId as Spec.InteractionEntryGroupId,
255
- interactionType: metric.attribution.interactionType,
256
- };
257
- sendEventToDevTools(event);
197
+ sendEventToDevTools(Spec.createInpChangeEvent(metric));
258
198
  }, {
259
199
  reportAllChanges: true,
260
200
  durationThreshold: 0,
@@ -25,7 +25,7 @@ export const enum RequestTimeRangeNames {
25
25
  WAITING = 'waiting',
26
26
  }
27
27
 
28
- export const ServiceWorkerRangeNames = new Set<RequestTimeRangeNames>([
28
+ export const ServiceWorkerRangeNames: Set<RequestTimeRangeNames> = new Set<RequestTimeRangeNames>([
29
29
  RequestTimeRangeNames.SERVICE_WORKER,
30
30
  RequestTimeRangeNames.SERVICE_WORKER_PREPARATION,
31
31
  RequestTimeRangeNames.SERVICE_WORKER_RESPOND_WITH,
@@ -33,7 +33,7 @@ export const ServiceWorkerRangeNames = new Set<RequestTimeRangeNames>([
33
33
  RequestTimeRangeNames.SERVICE_WORKER_CACHE_LOOKUP,
34
34
  ]);
35
35
 
36
- export const ConnectionSetupRangeNames = new Set<RequestTimeRangeNames>([
36
+ export const ConnectionSetupRangeNames: Set<RequestTimeRangeNames> = new Set<RequestTimeRangeNames>([
37
37
  RequestTimeRangeNames.QUEUEING,
38
38
  RequestTimeRangeNames.BLOCKING,
39
39
  RequestTimeRangeNames.CONNECTING,
@@ -6,6 +6,7 @@ import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
8
  import * as Root from '../../core/root/root.js';
9
+ import type * as SDK from '../../core/sdk/sdk.js';
9
10
  import type * as TextUtils from '../../core/text_utils/text_utils.js';
10
11
  import * as Workspace from '../workspace/workspace.js';
11
12
 
@@ -58,6 +59,10 @@ export class FileSystem implements Workspace.Workspace.Project {
58
59
  return false;
59
60
  }
60
61
 
62
+ securityOrigin(): SDK.SecurityOrigin.SecurityOrigin|null {
63
+ return null;
64
+ }
65
+
61
66
  displayName(): string {
62
67
  const {root} = this.automaticFileSystem;
63
68
  let slash = root.lastIndexOf('/');
@@ -595,7 +595,7 @@ const SCRIPT_EXTENSIONS = new Set<string>([
595
595
 
596
596
  const IMAGE_EXTENSIONS = new Set<string>(['jpeg', 'jpg', 'svg', 'gif', 'webp', 'png', 'ico', 'tiff', 'tif', 'bmp']);
597
597
 
598
- export const BinaryExtensions = new Set<string>([
598
+ export const BinaryExtensions: Set<string> = new Set<string>([
599
599
  // Executable extensions, roughly taken from https://en.wikipedia.org/wiki/Comparison_of_executable_file_formats
600
600
  'cmd',
601
601
  'com',
@@ -231,6 +231,9 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
231
231
  if ((!this.#active && !ignoreInactive) || !this.#project) {
232
232
  return Platform.DevToolsPath.EmptyRawPathString;
233
233
  }
234
+ if (NetworkPersistenceManager.isForbiddenNetworkUrl(url)) {
235
+ return Platform.DevToolsPath.EmptyRawPathString;
236
+ }
234
237
  let initialEncodedPath = Common.ParsedURL.ParsedURL.urlWithoutHash(url.replace(/^https?:\/\//, '')) as
235
238
  Platform.DevToolsPath.EncodedPathString;
236
239
  if (initialEncodedPath.endsWith('/') && initialEncodedPath.indexOf('?') === -1) {
@@ -264,6 +267,9 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
264
267
  // encodeURI() escapes all the unsafe filename characters except '/' and '*'
265
268
  let encodedName =
266
269
  encodeURI(pathPart).replace(/[\/\*]/g, match => '%' + match[0].charCodeAt(0).toString(16).toUpperCase());
270
+ if (encodedName === '..') {
271
+ encodedName = '%2E%2E';
272
+ }
267
273
  if (Host.Platform.isWin()) {
268
274
  // Windows does not allow ':' and '?' in filenames
269
275
  encodedName = encodedName.replace(/[:\?]/g, match => '%' + match[0].charCodeAt(0).toString(16).toUpperCase());
@@ -302,12 +308,18 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
302
308
  if (!this.#project) {
303
309
  return Platform.DevToolsPath.EmptyUrlString;
304
310
  }
305
- return Common.ParsedURL.ParsedURL.concatenate(
306
- (this.#project as FileSystem).fileSystemPath(), '/', this.encodedPathFromUrl(url, ignoreInactive));
311
+ const encodedPath = this.encodedPathFromUrl(url, ignoreInactive);
312
+ if (!encodedPath) {
313
+ return Platform.DevToolsPath.EmptyUrlString;
314
+ }
315
+ return Common.ParsedURL.ParsedURL.concatenate((this.#project as FileSystem).fileSystemPath(), '/', encodedPath);
307
316
  }
308
317
 
309
318
  getHeadersUISourceCodeFromUrl(url: Platform.DevToolsPath.UrlString): Workspace.UISourceCode.UISourceCode|null {
310
319
  const fileUrlFromRequest = this.fileUrlFromNetworkUrl(url, /* ignoreNoActive */ true);
320
+ if (!fileUrlFromRequest) {
321
+ return null;
322
+ }
311
323
  const folderUrlFromRequest =
312
324
  Common.ParsedURL.ParsedURL.substring(fileUrlFromRequest, 0, fileUrlFromRequest.lastIndexOf('/'));
313
325
  const headersFileUrl = Common.ParsedURL.ParsedURL.concatenate(folderUrlFromRequest, '/', HEADERS_FILENAME);
@@ -319,6 +331,9 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
319
331
  let uiSourceCode = this.getHeadersUISourceCodeFromUrl(url);
320
332
  if (!uiSourceCode && this.#project) {
321
333
  const encodedFilePath = this.encodedPathFromUrl(url, /* ignoreNoActive */ true);
334
+ if (!encodedFilePath) {
335
+ return null;
336
+ }
322
337
  const encodedPath = Common.ParsedURL.ParsedURL.substring(encodedFilePath, 0, encodedFilePath.lastIndexOf('/'));
323
338
  uiSourceCode = await this.#project.createFile(encodedPath, HEADERS_FILENAME, '');
324
339
  Host.userMetrics.actionTaken(Host.UserMetrics.Action.HeaderOverrideFileCreated);
@@ -435,6 +450,9 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
435
450
  }
436
451
 
437
452
  async setupAndStartLocalOverrides(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<boolean> {
453
+ if (!this.isUISourceCodeOverridable(uiSourceCode)) {
454
+ return false;
455
+ }
438
456
  // No overrides folder, set it up
439
457
  if (this.#shouldPromptSaveForOverridesDialog(uiSourceCode)) {
440
458
  Host.userMetrics.actionTaken(Host.UserMetrics.Action.OverrideContentContextMenuSetup);
@@ -472,6 +490,10 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
472
490
  }
473
491
  this.#savingForOverrides.add(uiSourceCode);
474
492
  let encodedPath = this.encodedPathFromUrl(uiSourceCode.url());
493
+ if (!encodedPath) {
494
+ this.#savingForOverrides.delete(uiSourceCode);
495
+ return;
496
+ }
475
497
  const contentDataOrError = await uiSourceCode.requestContentData();
476
498
  const {content, isEncoded} = TextUtils.ContentData.ContentData.asDeferredContent(contentDataOrError);
477
499
  const lastIndexOfSlash = encodedPath.lastIndexOf('/');
@@ -516,16 +538,22 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
516
538
  private isForbiddenFileUrl(uiSourceCode: Workspace.UISourceCode.UISourceCode): boolean {
517
539
  const relativePathParts = FileSystemWorkspaceBinding.relativePath(uiSourceCode);
518
540
  // Decode twice to handle paths generated on Windows OS.
519
- const host = this.decodeLocalPathToUrlPath(this.decodeLocalPathToUrlPath(relativePathParts[0] || ''));
520
- return host === 'chrome:' || forbiddenUrls.includes(host);
541
+ const host = this.decodeLocalPathToUrlPath(this.decodeLocalPathToUrlPath(relativePathParts[0] || '')).toLowerCase();
542
+ return ['chrome:', 'data:', 'blob:', 'javascript:', 'about:', 'mailto:', 'vbscript:'].includes(host) ||
543
+ forbiddenUrls.includes(host);
521
544
  }
522
545
 
523
546
  static isForbiddenNetworkUrl(urlString: Platform.DevToolsPath.UrlString): boolean {
547
+ const trimmedUrl = urlString.trim().toLowerCase();
548
+ if (trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('blob:') || trimmedUrl.startsWith('javascript:') ||
549
+ trimmedUrl.startsWith('about:') || trimmedUrl.startsWith('mailto:') || trimmedUrl.startsWith('vbscript:')) {
550
+ return true;
551
+ }
524
552
  const url = Common.ParsedURL.ParsedURL.fromString(urlString);
525
553
  if (!url) {
526
554
  return false;
527
555
  }
528
- return url.scheme === 'chrome' || forbiddenUrls.includes(url.host);
556
+ return !['http', 'https', 'file'].includes(url.scheme) || forbiddenUrls.includes(url.host);
529
557
  }
530
558
 
531
559
  private async onUISourceCodeAdded(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<void> {
@@ -534,7 +562,8 @@ export class NetworkPersistenceManager extends Common.ObjectWrapper.ObjectWrappe
534
562
  }
535
563
 
536
564
  private canHandleNetworkUISourceCode(uiSourceCode: Workspace.UISourceCode.UISourceCode): boolean {
537
- return this.#active && !Common.ParsedURL.schemeIs(uiSourceCode.url(), 'snippet:');
565
+ return this.#active && !Common.ParsedURL.schemeIs(uiSourceCode.url(), 'snippet:') &&
566
+ !NetworkPersistenceManager.isForbiddenNetworkUrl(uiSourceCode.url());
538
567
  }
539
568
 
540
569
  private async networkUISourceCodeAdded(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<void> {
@@ -35,10 +35,10 @@ export class StackTraceImpl<SyncFragmentT extends FragmentImpl|DebuggableFragmen
35
35
  }
36
36
 
37
37
  export class FragmentImpl implements StackTrace.StackTrace.Fragment {
38
- static readonly EMPTY_FRAGMENT = new FragmentImpl();
38
+ static readonly EMPTY_FRAGMENT: FragmentImpl = new FragmentImpl();
39
39
 
40
40
  readonly node?: FrameNode;
41
- readonly stackTraces = new Set<AnyStackTraceImpl>();
41
+ readonly stackTraces: Set<AnyStackTraceImpl> = new Set<AnyStackTraceImpl>();
42
42
 
43
43
  /**
44
44
  * Fragments are deduplicated based on the node.
@@ -269,9 +269,8 @@ function linkInitiators(lanternRequests: NetworkRequest[]): void {
269
269
  }
270
270
  }
271
271
 
272
- function createNetworkRequests(
273
- trace: Lantern.Types.Trace, data: Handlers.Types.HandlerData, startTime = 0,
274
- endTime = Number.POSITIVE_INFINITY): NetworkRequest[] {
272
+ function createNetworkRequests(trace: Lantern.Types.Trace, data: Handlers.Types.HandlerData, startTime = 0,
273
+ endTime: number = Number.POSITIVE_INFINITY): NetworkRequest[] {
275
274
  const workerThreads = findWorkerThreads(trace);
276
275
 
277
276
  const lanternRequestsNoRedirects: NetworkRequest[] = [];
@@ -7,8 +7,9 @@ import type * as Handlers from '../handlers/handlers.js';
7
7
  import * as Helpers from '../helpers/helpers.js';
8
8
  import * as Types from '../types/types.js';
9
9
 
10
- export const stackTraceForEventInTrace =
11
- new Map<Handlers.Types.HandlerData, Map<Types.Events.Event, Protocol.Runtime.StackTrace>>();
10
+ export const stackTraceForEventInTrace:
11
+ Map<Handlers.Types.HandlerData, Map<Types.Events.Event, Protocol.Runtime.StackTrace>> =
12
+ new Map<Handlers.Types.HandlerData, Map<Types.Events.Event, Protocol.Runtime.StackTrace>>();
12
13
 
13
14
  export function clearCacheForTrace(data: Handlers.Types.HandlerData): void {
14
15
  stackTraceForEventInTrace.delete(data);
@@ -52,7 +52,7 @@ function collectMainThreadActivity(data: Handlers.Types.HandlerData): Types.Even
52
52
 
53
53
  export function summarizeByThirdParty(
54
54
  data: Handlers.Types.HandlerData, traceBounds: Types.Timing.TraceWindowMicro): EntitySummary[] {
55
- const mainThreadEvents = collectMainThreadActivity(data).sort(Helpers.Trace.eventTimeComparator);
55
+ const mainThreadEvents = collectMainThreadActivity(data);
56
56
  const groupingFunction = (event: Types.Events.Event): string => {
57
57
  const entity = data.Renderer.entityMappings.entityByEvent.get(event);
58
58
  return entity?.name ?? '';
@@ -68,7 +68,7 @@ export function summarizeByThirdParty(
68
68
  */
69
69
  export function summarizeByURL(
70
70
  data: Handlers.Types.HandlerData, traceBounds: Types.Timing.TraceWindowMicro): URLSummary[] {
71
- const mainThreadEvents = collectMainThreadActivity(data).sort(Helpers.Trace.eventTimeComparator);
71
+ const mainThreadEvents = collectMainThreadActivity(data);
72
72
  const groupingFunction = (event: Types.Events.Event): string => {
73
73
  return Handlers.Helpers.getNonResolvedURL(event, data) ?? '';
74
74
  };
@@ -140,20 +140,20 @@ function summarizeBottomUpByURL(root: TraceTree.BottomUpRootNode, data: Handlers
140
140
  return summaries;
141
141
  }
142
142
 
143
+ // Use the same filtering as front_end/panels/timeline/TimelineTreeView.ts.
144
+ const exclusiveNameFilter = new TraceFilter.ExclusiveNameFilter([]);
145
+ const visibleEventsFilter = new TraceFilter.VisibleEventsFilter(
146
+ [...Helpers.Trace.VISIBLE_TRACE_EVENT_TYPES.values(), Types.Events.Name.SYNTHETIC_NETWORK_REQUEST]);
147
+
143
148
  function getBottomUpTree(
144
149
  mainThreadEvents: Types.Events.Event[], tracebounds: Types.Timing.TraceWindowMicro,
145
150
  groupingFunction: ((arg0: Types.Events.Event) => string)|null): TraceTree.BottomUpRootNode {
146
- // Use the same filtering as front_end/panels/timeline/TimelineTreeView.ts.
147
- const visibleEvents = Helpers.Trace.VISIBLE_TRACE_EVENT_TYPES.values().toArray();
148
- const filter =
149
- new TraceFilter.VisibleEventsFilter(visibleEvents.concat([Types.Events.Name.SYNTHETIC_NETWORK_REQUEST]));
150
-
151
151
  // The bottom up root node handles all the "in Tracebounds" checks we need for the insight.
152
152
  const startTime = Helpers.Timing.microToMilli(tracebounds.min);
153
153
  const endTime = Helpers.Timing.microToMilli(tracebounds.max);
154
154
  return new TraceTree.BottomUpRootNode(mainThreadEvents, {
155
- textFilter: new TraceFilter.ExclusiveNameFilter([]),
156
- filters: [filter],
155
+ textFilter: exclusiveNameFilter,
156
+ filters: [visibleEventsFilter],
157
157
  startTime,
158
158
  endTime,
159
159
  eventGroupIdCallback: groupingFunction,
@@ -8,13 +8,16 @@ import * as Types from '../types/types.js';
8
8
  import {data as flowsHandlerData} from './FlowsHandler.js';
9
9
  import {data as rendererHandlerData} from './RendererHandler.js';
10
10
 
11
- let schedulerToRunEntryPoints = new Map<Types.Events.Event, Types.Events.Event[]>();
11
+ let schedulerToRunEntryPoints: Map<Types.Events.Event, Types.Events.Event[]> =
12
+ new Map<Types.Events.Event, Types.Events.Event[]>();
12
13
 
13
- let taskScheduleForTaskRunEvent = new Map<Types.Events.DebuggerAsyncTaskRun, Types.Events.DebuggerAsyncTaskScheduled>();
14
- let asyncCallToScheduler =
14
+ let taskScheduleForTaskRunEvent: Map<Types.Events.DebuggerAsyncTaskRun, Types.Events.DebuggerAsyncTaskScheduled> =
15
+ new Map<Types.Events.DebuggerAsyncTaskRun, Types.Events.DebuggerAsyncTaskScheduled>();
16
+ let asyncCallToScheduler: Map<Types.Events.SyntheticProfileCall, {taskName: string, scheduler: Types.Events.Event}> =
15
17
  new Map<Types.Events.SyntheticProfileCall, {taskName: string, scheduler: Types.Events.Event}>();
16
18
 
17
- let runEntryPointToScheduler = new Map<Types.Events.Event, {taskName: string, scheduler: Types.Events.Event}>();
19
+ let runEntryPointToScheduler: Map<Types.Events.Event, {taskName: string, scheduler: Types.Events.Event}> =
20
+ new Map<Types.Events.Event, {taskName: string, scheduler: Types.Events.Event}>();
18
21
 
19
22
  export function reset(): void {
20
23
  schedulerToRunEntryPoints = new Map();
@@ -390,10 +390,10 @@ class TimelineFrame implements Types.Events.LegacyTimelineFrame {
390
390
  // Types.Events.Event.
391
391
  cat = 'devtools.legacy_frame';
392
392
  name = 'frame';
393
- ph = Types.Events.Phase.COMPLETE;
393
+ ph: Types.Events.Phase = Types.Events.Phase.COMPLETE;
394
394
  ts: Types.Timing.Micro;
395
- pid = Types.Events.ProcessID(-1);
396
- tid = Types.Events.ThreadID(-1);
395
+ pid: Types.Events.ProcessID = Types.Events.ProcessID(-1);
396
+ tid: Types.Events.ThreadID = Types.Events.ThreadID(-1);
397
397
 
398
398
  index = -1;
399
399
  startTime: Types.Timing.Micro;
@@ -67,13 +67,13 @@ interface RemoteFont {
67
67
  * This represents the maximum #time we will allow a cluster to go before we
68
68
  * reset it.
69
69
  **/
70
- export const MAX_CLUSTER_DURATION = Helpers.Timing.milliToMicro(Types.Timing.Milli(5000));
70
+ export const MAX_CLUSTER_DURATION: Types.Timing.Micro = Helpers.Timing.milliToMicro(Types.Timing.Milli(5000));
71
71
 
72
72
  /**
73
73
  * This represents the maximum #time we will allow between layout shift events
74
74
  * before considering it to be the start of a new cluster.
75
75
  **/
76
- export const MAX_SHIFT_TIME_DELTA = Helpers.Timing.milliToMicro(Types.Timing.Milli(1000));
76
+ export const MAX_SHIFT_TIME_DELTA: Types.Timing.Micro = Helpers.Timing.milliToMicro(Types.Timing.Milli(1000));
77
77
 
78
78
  // Layout shifts are reported globally to the developer, irrespective of which
79
79
  // frame they originated in. However, each process does have its own individual
@@ -8,8 +8,10 @@ import * as CPUProfile from '../../cpu_profile/cpu_profile.js';
8
8
  import * as Helpers from '../helpers/helpers.js';
9
9
  import * as Types from '../types/types.js';
10
10
 
11
- let profilesInProcess = new Map<Types.Events.ProcessID, Map<Types.Events.ThreadID, ProfileData>>();
12
- let entryToNode = new Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>();
11
+ let profilesInProcess: Map<Types.Events.ProcessID, Map<Types.Events.ThreadID, ProfileData>> =
12
+ new Map<Types.Events.ProcessID, Map<Types.Events.ThreadID, ProfileData>>();
13
+ let entryToNode: Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode> =
14
+ new Map<Types.Events.Event, Helpers.TreeHelpers.TraceEntryNode>();
13
15
 
14
16
  // The profile head, containing its metadata like its start
15
17
  // time, comes in a "Profile" event. The sample data comes in
@@ -16,7 +16,7 @@ import type {HandlerName} from './types.js';
16
16
  let beginCommitCompositorFrameEvents: Types.Events.BeginCommitCompositorFrame[] = [];
17
17
  let parseMetaViewportEvents: Types.Events.ParseMetaViewport[] = [];
18
18
 
19
- export const LONG_INTERACTION_THRESHOLD = Helpers.Timing.milliToMicro(Types.Timing.Milli(200));
19
+ export const LONG_INTERACTION_THRESHOLD: Types.Timing.Micro = Helpers.Timing.milliToMicro(Types.Timing.Milli(200));
20
20
 
21
21
  const INP_GOOD_TIMING = LONG_INTERACTION_THRESHOLD;
22
22
  const INP_MEDIUM_TIMING = Helpers.Timing.milliToMicro(Types.Timing.Milli(500));
@@ -42,9 +42,9 @@ let taskReflowEvents: Types.Events.Event[] = [];
42
42
  */
43
43
  let longTaskEvents: Types.Events.Event[] = [];
44
44
 
45
- export const FORCED_REFLOW_THRESHOLD = Helpers.Timing.milliToMicro(Types.Timing.Milli(30));
45
+ export const FORCED_REFLOW_THRESHOLD: Types.Timing.Micro = Helpers.Timing.milliToMicro(Types.Timing.Milli(30));
46
46
 
47
- export const LONG_MAIN_THREAD_TASK_THRESHOLD = Helpers.Timing.milliToMicro(Types.Timing.Milli(50));
47
+ export const LONG_MAIN_THREAD_TASK_THRESHOLD: Types.Timing.Micro = Helpers.Timing.milliToMicro(Types.Timing.Milli(50));
48
48
 
49
49
  export function reset(): void {
50
50
  warningsPerEvent = new Map();
@@ -48,10 +48,10 @@ export interface CacheControl {
48
48
  'private'?: boolean;
49
49
  }
50
50
 
51
- export const CACHEABLE_STATUS_CODES = new Set([200, 203, 206]);
51
+ export const CACHEABLE_STATUS_CODES: Set<number> = new Set([200, 203, 206]);
52
52
 
53
53
  /** @type {Set<LH.Crdp.Network.ResourceType>} */
54
- export const STATIC_RESOURCE_TYPES = new Set([
54
+ export const STATIC_RESOURCE_TYPES: Set<Protocol.Network.ResourceType> = new Set([
55
55
  Protocol.Network.ResourceType.Font,
56
56
  Protocol.Network.ResourceType.Image,
57
57
  Protocol.Network.ResourceType.Media,
@@ -59,7 +59,7 @@ export const STATIC_RESOURCE_TYPES = new Set([
59
59
  Protocol.Network.ResourceType.Stylesheet,
60
60
  ]);
61
61
 
62
- export const NON_NETWORK_SCHEMES = [
62
+ export const NON_NETWORK_SCHEMES: string[] = [
63
63
  'blob', // @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
64
64
  'data', // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
65
65
  'intent', // @see https://developer.chrome.com/docs/multidevice/android/intents/
@@ -838,7 +838,7 @@ export function extractSampleTraceId(event: Types.Events.Event): number|null {
838
838
  * This exactly matches Trace.Styles.visibleTypes. See the runtime verification in maybeInitStylesMap.
839
839
  * TODO(crbug.com/410884528)
840
840
  **/
841
- export const VISIBLE_TRACE_EVENT_TYPES = new Set<Types.Events.Name>([
841
+ export const VISIBLE_TRACE_EVENT_TYPES: Set<Types.Events.Name> = new Set<Types.Events.Name>([
842
842
  Types.Events.Name.ABORT_POST_TASK_CALLBACK,
843
843
  Types.Events.Name.ANIMATION,
844
844
  Types.Events.Name.ASYNC_TASK,