chrome-devtools-frontend 1.0.1657855 → 1.0.1661063

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 (370) hide show
  1. package/.agents/skills/evaluate-ai-css-completion/SKILL.md +133 -0
  2. package/.agents/skills/evaluate-ai-css-completion/scripts/evaluate.js +76 -0
  3. package/.agents/skills/migrate-chromium-test/SKILL.md +15 -70
  4. package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +37 -18
  5. package/.agents/skills/version-control/SKILL.md +8 -1
  6. package/AUTHORS +1 -0
  7. package/SECURITY.md +3 -0
  8. package/docs/get_the_code.md +6 -0
  9. package/eslint.config.mjs +7 -0
  10. package/extension-api/ExtensionAPI.d.ts +88 -0
  11. package/front_end/Tests.js +6 -6
  12. package/front_end/core/common/Gzip.ts +12 -5
  13. package/front_end/core/host/AidaClient.ts +35 -9
  14. package/front_end/core/host/GdpClient.ts +10 -7
  15. package/front_end/core/host/InspectorFrontendHost.ts +1 -0
  16. package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
  17. package/front_end/core/platform/StringUtilities.ts +55 -4
  18. package/front_end/core/sdk/AccessibilityModel.snapshot.txt +17 -0
  19. package/front_end/core/sdk/AccessibilityModel.ts +132 -2
  20. package/front_end/core/sdk/CPUThrottlingManager.ts +10 -5
  21. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +2 -5
  22. package/front_end/core/sdk/ConsoleModel.ts +5 -5
  23. package/front_end/core/sdk/DOMDebuggerModel.ts +7 -1
  24. package/front_end/core/sdk/DOMModel.ts +33 -18
  25. package/front_end/core/sdk/DebuggerModel.ts +4 -4
  26. package/front_end/core/sdk/EventBreakpointsModel.ts +2 -0
  27. package/front_end/core/sdk/FrameManager.ts +1 -0
  28. package/front_end/core/sdk/IsolateManager.ts +1 -0
  29. package/front_end/core/sdk/NetworkManager.ts +59 -11
  30. package/front_end/core/sdk/NetworkRequest.ts +38 -1
  31. package/front_end/core/sdk/OverlayModel.ts +45 -6
  32. package/front_end/core/sdk/PageResourceLoader.ts +2 -0
  33. package/front_end/core/sdk/ResourceTreeModel.ts +6 -7
  34. package/front_end/core/sdk/ScreenCaptureModel.ts +2 -2
  35. package/front_end/core/sdk/ServerTiming.ts +17 -13
  36. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +4 -2
  37. package/front_end/core/sdk/ServiceWorkerManager.ts +19 -5
  38. package/front_end/core/sdk/SourceMap.ts +5 -5
  39. package/front_end/core/sdk/SourceMapManager.ts +3 -2
  40. package/front_end/core/sdk/TargetManager.ts +14 -1
  41. package/front_end/core/sdk/TraceObject.ts +4 -2
  42. package/front_end/core/sdk/sdk-meta.ts +170 -0
  43. package/front_end/design_system_tokens.css +0 -5
  44. package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +5 -2
  45. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +26 -4
  46. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +8 -3
  47. package/front_end/entrypoints/inspector_main/InspectorMain.ts +4 -4
  48. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -2
  49. package/front_end/entrypoints/inspector_main/RenderingOptions.ts +36 -37
  50. package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +15 -33
  51. package/front_end/entrypoints/js_app/js_app.ts +6 -5
  52. package/front_end/entrypoints/main/GlobalAiButton.ts +4 -4
  53. package/front_end/entrypoints/main/MainImpl.ts +20 -22
  54. package/front_end/entrypoints/main/main-meta.ts +42 -42
  55. package/front_end/entrypoints/node_app/node_app.ts +3 -2
  56. package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
  57. package/front_end/foundation/Universe.ts +44 -1
  58. package/front_end/generated/InspectorBackendCommands.ts +2 -2
  59. package/front_end/generated/SupportedCSSProperties.js +19 -12
  60. package/front_end/generated/protocol.ts +3 -1
  61. package/front_end/models/ai_assistance/AiConversation.ts +19 -17
  62. package/front_end/models/ai_assistance/AiHistoryStorage.ts +37 -14
  63. package/front_end/models/ai_assistance/AiUtils.ts +38 -42
  64. package/front_end/models/ai_assistance/agents/AiAgent.ts +5 -1
  65. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +3 -2
  66. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -1
  67. package/front_end/models/ai_assistance/agents/StorageAgent.ts +7 -5
  68. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +270 -286
  69. package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +20 -0
  70. package/front_end/models/ai_assistance/performance/AICallTree.ts +3 -1
  71. package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +3 -2
  72. package/front_end/models/autofill_manager/AutofillManager.ts +3 -1
  73. package/front_end/models/bindings/CompilerScriptMapping.ts +7 -7
  74. package/front_end/models/bindings/ContentProviderBasedProject.ts +4 -4
  75. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +5 -5
  76. package/front_end/models/bindings/DefaultScriptMapping.ts +3 -3
  77. package/front_end/models/bindings/NetworkProject.ts +5 -10
  78. package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
  79. package/front_end/models/bindings/ResourceMapping.ts +3 -4
  80. package/front_end/models/bindings/ResourceScriptMapping.ts +2 -3
  81. package/front_end/models/bindings/ResourceUtils.ts +1 -1
  82. package/front_end/models/bindings/SASSSourceMapping.ts +11 -9
  83. package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
  84. package/front_end/models/bindings/TempFile.ts +8 -3
  85. package/front_end/models/emulation/EmulatedDevices.ts +389 -8
  86. package/front_end/models/extensions/ExtensionAPI.ts +116 -52
  87. package/front_end/models/extensions/LanguageExtensionEndpoint.ts +13 -12
  88. package/front_end/models/formatter/ScriptFormatter.ts +8 -11
  89. package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -1
  90. package/front_end/models/issues_manager/ClientHintIssue.ts +1 -1
  91. package/front_end/models/issues_manager/ConnectionAllowlistIssue.ts +1 -1
  92. package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +7 -7
  93. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +2 -2
  94. package/front_end/models/issues_manager/CookieIssue.ts +27 -16
  95. package/front_end/models/issues_manager/CorsIssue.ts +3 -3
  96. package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +2 -2
  97. package/front_end/models/issues_manager/DeprecationIssue.ts +3 -3
  98. package/front_end/models/issues_manager/EmailVerificationRequestIssue.ts +1 -1
  99. package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +1 -1
  100. package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +1 -1
  101. package/front_end/models/issues_manager/GenericIssue.ts +7 -7
  102. package/front_end/models/issues_manager/HeavyAdIssue.ts +3 -3
  103. package/front_end/models/issues_manager/Issue.ts +11 -12
  104. package/front_end/models/issues_manager/IssueAggregator.ts +0 -9
  105. package/front_end/models/issues_manager/IssueResolver.ts +2 -2
  106. package/front_end/models/issues_manager/IssuesManager.ts +136 -137
  107. package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
  108. package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +3 -3
  109. package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
  110. package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +2 -2
  111. package/front_end/models/issues_manager/SelectivePermissionsInterventionIssue.ts +2 -2
  112. package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +2 -2
  113. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +1 -1
  114. package/front_end/models/issues_manager/UnencodedDigestIssue.ts +3 -3
  115. package/front_end/models/issues_manager/issues_manager.ts +0 -2
  116. package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
  117. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
  118. package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +13 -10
  119. package/front_end/models/stack_trace/StackTraceModel.ts +3 -3
  120. package/front_end/models/text_utils/ContentData.ts +27 -0
  121. package/front_end/models/trace/helpers/SamplesIntegrator.ts +21 -5
  122. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +29 -14
  123. package/front_end/models/web_mcp/WebMCPModel.ts +24 -6
  124. package/front_end/models/workspace/IgnoreListManager.ts +6 -6
  125. package/front_end/models/workspace/UISourceCode.ts +3 -3
  126. package/front_end/models/workspace/WorkspaceImpl.ts +10 -1
  127. package/front_end/models/workspace_diff/WorkspaceDiff.ts +10 -4
  128. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -22
  129. package/front_end/panels/ai_assistance/ExportConversation.ts +3 -4
  130. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +3 -3
  131. package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
  132. package/front_end/panels/ai_assistance/components/ChatMessage.ts +9 -1
  133. package/front_end/panels/ai_assistance/components/DisabledWidget.ts +2 -2
  134. package/front_end/panels/animation/AnimationTimeline.ts +17 -19
  135. package/front_end/panels/animation/AnimationUI.ts +5 -5
  136. package/front_end/panels/animation/animation-meta.ts +2 -2
  137. package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -3
  138. package/front_end/panels/application/DeviceBoundSessionsView.ts +2 -6
  139. package/front_end/panels/application/FrameDetailsView.ts +1 -1
  140. package/front_end/panels/application/IndexedDBViews.ts +220 -266
  141. package/front_end/panels/application/OpenedWindowDetailsView.ts +1 -1
  142. package/front_end/panels/application/ResourcesPanel.ts +9 -2
  143. package/front_end/panels/application/ServiceWorkersView.ts +252 -211
  144. package/front_end/panels/application/StorageView.ts +97 -33
  145. package/front_end/panels/application/WebMCPView.ts +53 -44
  146. package/front_end/panels/application/components/AdsView.ts +201 -30
  147. package/front_end/panels/application/components/adsView.css +25 -0
  148. package/front_end/panels/application/indexedDBViews.css +38 -9
  149. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -2
  150. package/front_end/panels/application/preloading/helper/PreloadingForward.ts +2 -1
  151. package/front_end/panels/application/storageView.css +26 -9
  152. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +5 -1
  153. package/front_end/panels/browser_debugger/browser_debugger-meta.ts +8 -6
  154. package/front_end/panels/common/DOMLinkifier.ts +1 -1
  155. package/front_end/panels/common/ExtensionServer.ts +119 -14
  156. package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
  157. package/front_end/panels/console/ConsolePinPane.ts +2 -2
  158. package/front_end/panels/console/ConsolePrompt.ts +2 -2
  159. package/front_end/panels/console/ConsoleView.ts +3 -2
  160. package/front_end/panels/console/PromptBuilder.ts +2 -1
  161. package/front_end/panels/console/SymbolizedErrorWidget.ts +2 -1
  162. package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -2
  163. package/front_end/panels/coverage/CoverageListView.ts +28 -28
  164. package/front_end/panels/coverage/CoverageModel.ts +2 -1
  165. package/front_end/panels/coverage/CoverageView.ts +22 -22
  166. package/front_end/panels/coverage/coverage-meta.ts +5 -5
  167. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +36 -36
  168. package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -1
  169. package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +2 -2
  170. package/front_end/panels/css_overview/CSSOverviewStartView.ts +6 -6
  171. package/front_end/panels/css_overview/CSSOverviewUnusedDeclarations.ts +6 -6
  172. package/front_end/panels/css_overview/css_overview-meta.ts +2 -2
  173. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  174. package/front_end/panels/elements/AccessibilityTreeUtils.ts +8 -102
  175. package/front_end/panels/elements/AccessibilityTreeView.ts +163 -70
  176. package/front_end/panels/elements/ElementsPanel.ts +17 -11
  177. package/front_end/panels/elements/ElementsTreeElement.ts +4 -1
  178. package/front_end/panels/elements/ElementsTreeOutline.ts +4 -4
  179. package/front_end/panels/elements/LayoutPane.ts +1 -1
  180. package/front_end/panels/elements/MetricsSidebarPane.ts +100 -34
  181. package/front_end/panels/elements/StylePropertiesSection.ts +2 -2
  182. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -2
  183. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  184. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +7 -18
  185. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -2
  186. package/front_end/panels/elements/components/QueryContainer.ts +1 -1
  187. package/front_end/panels/emulation/DeviceModeView.ts +52 -70
  188. package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
  189. package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
  190. package/front_end/panels/issues/IssueView.ts +0 -2
  191. package/front_end/panels/issues/IssuesPane.ts +1 -8
  192. package/front_end/panels/js_timeline/js_timeline-meta.ts +3 -2
  193. package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
  194. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +3 -3
  195. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -5
  196. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +4 -4
  197. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +2 -2
  198. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
  199. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +3 -3
  200. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +8 -9
  201. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +2 -2
  202. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
  203. package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
  204. package/front_end/panels/network/NetworkDataGridNode.ts +124 -36
  205. package/front_end/panels/network/NetworkLogView.ts +9 -1
  206. package/front_end/panels/network/NetworkLogViewColumns.ts +18 -0
  207. package/front_end/panels/network/NetworkPanel.ts +2 -1
  208. package/front_end/panels/network/RequestPayloadView.ts +68 -20
  209. package/front_end/panels/network/RequestPreviewView.ts +7 -1
  210. package/front_end/panels/network/RequestTimingView.ts +95 -127
  211. package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
  212. package/front_end/panels/network/forward/UIFilter.ts +1 -0
  213. package/front_end/panels/network/requestPayloadView.css +10 -0
  214. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +12 -12
  215. package/front_end/panels/performance_monitor/performance_monitor-meta.ts +7 -7
  216. package/front_end/panels/profiler/HeapDetachedElementsView.ts +2 -2
  217. package/front_end/panels/profiler/HeapProfileView.ts +563 -51
  218. package/front_end/panels/profiler/HeapSnapshotView.ts +14 -9
  219. package/front_end/panels/profiler/ProfilesPanel.ts +13 -7
  220. package/front_end/panels/profiler/WritableProfileHeader.ts +152 -0
  221. package/front_end/panels/profiler/profiler.ts +2 -2
  222. package/front_end/panels/recorder/{components/ControlButton.ts → ControlButton.ts} +9 -10
  223. package/front_end/panels/recorder/{components/CreateRecordingView.ts → CreateRecordingView.ts} +59 -58
  224. package/front_end/panels/recorder/ExtensionView.ts +123 -0
  225. package/front_end/panels/recorder/RecorderController.ts +102 -92
  226. package/front_end/panels/recorder/{components/RecordingListView.ts → RecordingListView.ts} +22 -23
  227. package/front_end/panels/recorder/{components/RecordingView.ts → RecordingView.ts} +99 -96
  228. package/front_end/panels/recorder/{components/ReplaySection.ts → ReplaySection.ts} +20 -20
  229. package/front_end/panels/recorder/{components/SelectorPicker.ts → SelectorPicker.ts} +13 -13
  230. package/front_end/panels/recorder/{components/StepEditor.ts → StepEditor.ts} +367 -336
  231. package/front_end/panels/recorder/{components/StepView.ts → StepView.ts} +48 -49
  232. package/front_end/panels/recorder/{components/TimelineSection.ts → TimelineSection.ts} +2 -2
  233. package/front_end/panels/recorder/models/RecorderSettings.ts +2 -2
  234. package/front_end/panels/recorder/recorder-meta.ts +7 -7
  235. package/front_end/panels/recorder/recorder.ts +23 -1
  236. package/front_end/panels/recorder/{components/recordingView.css → recordingView.css} +1 -1
  237. package/front_end/panels/recorder/util/util.ts +113 -0
  238. package/front_end/panels/screencast/ScreencastApp.ts +1 -1
  239. package/front_end/panels/screencast/ScreencastView.ts +12 -12
  240. package/front_end/panels/search/SearchResultsPane.ts +4 -4
  241. package/front_end/panels/search/SearchView.ts +20 -20
  242. package/front_end/panels/security/SecurityModel.ts +7 -7
  243. package/front_end/panels/security/SecurityPanel.ts +99 -107
  244. package/front_end/panels/security/SecurityPanelSidebar.ts +7 -7
  245. package/front_end/panels/security/security-meta.ts +2 -2
  246. package/front_end/panels/sensors/LocationsSettingsTab.ts +19 -19
  247. package/front_end/panels/sensors/SensorsView.ts +27 -27
  248. package/front_end/panels/sensors/sensors-meta.ts +13 -167
  249. package/front_end/panels/settings/AISettingsTab.ts +98 -56
  250. package/front_end/panels/settings/EditFileSystemView.ts +2 -2
  251. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +20 -20
  252. package/front_end/panels/settings/KeybindsSettingsTab.ts +20 -21
  253. package/front_end/panels/settings/SettingsScreen.ts +11 -11
  254. package/front_end/panels/settings/WorkspaceSettingsTab.ts +5 -5
  255. package/front_end/panels/settings/components/SyncSection.ts +12 -12
  256. package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +13 -13
  257. package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +31 -31
  258. package/front_end/panels/settings/emulation/emulation-meta.ts +1 -1
  259. package/front_end/panels/settings/settings-meta.ts +14 -14
  260. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +2 -2
  261. package/front_end/panels/sources/NavigatorView.ts +7 -6
  262. package/front_end/panels/sources/ScopeChainSidebarPane.ts +83 -37
  263. package/front_end/panels/sources/SourcesNavigator.ts +22 -21
  264. package/front_end/panels/sources/SourcesView.ts +10 -1
  265. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  266. package/front_end/panels/sources/scopeChainSidebarPane.css +12 -4
  267. package/front_end/panels/sources/sources-meta.ts +4 -4
  268. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +5 -2
  269. package/front_end/panels/timeline/IsolateSelector.ts +10 -8
  270. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -1
  271. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -1
  272. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  273. package/front_end/panels/timeline/TimelinePanel.ts +20 -8
  274. package/front_end/panels/timeline/TimelineUIUtils.ts +149 -131
  275. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +4 -2
  276. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +4 -2
  277. package/front_end/panels/timeline/components/insights/ImageRef.ts +2 -1
  278. package/front_end/panels/timeline/timeline-meta.ts +3 -2
  279. package/front_end/panels/utils/utils.ts +7 -3
  280. package/front_end/panels/web_audio/WebAudioView.ts +17 -18
  281. package/front_end/panels/web_audio/web_audio-meta.ts +3 -3
  282. package/front_end/panels/whats_new/ReleaseNoteView.ts +1 -1
  283. package/front_end/panels/whats_new/whats_new-meta.ts +11 -11
  284. package/front_end/third_party/chromium/README.chromium +1 -1
  285. package/front_end/third_party/lit/lib/async-directive.d.ts +2 -1
  286. package/front_end/third_party/lit/lib/async-directive.js +1 -1
  287. package/front_end/third_party/lit/lib/async-directive.js.map +1 -1
  288. package/front_end/third_party/lit/lib/decorators.d.ts +2 -1
  289. package/front_end/third_party/lit/lib/decorators.js.map +1 -1
  290. package/front_end/third_party/lit/lib/directive.d.ts +2 -1
  291. package/front_end/third_party/lit/lib/directive.js.map +1 -1
  292. package/front_end/third_party/lit/lib/directives.d.ts +2 -1
  293. package/front_end/third_party/lit/lib/directives.js +8 -8
  294. package/front_end/third_party/lit/lib/directives.js.map +1 -1
  295. package/front_end/third_party/lit/lib/lit.d.ts +2 -1
  296. package/front_end/third_party/lit/lib/lit.js +1 -1
  297. package/front_end/third_party/lit/lib/lit.js.map +1 -1
  298. package/front_end/third_party/lit/lib/static-html.d.ts +2 -1
  299. package/front_end/third_party/lit/lib/static-html.js +1 -1
  300. package/front_end/third_party/lit/lib/static-html.js.map +1 -1
  301. package/front_end/third_party/lit/package.json +2 -2
  302. package/front_end/third_party/lit/rebuild.sh +1 -1
  303. package/front_end/third_party/lit/src/async-directive.ts +5 -0
  304. package/front_end/ui/components/dialogs/Dialog.ts +1 -1
  305. package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -1
  306. package/front_end/ui/components/diff_view/DiffView.ts +2 -2
  307. package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
  308. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +5 -5
  309. package/front_end/ui/components/lists/List.ts +2 -2
  310. package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
  311. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +5 -5
  312. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  313. package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
  314. package/front_end/ui/components/survey_link/SurveyLink.ts +3 -3
  315. package/front_end/ui/components/text_editor/config.ts +2 -2
  316. package/front_end/ui/components/tree_outline/TreeOutline.ts +34 -1
  317. package/front_end/ui/legacy/ReportView.ts +5 -0
  318. package/front_end/ui/legacy/Treeoutline.ts +6 -0
  319. package/front_end/ui/legacy/View.ts +1 -1
  320. package/front_end/ui/legacy/Widget.ts +14 -15
  321. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -0
  322. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +8 -3
  323. package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
  324. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
  325. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +106 -38
  326. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +7 -1
  327. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -1
  328. package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -2
  329. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -1
  330. package/front_end/ui/legacy/inspectorCommon.css +5 -0
  331. package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
  332. package/mcp/mcp.ts +2 -0
  333. package/package.json +4 -4
  334. package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -247
  335. package/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
  336. package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
  337. package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
  338. package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
  339. package/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
  340. package/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
  341. package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
  342. package/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
  343. package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
  344. package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
  345. package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
  346. package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
  347. package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
  348. package/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
  349. package/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
  350. package/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
  351. package/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
  352. package/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
  353. package/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
  354. package/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
  355. package/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
  356. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -182
  357. package/front_end/panels/profiler/ProfileView.ts +0 -611
  358. package/front_end/panels/recorder/components/ExtensionView.ts +0 -132
  359. package/front_end/panels/recorder/components/components.ts +0 -25
  360. package/front_end/panels/recorder/components/util.ts +0 -116
  361. /package/front_end/panels/recorder/{components/controlButton.css → controlButton.css} +0 -0
  362. /package/front_end/panels/recorder/{components/createRecordingView.css → createRecordingView.css} +0 -0
  363. /package/front_end/panels/recorder/{components/extensionView.css → extensionView.css} +0 -0
  364. /package/front_end/panels/recorder/{components/recordingListView.css → recordingListView.css} +0 -0
  365. /package/front_end/panels/recorder/{components/replaySection.css → replaySection.css} +0 -0
  366. /package/front_end/panels/recorder/{components/selectorPicker.css → selectorPicker.css} +0 -0
  367. /package/front_end/panels/recorder/{components/startView.css → startView.css} +0 -0
  368. /package/front_end/panels/recorder/{components/stepEditor.css → stepEditor.css} +0 -0
  369. /package/front_end/panels/recorder/{components/stepView.css → stepView.css} +0 -0
  370. /package/front_end/panels/recorder/{components/timelineSection.css → timelineSection.css} +0 -0
@@ -1127,27 +1127,33 @@ export class DOMNode extends Common.ObjectWrapper.ObjectWrapper<DOMNodeEventType
1127
1127
  return model;
1128
1128
  }
1129
1129
 
1130
- async setAsInspectedNode(): Promise<void> {
1131
- let node: DOMNode|null = this;
1132
- if (node?.pseudoType()) {
1133
- node = node.parentNode;
1130
+ canInspectNode(): boolean {
1131
+ if (this.ancestorUserAgentShadowRoot()) {
1132
+ return false;
1134
1133
  }
1135
- while (node) {
1136
- let ancestor = node.ancestorUserAgentShadowRoot();
1137
- if (!ancestor) {
1138
- break;
1139
- }
1140
- ancestor = node.ancestorShadowHost();
1141
- if (!ancestor) {
1142
- break;
1143
- }
1144
- // User #agent shadow root, keep climbing up.
1145
- node = ancestor;
1134
+
1135
+ if (this.#pseudoType) {
1136
+ return [
1137
+ Protocol.DOM.PseudoType.Before,
1138
+ Protocol.DOM.PseudoType.After,
1139
+ Protocol.DOM.PseudoType.Marker,
1140
+ Protocol.DOM.PseudoType.ScrollMarker,
1141
+ Protocol.DOM.PseudoType.Backdrop,
1142
+ Protocol.DOM.PseudoType.ViewTransition,
1143
+ Protocol.DOM.PseudoType.ViewTransitionGroup,
1144
+ Protocol.DOM.PseudoType.ViewTransitionImagePair,
1145
+ Protocol.DOM.PseudoType.ViewTransitionOld,
1146
+ Protocol.DOM.PseudoType.ViewTransitionNew,
1147
+ ].includes(this.#pseudoType);
1146
1148
  }
1147
- if (!node) {
1148
- throw new Error('In DOMNode.setAsInspectedNode: node is expected to not be null.');
1149
+ return true;
1150
+ }
1151
+
1152
+ async setAsInspectedNode(): Promise<void> {
1153
+ if (!this.canInspectNode()) {
1154
+ return;
1149
1155
  }
1150
- await this.#agent.invoke_setInspectedNode({nodeId: node.id});
1156
+ await this.#agent.invoke_setInspectedNode({nodeId: this.id});
1151
1157
  }
1152
1158
 
1153
1159
  enclosingElementOrSelf(): DOMNode|null {
@@ -2102,6 +2108,7 @@ export class DOMModel extends SDKModel<EventTypes> {
2102
2108
  if ('has' in context && typeof context.has === 'function' && context.has(DOMModelUndoStack)) {
2103
2109
  return context.get(DOMModelUndoStack);
2104
2110
  }
2111
+ // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
2105
2112
  return DOMModelUndoStack.instance();
2106
2113
  }
2107
2114
 
@@ -2365,6 +2372,10 @@ export class DOMNodeSnapshot extends DOMNode {
2365
2372
  _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2366
2373
  }
2367
2374
 
2375
+ override canInspectNode(): boolean {
2376
+ return false;
2377
+ }
2378
+
2368
2379
  override setAsInspectedNode(): Promise<void> {
2369
2380
  return Promise.resolve();
2370
2381
  }
@@ -2410,6 +2421,10 @@ export class DOMDocumentSnapshot extends DOMDocument {
2410
2421
  _callback?: ((arg0: string|null, arg1: DOMNode|null) => void)|undefined): void {
2411
2422
  }
2412
2423
 
2424
+ override canInspectNode(): boolean {
2425
+ return false;
2426
+ }
2427
+
2413
2428
  override setAsInspectedNode(): Promise<void> {
2414
2429
  return Promise.resolve();
2415
2430
  }
@@ -168,10 +168,10 @@ export class DebuggerModel extends SDKModel<EventTypes> {
168
168
  this.agent = target.debuggerAgent();
169
169
  this.#runtimeModel = (target.model(RuntimeModel) as RuntimeModel);
170
170
 
171
- this.#sourceMapManager = new SourceMapManager(
172
- target,
173
- (compiledURL, sourceMappingURL, payload, script) =>
174
- new SourceMap(compiledURL, sourceMappingURL, payload, script));
171
+ this.#sourceMapManager =
172
+ new SourceMapManager(target,
173
+ (compiledURL, sourceMappingURL, payload, script) => new SourceMap(
174
+ compiledURL, sourceMappingURL, payload, target.targetManager().getConsole(), script));
175
175
 
176
176
  const settings = this.target().targetManager().settings;
177
177
  settings.moduleSetting('pause-on-exception-enabled').addChangeListener(this.pauseOnExceptionStateChanged, this);
@@ -88,6 +88,7 @@ export class EventBreakpointsManager implements SDKModelObserver<EventBreakpoint
88
88
  readonly #eventListenerBreakpoints: EventListenerBreakpoint[] = [];
89
89
  readonly #targetManager: TargetManager;
90
90
 
91
+ // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
91
92
  constructor(targetManager: TargetManager = TargetManager.instance()) {
92
93
  this.#targetManager = targetManager;
93
94
  this.createInstrumentationBreakpoints(Category.AUCTION_WORKLET, [
@@ -152,6 +153,7 @@ export class EventBreakpointsManager implements SDKModelObserver<EventBreakpoint
152
153
  const {forceNew, targetManager} = opts;
153
154
  if (!Root.DevToolsContext.globalInstance().has(EventBreakpointsManager) || forceNew) {
154
155
  Root.DevToolsContext.globalInstance().set(EventBreakpointsManager,
156
+ // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
155
157
  new EventBreakpointsManager(targetManager ?? TargetManager.instance()));
156
158
  }
157
159
 
@@ -45,6 +45,7 @@ export class FrameManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
45
45
  forceNew: boolean,
46
46
  } = {forceNew: false}): FrameManager {
47
47
  if (!Root.DevToolsContext.globalInstance().has(FrameManager) || forceNew) {
48
+ // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
48
49
  Root.DevToolsContext.globalInstance().set(FrameManager, new FrameManager(TargetManager.instance()));
49
50
  }
50
51
  return Root.DevToolsContext.globalInstance().get(FrameManager);
@@ -20,6 +20,7 @@ export class IsolateManager extends Common.ObjectWrapper.ObjectWrapper<EventType
20
20
  #pollId = 0;
21
21
  readonly #targetManager: TargetManager;
22
22
 
23
+ // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
23
24
  constructor(targetManager: TargetManager = TargetManager.instance()) {
24
25
  super();
25
26
  this.#targetManager = targetManager;
@@ -323,6 +323,45 @@ export class NetworkManager extends SDKModel<EventTypes> {
323
323
  }
324
324
  }
325
325
 
326
+ /**
327
+ * Returns the request post data as a ContentData suitable for binary
328
+ * viewers (hex, base64, utf-8) in the Payload tab. When the backend
329
+ * provides base64-encoded (possibly compressed) data, the body is
330
+ * decompressed first so viewers show the actual payload bytes rather
331
+ * than gzip/deflate framing.
332
+ */
333
+ static async requestPostDataContentData(request: NetworkRequest): Promise<TextUtils.ContentData.ContentDataOrError> {
334
+ const manager = NetworkManager.forRequest(request);
335
+ if (!manager) {
336
+ return {error: 'No network manager for request'};
337
+ }
338
+ const requestId = request.backendRequestId();
339
+ if (!requestId) {
340
+ return {error: 'No backend request id for request'};
341
+ }
342
+ try {
343
+ const response = await manager.#networkAgent.invoke_getRequestPostData({requestId});
344
+ const error = response.getError();
345
+ if (error) {
346
+ return {error};
347
+ }
348
+ const {postData, base64Encoded} = response;
349
+ if (!postData) {
350
+ return {error: 'No post data'};
351
+ }
352
+ const requestContentType = request.requestContentType() ?? 'application/octet-stream';
353
+ const {charset} = Platform.MimeType.parseContentType(requestContentType);
354
+
355
+ if (base64Encoded && postData) {
356
+ return await TextUtils.ContentData.ContentData.fromCompressedBase64(
357
+ postData, requestContentType, charset ?? undefined, request.requestContentEncoding());
358
+ }
359
+ return new TextUtils.ContentData.ContentData(postData, false, requestContentType, charset ?? undefined);
360
+ } catch (e) {
361
+ return {error: e.message};
362
+ }
363
+ }
364
+
326
365
  /**
327
366
  * Attempts to decompress a compressed request body.
328
367
  * Returns the decompressed string, or null if decompression is not applicable.
@@ -658,6 +697,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
658
697
  networkRequest.setReferrerPolicy(request.referrerPolicy);
659
698
  networkRequest.setIsSameSite(request.isSameSite || false);
660
699
  networkRequest.setIsAdRelated(request.isAdRelated || false);
700
+ networkRequest.setIsLinkPreload(request.isLinkPreload || false);
661
701
  }
662
702
 
663
703
  private updateNetworkRequestWithResponse(networkRequest: NetworkRequest, response: Protocol.Network.Response): void {
@@ -847,7 +887,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
847
887
  } else {
848
888
  networkRequest = NetworkRequest.create(
849
889
  requestId, request.url as Platform.DevToolsPath.UrlString, documentURL as Platform.DevToolsPath.UrlString,
850
- frameId ?? null, loaderId, initiator, hasUserGesture);
890
+ frameId ?? null, loaderId, initiator, hasUserGesture, this.#manager.target().targetManager().getConsole());
851
891
  if (renderBlockingBehavior) {
852
892
  networkRequest.setRenderBlockingBehavior(renderBlockingBehavior);
853
893
  }
@@ -969,7 +1009,8 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
969
1009
 
970
1010
  webSocketCreated({requestId, url: requestURL, initiator}: Protocol.Network.WebSocketCreatedEvent): void {
971
1011
  const networkRequest =
972
- NetworkRequest.createForSocket(requestId, requestURL as Platform.DevToolsPath.UrlString, initiator);
1012
+ NetworkRequest.createForSocket(requestId, requestURL as Platform.DevToolsPath.UrlString, initiator,
1013
+ this.#manager.target().targetManager().getConsole());
973
1014
  requestToManagerMap.set(networkRequest, this.#manager);
974
1015
  networkRequest.setResourceType(Common.ResourceType.resourceTypes.WebSocket);
975
1016
  this.startNetworkRequest(networkRequest, null);
@@ -1174,7 +1215,7 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
1174
1215
  const newNetworkRequest = NetworkRequest.create(
1175
1216
  requestId, redirectURL, originalNetworkRequest.documentURL, originalNetworkRequest.frameId,
1176
1217
  originalNetworkRequest.loaderId, originalNetworkRequest.initiator(),
1177
- originalNetworkRequest.hasUserGesture() ?? undefined);
1218
+ originalNetworkRequest.hasUserGesture() ?? undefined, this.#manager.target().targetManager().getConsole());
1178
1219
  requestToManagerMap.set(newNetworkRequest, this.#manager);
1179
1220
  newNetworkRequest.setRedirectSource(originalNetworkRequest);
1180
1221
  originalNetworkRequest.setRedirectDestination(newNetworkRequest);
@@ -1296,7 +1337,8 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
1296
1337
  webTransportCreated({transportId, url: requestURL, timestamp: time, initiator}:
1297
1338
  Protocol.Network.WebTransportCreatedEvent): void {
1298
1339
  const networkRequest =
1299
- NetworkRequest.createForSocket(transportId, requestURL as Platform.DevToolsPath.UrlString, initiator);
1340
+ NetworkRequest.createForSocket(transportId, requestURL as Platform.DevToolsPath.UrlString, initiator,
1341
+ this.#manager.target().targetManager().getConsole());
1300
1342
  networkRequest.hasNetworkData = true;
1301
1343
  requestToManagerMap.set(networkRequest, this.#manager);
1302
1344
  networkRequest.setResourceType(Common.ResourceType.resourceTypes.WebTransport);
@@ -1333,8 +1375,9 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
1333
1375
 
1334
1376
  directTCPSocketCreated(event: Protocol.Network.DirectTCPSocketCreatedEvent): void {
1335
1377
  const requestURL = this.concatHostPort(event.remoteAddr, event.remotePort);
1336
- const networkRequest = NetworkRequest.createForSocket(
1337
- event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator);
1378
+ const networkRequest =
1379
+ NetworkRequest.createForSocket(event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator,
1380
+ this.#manager.target().targetManager().getConsole());
1338
1381
  networkRequest.hasNetworkData = true;
1339
1382
  networkRequest.setRemoteAddress(event.remoteAddr, event.remotePort);
1340
1383
  networkRequest.protocol = i18n.i18n.lockedString('tcp');
@@ -1448,8 +1491,9 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
1448
1491
  // is not specified.
1449
1492
  return;
1450
1493
  }
1451
- const networkRequest = NetworkRequest.createForSocket(
1452
- event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator);
1494
+ const networkRequest =
1495
+ NetworkRequest.createForSocket(event.identifier, requestURL as Platform.DevToolsPath.UrlString, event.initiator,
1496
+ this.#manager.target().targetManager().getConsole());
1453
1497
  networkRequest.hasNetworkData = true;
1454
1498
  if (event.options.remoteAddr && event.options.remotePort) {
1455
1499
  networkRequest.setRemoteAddress(event.options.remoteAddr, event.options.remotePort);
@@ -1633,9 +1677,9 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
1633
1677
  protected createNetworkRequest(
1634
1678
  requestId: Protocol.Network.RequestId, frameId: Protocol.Page.FrameId, loaderId: Protocol.Network.LoaderId,
1635
1679
  url: string, documentURL: string, initiator: Protocol.Network.Initiator|null): NetworkRequest {
1636
- const request = NetworkRequest.create(
1637
- requestId, url as Platform.DevToolsPath.UrlString, documentURL as Platform.DevToolsPath.UrlString, frameId,
1638
- loaderId, initiator);
1680
+ const request = NetworkRequest.create(requestId, url as Platform.DevToolsPath.UrlString,
1681
+ documentURL as Platform.DevToolsPath.UrlString, frameId, loaderId, initiator,
1682
+ undefined, this.#manager.target().targetManager().getConsole());
1639
1683
  requestToManagerMap.set(request, this.#manager);
1640
1684
  return request;
1641
1685
  }
@@ -1964,6 +2008,7 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
1964
2008
  promises.push(agent
1965
2009
  .invoke_emulateNetworkConditionsByRule({
1966
2010
  offline,
2011
+ emulateOfflineServiceWorker: offline,
1967
2012
  matchedNetworkConditions: matchedNetworkConditions.map(
1968
2013
  ({urlPattern, conditions}) => ({
1969
2014
  urlPattern: urlPattern ?? '',
@@ -1974,6 +2019,7 @@ export class RequestConditions extends Common.ObjectWrapper.ObjectWrapper<Reques
1974
2019
  packetQueueLength: conditions.packetQueueLength,
1975
2020
  packetReordering: conditions.packetReordering,
1976
2021
  connectionType: NetworkManager.connectionType(conditions),
2022
+ offline,
1977
2023
  }))
1978
2024
  })
1979
2025
  .then(response => {
@@ -2074,8 +2120,10 @@ export class MultitargetNetworkManager extends Common.ObjectWrapper.ObjectWrappe
2074
2120
  } = {forceNew: null}): MultitargetNetworkManager {
2075
2121
  const {forceNew, targetManager} = opts;
2076
2122
  if (!Root.DevToolsContext.globalInstance().has(MultitargetNetworkManager) || forceNew) {
2123
+ /* eslint-disable @devtools/no-instance-of-migrated-singletons */
2077
2124
  Root.DevToolsContext.globalInstance().set(
2078
2125
  MultitargetNetworkManager, new MultitargetNetworkManager(targetManager ?? TargetManager.instance()));
2126
+ /* eslint-enable @devtools/no-instance-of-migrated-singletons */
2079
2127
  }
2080
2128
 
2081
2129
  return Root.DevToolsContext.globalInstance().get(MultitargetNetworkManager);
@@ -296,7 +296,9 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
296
296
  directSocketInfo?: DirectSocketInfo;
297
297
  readonly #directSocketChunks: DirectSocketChunk[] = [];
298
298
  #isAdRelated: boolean;
299
+ #isLinkPreload: boolean;
299
300
  #appliedNetworkConditionsId?: string;
301
+ readonly #console: Common.Console.Console;
300
302
 
301
303
  constructor(
302
304
  requestId: string,
@@ -307,6 +309,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
307
309
  loaderId: Protocol.Network.LoaderId|null,
308
310
  initiator: Protocol.Network.Initiator|null,
309
311
  hasUserGesture?: boolean,
312
+ // eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
313
+ console: Common.Console.Console = Common.Console.Console.instance(),
310
314
  ) {
311
315
  super();
312
316
 
@@ -319,6 +323,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
319
323
  this.#initiator = initiator;
320
324
  this.#hasUserGesture = hasUserGesture;
321
325
  this.#isAdRelated = false;
326
+ this.#isLinkPreload = false;
327
+ this.#console = console;
322
328
  }
323
329
 
324
330
  static create(
@@ -329,6 +335,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
329
335
  loaderId: Protocol.Network.LoaderId|null,
330
336
  initiator: Protocol.Network.Initiator|null,
331
337
  hasUserGesture?: boolean,
338
+ console?: Common.Console.Console,
332
339
  ): NetworkRequest {
333
340
  return new NetworkRequest(
334
341
  backendRequestId,
@@ -339,6 +346,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
339
346
  loaderId,
340
347
  initiator,
341
348
  hasUserGesture,
349
+ console,
342
350
  );
343
351
  }
344
352
 
@@ -346,6 +354,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
346
354
  backendRequestId: Protocol.Network.RequestId,
347
355
  requestURL: Platform.DevToolsPath.UrlString,
348
356
  initiator?: Protocol.Network.Initiator,
357
+ console?: Common.Console.Console,
349
358
  ): NetworkRequest {
350
359
  return new NetworkRequest(
351
360
  backendRequestId,
@@ -355,6 +364,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
355
364
  null,
356
365
  null,
357
366
  initiator || null,
367
+ undefined,
368
+ console,
358
369
  );
359
370
  }
360
371
 
@@ -363,6 +374,7 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
363
374
  url: Platform.DevToolsPath.UrlString,
364
375
  documentURL: Platform.DevToolsPath.UrlString,
365
376
  initiator: Protocol.Network.Initiator|null,
377
+ console?: Common.Console.Console,
366
378
  ): NetworkRequest {
367
379
  return new NetworkRequest(
368
380
  requestId,
@@ -372,6 +384,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
372
384
  null,
373
385
  null,
374
386
  initiator,
387
+ undefined,
388
+ console,
375
389
  );
376
390
  }
377
391
 
@@ -909,6 +923,11 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
909
923
  this.#initiator.type === Protocol.Network.InitiatorType.Preflight);
910
924
  }
911
925
 
926
+ isPreloadRequest(): boolean {
927
+ return (this.#initiator !== null && this.#initiator !== undefined &&
928
+ this.#initiator.type === Protocol.Network.InitiatorType.Preload);
929
+ }
930
+
912
931
  redirectDestination(): NetworkRequest|null {
913
932
  return this.#redirectDestination;
914
933
  }
@@ -960,6 +979,15 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
960
979
  this.#formParametersPromise = null;
961
980
  }
962
981
 
982
+ /**
983
+ * Returns the raw request body as ContentData, preserving base64 encoding
984
+ * for binary payloads. This enables binary viewers (hex, base64, utf-8)
985
+ * in the Payload tab.
986
+ */
987
+ requestFormDataContentData(): Promise<TextUtils.ContentData.ContentDataOrError> {
988
+ return NetworkManager.requestPostDataContentData(this);
989
+ }
990
+
963
991
  private filteredProtocolName(): string {
964
992
  const protocol = this.protocol.toLowerCase();
965
993
  if (protocol === 'h2') {
@@ -1201,7 +1229,8 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
1201
1229
  get serverTimings(): ServerTiming[]|null {
1202
1230
  if (typeof this.#serverTimings === 'undefined') {
1203
1231
  this.#serverTimings = ServerTiming.parseHeaders(
1204
- this.responseHeaders,
1232
+ this.responseHeaders.map(x => ({name: x.name, value: x.value})),
1233
+ this.#console,
1205
1234
  );
1206
1235
  }
1207
1236
  return this.#serverTimings;
@@ -1837,6 +1866,14 @@ export class NetworkRequest extends Common.ObjectWrapper.ObjectWrapper<EventType
1837
1866
  return this.#isAdRelated;
1838
1867
  }
1839
1868
 
1869
+ setIsLinkPreload(isLinkPreload: boolean): void {
1870
+ this.#isLinkPreload = isLinkPreload;
1871
+ }
1872
+
1873
+ isLinkPreload(): boolean {
1874
+ return this.#isLinkPreload;
1875
+ }
1876
+
1840
1877
  getAssociatedData(key: string): object|null {
1841
1878
  return this.#associatedData.get(key) || null;
1842
1879
  }
@@ -15,7 +15,7 @@ import {OverlayPersistentHighlighter} from './OverlayPersistentHighlighter.js';
15
15
  import type {RemoteObject} from './RemoteObject.js';
16
16
  import {SDKModel} from './SDKModel.js';
17
17
  import {Capability, type Target} from './Target.js';
18
- import {TargetManager} from './TargetManager.js';
18
+ import type {TargetManager} from './TargetManager.js';
19
19
 
20
20
  const UIStrings = {
21
21
  /**
@@ -49,6 +49,19 @@ export interface Hinge {
49
49
  contentColor: HighlightColor;
50
50
  outlineColor: HighlightColor;
51
51
  }
52
+ export interface BaseDisplayCutout {
53
+ width: number;
54
+ height: number;
55
+ x: number;
56
+ y: number;
57
+ shape: Protocol.Overlay.DisplayCutoutShape;
58
+ contentColor?: HighlightColor;
59
+ }
60
+ export type DisplayCutout =
61
+ BaseDisplayCutout&({shape: Protocol.Overlay.DisplayCutoutShape.Rectangle}|
62
+ {shape: Protocol.Overlay.DisplayCutoutShape.Pill, borderRadius: number}|
63
+ {shape: Protocol.Overlay.DisplayCutoutShape.Notch, upperRadius: number, lowerRadius: number}|
64
+ {shape: Protocol.Overlay.DisplayCutoutShape.Circle, cx: number, cy: number, radius: number});
52
65
 
53
66
  export const enum EmulatedOSType {
54
67
  WINDOWS = 'Windows',
@@ -178,27 +191,27 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
178
191
  }
179
192
  }
180
193
 
181
- static hideDOMNodeHighlight(targetManager: TargetManager = TargetManager.instance()): void {
194
+ static hideDOMNodeHighlight(targetManager: TargetManager): void {
182
195
  for (const overlayModel of targetManager.models(OverlayModel)) {
183
196
  overlayModel.delayedHideHighlight(0);
184
197
  }
185
198
  }
186
199
 
187
- static async muteHighlight(targetManager: TargetManager = TargetManager.instance()): Promise<void[]> {
200
+ static async muteHighlight(targetManager: TargetManager): Promise<void[]> {
188
201
  return await Promise.all(targetManager.models(OverlayModel).map(model => model.suspendModel()));
189
202
  }
190
203
 
191
- static async unmuteHighlight(targetManager: TargetManager = TargetManager.instance()): Promise<void[]> {
204
+ static async unmuteHighlight(targetManager: TargetManager): Promise<void[]> {
192
205
  return await Promise.all(targetManager.models(OverlayModel).map(model => model.resumeModel()));
193
206
  }
194
207
 
195
- static highlightRect(rect: HighlightRect, targetManager: TargetManager = TargetManager.instance()): void {
208
+ static highlightRect(rect: HighlightRect, targetManager: TargetManager): void {
196
209
  for (const overlayModel of targetManager.models(OverlayModel)) {
197
210
  void overlayModel.highlightRect(rect);
198
211
  }
199
212
  }
200
213
 
201
- static clearHighlight(targetManager: TargetManager = TargetManager.instance()): void {
214
+ static clearHighlight(targetManager: TargetManager): void {
202
215
  for (const overlayModel of targetManager.models(OverlayModel)) {
203
216
  void overlayModel.clearHighlight();
204
217
  }
@@ -497,6 +510,32 @@ export class OverlayModel extends SDKModel<EventTypes> implements ProtocolProxyA
497
510
  }
498
511
  }
499
512
 
513
+ showDisplayCutout(cutout: DisplayCutout|null): void {
514
+ if (cutout) {
515
+ const {x, y, width, height, shape, contentColor} = cutout;
516
+ const displayCutoutConfig: Protocol.Overlay.DisplayCutoutConfig = {
517
+ rect: {x, y, width, height},
518
+ shape,
519
+ contentColor,
520
+ };
521
+ if (shape === Protocol.Overlay.DisplayCutoutShape.Pill) {
522
+ displayCutoutConfig.borderRadius = cutout.borderRadius;
523
+ } else if (shape === Protocol.Overlay.DisplayCutoutShape.Notch) {
524
+ displayCutoutConfig.upperRadius = cutout.upperRadius;
525
+ displayCutoutConfig.lowerRadius = cutout.lowerRadius;
526
+ } else if (shape === Protocol.Overlay.DisplayCutoutShape.Circle) {
527
+ displayCutoutConfig.cx = cutout.cx;
528
+ displayCutoutConfig.cy = cutout.cy;
529
+ displayCutoutConfig.radius = cutout.radius;
530
+ }
531
+ void this.overlayAgent.invoke_setShowDisplayCutout({
532
+ displayCutoutConfig,
533
+ });
534
+ } else {
535
+ void this.overlayAgent.invoke_setShowDisplayCutout({});
536
+ }
537
+ }
538
+
500
539
  setWindowControlsPlatform(selectedPlatform: EmulatedOSType): void {
501
540
  this.#windowControls.selectedPlatform = selectedPlatform;
502
541
  }
@@ -135,11 +135,13 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
135
135
  loadOverride: null,
136
136
  }): PageResourceLoader {
137
137
  if (forceNew) {
138
+ /* eslint-disable @devtools/no-instance-of-migrated-singletons */
138
139
  Root.DevToolsContext.globalInstance().set(
139
140
  PageResourceLoader,
140
141
  new PageResourceLoader(
141
142
  targetManager ?? TargetManager.instance(), settings ?? Common.Settings.Settings.instance(),
142
143
  userAgentProvider ?? MultitargetNetworkManager.instance(), loadOverride, maxConcurrentLoads));
144
+ /* eslint-enable @devtools/no-instance-of-migrated-singletons */
143
145
  }
144
146
 
145
147
  return Root.DevToolsContext.globalInstance().get(PageResourceLoader);
@@ -18,7 +18,7 @@ import {SDKModel} from './SDKModel.js';
18
18
  import {SecurityOriginManager} from './SecurityOriginManager.js';
19
19
  import {StorageKeyManager} from './StorageKeyManager.js';
20
20
  import {Capability, type Target, Type} from './Target.js';
21
- import {TargetManager} from './TargetManager.js';
21
+ import type {TargetManager} from './TargetManager.js';
22
22
 
23
23
  export class ResourceTreeModel extends SDKModel<EventTypes> {
24
24
  readonly agent: ProtocolProxyApi.PageApi;
@@ -74,16 +74,16 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
74
74
  return request.frameId ? resourceTreeModel.frameForId(request.frameId) : null;
75
75
  }
76
76
 
77
- static frames(): ResourceTreeFrame[] {
77
+ static frames(targetManager: TargetManager): ResourceTreeFrame[] {
78
78
  const result = [];
79
- for (const resourceTreeModel of TargetManager.instance().models(ResourceTreeModel)) {
79
+ for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
80
80
  result.push(...resourceTreeModel.frames());
81
81
  }
82
82
  return result;
83
83
  }
84
84
 
85
- static resourceForURL(url: Platform.DevToolsPath.UrlString): Resource|null {
86
- for (const resourceTreeModel of TargetManager.instance().models(ResourceTreeModel)) {
85
+ static resourceForURL(targetManager: TargetManager, url: Platform.DevToolsPath.UrlString): Resource|null {
86
+ for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
87
87
  const mainFrame = resourceTreeModel.mainFrame;
88
88
  // Workers call into this with no #frames available.
89
89
  const result = mainFrame ? mainFrame.resourceForURL(url) : null;
@@ -94,8 +94,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
94
94
  return null;
95
95
  }
96
96
 
97
- static reloadAllPages(bypassCache?: boolean, scriptToEvaluateOnLoad?: string,
98
- targetManager: TargetManager = TargetManager.instance()): void {
97
+ static reloadAllPages(targetManager: TargetManager, bypassCache?: boolean, scriptToEvaluateOnLoad?: string): void {
99
98
  for (const resourceTreeModel of targetManager.models(ResourceTreeModel)) {
100
99
  if (resourceTreeModel.target().parentTarget()?.type() !== Type.FRAME) {
101
100
  resourceTreeModel.reloadPage(bypassCache, scriptToEvaluateOnLoad);
@@ -145,9 +145,9 @@ export class ScreenCaptureModel extends SDKModel<void> implements ProtocolProxyA
145
145
  throw new Error('Unexpected or unspecified screnshotMode');
146
146
  }
147
147
 
148
- await OverlayModel.muteHighlight();
148
+ await OverlayModel.muteHighlight(this.target().targetManager());
149
149
  const result = await this.#agent.invoke_captureScreenshot(properties);
150
- await OverlayModel.unmuteHighlight();
150
+ await OverlayModel.unmuteHighlight(this.target().targetManager());
151
151
  return result.data;
152
152
  }
153
153