chrome-devtools-frontend 1.0.1652307 → 1.0.1656291

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 (267) hide show
  1. package/.agents/skills/fixing-skipped-tests/SKILL.md +32 -0
  2. package/.agents/skills/migrate-chromium-test/SKILL.md +144 -0
  3. package/.agents/skills/ui-eng-vision-local-lit-renderer/SKILL.md +116 -0
  4. package/.agents/skills/ui-eng-vision-logic-consolidator/SKILL.md +82 -0
  5. package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +123 -0
  6. package/.agents/skills/ui-eng-vision-test-scaffolder/SKILL.md +125 -0
  7. package/.agents/skills/ui-eng-vision-widget-promoter/SKILL.md +75 -0
  8. package/AUTHORS +1 -0
  9. package/config/owner/COMMON_OWNERS +0 -4
  10. package/docs/get_the_code.md +1 -2
  11. package/docs/playbook.md +1 -1
  12. package/docs/ui_engineering.md +3 -1
  13. package/eslint.config.mjs +0 -5
  14. package/front_end/Tests.js +1 -0
  15. package/front_end/core/common/Settings.ts +47 -30
  16. package/front_end/core/sdk/CPUThrottlingManager.ts +23 -167
  17. package/front_end/core/sdk/CSSMetadata.ts +23 -0
  18. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +8 -4
  19. package/front_end/core/sdk/ConsoleModel.ts +13 -11
  20. package/front_end/core/sdk/DOMDebuggerModel.ts +11 -5
  21. package/front_end/core/sdk/DOMModel.ts +4 -0
  22. package/front_end/core/sdk/EmulationModel.ts +4 -0
  23. package/front_end/core/sdk/EventBreakpointsModel.ts +9 -5
  24. package/front_end/core/sdk/IsolateManager.ts +6 -6
  25. package/front_end/core/sdk/ResourceTreeModel.ts +8 -5
  26. package/front_end/core/sdk/TargetManager.ts +17 -0
  27. package/front_end/entrypoints/devtools_app/devtools_app.ts +0 -1
  28. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +459 -74
  29. package/front_end/entrypoints/main/MainImpl.ts +12 -42
  30. package/front_end/foundation/Universe.ts +116 -3
  31. package/front_end/generated/InspectorBackendCommands.ts +11 -6
  32. package/front_end/generated/SupportedCSSProperties.js +124 -34
  33. package/front_end/generated/protocol-mapping.d.ts +8 -0
  34. package/front_end/generated/protocol-proxy-api.d.ts +15 -0
  35. package/front_end/generated/protocol.ts +94 -1
  36. package/front_end/models/ai_assistance/AiConversation.ts +2 -7
  37. package/front_end/models/ai_assistance/README.md +4 -3
  38. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +1 -1
  39. package/front_end/models/ai_assistance/agents/NetworkAgent.snapshot.txt +1 -1
  40. package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
  41. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +13 -320
  42. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +0 -24
  43. package/front_end/models/ai_assistance/agents/StylingAgent.ts +2 -358
  44. package/front_end/models/ai_assistance/ai_assistance.ts +6 -8
  45. package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +295 -0
  46. package/front_end/models/ai_assistance/contexts/RequestContext.snapshot.txt +0 -1
  47. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +0 -2
  48. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +10 -10
  49. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +12 -11
  50. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -6
  51. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -14
  52. package/front_end/models/ai_assistance/skills/accessibility.md +4 -2
  53. package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +142 -0
  54. package/front_end/models/ai_assistance/tools/GetStyles.ts +1 -1
  55. package/front_end/models/ai_assistance/tools/README.md +21 -1
  56. package/front_end/models/ai_assistance/tools/{ResolveLighthousePath.ts → ResolveDevtoolsNodePath.ts} +18 -17
  57. package/front_end/models/ai_assistance/tools/Tool.ts +6 -1
  58. package/front_end/models/ai_assistance/tools/ToolRegistry.ts +4 -2
  59. package/front_end/models/autofill_manager/AutofillManager.ts +6 -15
  60. package/front_end/models/bindings/NetworkProject.ts +4 -8
  61. package/front_end/models/breakpoints/BreakpointManager.ts +9 -9
  62. package/front_end/models/emulation/DeviceModeModel.ts +24 -0
  63. package/front_end/models/emulation/EmulatedDevices.ts +108 -0
  64. package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +36 -0
  65. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +8 -0
  66. package/front_end/models/issues_manager/IssuesManager.ts +10 -6
  67. package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +4 -5
  68. package/front_end/models/javascript_metadata/NativeFunctions.js +1 -1
  69. package/front_end/models/live-metrics/LiveMetrics.ts +6 -6
  70. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +5 -5
  71. package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +3 -3
  72. package/front_end/models/logs/LogManager.ts +25 -10
  73. package/front_end/models/logs/NetworkLog.ts +24 -19
  74. package/front_end/models/persistence/AutomaticFileSystemManager.ts +14 -13
  75. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +26 -14
  76. package/front_end/models/persistence/IsolatedFileSystem.ts +9 -11
  77. package/front_end/models/persistence/IsolatedFileSystemManager.ts +22 -11
  78. package/front_end/models/persistence/NetworkPersistenceManager.ts +73 -44
  79. package/front_end/models/persistence/PersistenceImpl.ts +4 -5
  80. package/front_end/models/project_settings/ProjectSettingsModel.ts +12 -11
  81. package/front_end/models/trace/EntityMapper.ts +1 -1
  82. package/front_end/models/trace/handlers/ScreenshotsHandler.ts +14 -59
  83. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +12 -38
  84. package/front_end/panels/ai_assistance/ExportConversation.ts +4 -1
  85. package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
  86. package/front_end/panels/application/DeviceBoundSessionsView.ts +15 -3
  87. package/front_end/panels/application/FrameDetailsView.ts +2 -1
  88. package/front_end/panels/application/IndexedDBViews.ts +38 -36
  89. package/front_end/panels/application/ServiceWorkersView.ts +23 -16
  90. package/front_end/panels/application/components/AdsView.ts +4 -0
  91. package/front_end/panels/autofill/AutofillView.ts +1 -1
  92. package/front_end/panels/autofill/autofill-meta.ts +3 -2
  93. package/front_end/panels/common/CPUThrottlingOption.ts +142 -0
  94. package/front_end/panels/common/ThrottlingUtils.ts +9 -4
  95. package/front_end/panels/common/common.ts +1 -1
  96. package/front_end/panels/console/ConsoleViewMessage.ts +45 -0
  97. package/front_end/panels/elements/AccessibilityTreeUtils.ts +26 -15
  98. package/front_end/panels/elements/AccessibilityTreeView.ts +12 -9
  99. package/front_end/panels/elements/ElementsPanel.ts +0 -74
  100. package/front_end/panels/elements/ElementsTreeOutline.ts +5 -4
  101. package/front_end/panels/emulation/DeviceModeToolbar.ts +46 -45
  102. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +118 -68
  103. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  104. package/front_end/panels/layer_viewer/layerTreeOutline.css +20 -13
  105. package/front_end/panels/layers/LayersPanel.ts +1 -1
  106. package/front_end/panels/mobile_throttling/CalibrationController.ts +6 -5
  107. package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +1 -1
  108. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +40 -13
  109. package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +13 -17
  110. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +79 -30
  111. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +5 -0
  112. package/front_end/panels/network/LinkPreloadGenerator.ts +101 -0
  113. package/front_end/panels/network/NetworkLogView.ts +28 -9
  114. package/front_end/panels/network/NetworkPanel.ts +1 -63
  115. package/front_end/panels/network/RequestInitiatorView.ts +29 -4
  116. package/front_end/panels/network/components/HeaderSectionRow.css +9 -7
  117. package/front_end/panels/network/components/HeaderSectionRow.ts +20 -1
  118. package/front_end/panels/network/components/RequestHeaderSection.css +5 -3
  119. package/front_end/panels/network/components/RequestHeaderSection.ts +1 -2
  120. package/front_end/panels/network/components/RequestHeadersView.css +1 -1
  121. package/front_end/panels/network/network.ts +2 -0
  122. package/front_end/panels/profiler/HeapSnapshotView.ts +121 -33
  123. package/front_end/panels/profiler/ModuleUIStrings.ts +4 -0
  124. package/front_end/panels/security/SecurityPanel.ts +36 -23
  125. package/front_end/panels/settings/SettingsScreen.ts +18 -103
  126. package/front_end/panels/settings/settings-meta.ts +0 -24
  127. package/front_end/panels/timeline/TimelineController.ts +3 -2
  128. package/front_end/panels/timeline/TimelineHistoryManager.ts +38 -37
  129. package/front_end/panels/timeline/TimelinePanel.ts +52 -11
  130. package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +20 -18
  131. package/front_end/panels/timeline/components/LiveMetricsView.ts +38 -38
  132. package/front_end/panels/timeline/components/MetricCard.ts +18 -18
  133. package/front_end/panels/timeline/components/liveMetricsView.css +6 -6
  134. package/front_end/panels/timeline/components/metricCard.css +4 -4
  135. package/front_end/panels/timeline/timelineFlamechartPopover.css +2 -0
  136. package/front_end/panels/utils/utils.ts +25 -24
  137. package/front_end/panels/whats_new/ReleaseNoteText.ts +3 -3
  138. package/front_end/panels/whats_new/resources/WNDT.md +1 -1
  139. package/front_end/third_party/chromium/README.chromium +1 -1
  140. package/front_end/third_party/puppeteer/README.chromium +2 -2
  141. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +34 -55
  142. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +96 -83
  143. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +10 -1
  144. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/CDPSession.d.ts.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/CDPSession.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts +3 -2
  152. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPResponse.js.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.d.ts.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Realm.js.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Target.d.ts +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Target.js +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.d.ts.map +1 -1
  159. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.d.ts.map +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js +2 -1
  162. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/HTTPResponse.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/Realm.js.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts +2 -2
  166. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +5 -2
  168. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js +23 -13
  173. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  175. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.js +4 -1
  176. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPResponse.js.map +1 -1
  177. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Input.js +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/LifecycleWatcher.d.ts.map +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/LifecycleWatcher.js.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.d.ts.map +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js.map +1 -1
  182. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts +3 -41
  183. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +4 -2
  188. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/LaunchOptions.d.ts +5 -0
  190. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.d.ts +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.js +5 -5
  196. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/httpUtils.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  198. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/types.d.ts +34 -55
  200. package/front_end/third_party/puppeteer/package/package.json +4 -4
  201. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -1
  202. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +2 -3
  203. package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +3 -1
  204. package/front_end/third_party/puppeteer/package/src/api/HTTPResponse.ts +3 -2
  205. package/front_end/third_party/puppeteer/package/src/api/Realm.ts +1 -2
  206. package/front_end/third_party/puppeteer/package/src/api/Target.ts +1 -1
  207. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +1 -2
  208. package/front_end/third_party/puppeteer/package/src/bidi/HTTPResponse.ts +3 -1
  209. package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +1 -3
  210. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +13 -3
  211. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +1 -1
  212. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +24 -13
  213. package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +4 -1
  214. package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +1 -1
  215. package/front_end/third_party/puppeteer/package/src/cdp/LifecycleWatcher.ts +1 -4
  216. package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +2 -4
  217. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +7 -76
  218. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +1 -4
  219. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +4 -1
  220. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +5 -0
  221. package/front_end/third_party/puppeteer/package/src/revisions.ts +1 -1
  222. package/front_end/third_party/puppeteer/package/src/util/httpUtils.ts +5 -5
  223. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  224. package/front_end/third_party/puppeteer/third_party/parsel/README.chromium +1 -1
  225. package/front_end/ui/components/dialogs/Dialog.ts +3 -0
  226. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +0 -7
  227. package/front_end/ui/helpers/OpenInNewTab.ts +15 -7
  228. package/front_end/ui/legacy/InspectorDrawerView.ts +7 -5
  229. package/front_end/ui/legacy/ListWidget.ts +12 -0
  230. package/front_end/ui/legacy/SplitWidget.ts +12 -11
  231. package/front_end/ui/legacy/TabbedPane.ts +1 -108
  232. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +9 -0
  233. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +192 -139
  234. package/front_end/ui/legacy/components/data_grid/DataGridExporter.ts +89 -0
  235. package/front_end/ui/legacy/components/data_grid/dataGrid.css +10 -0
  236. package/front_end/ui/legacy/components/data_grid/data_grid.ts +3 -1
  237. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +8 -1
  238. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +110 -17
  239. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +89 -40
  240. package/front_end/ui/legacy/treeoutline.css +1 -1
  241. package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
  242. package/package.json +4 -3
  243. package/front_end/Images/navigationControls.png +0 -0
  244. package/front_end/Images/navigationControls_2x.png +0 -0
  245. package/front_end/Images/popoverArrows.png +0 -0
  246. package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +0 -746
  247. package/front_end/entrypoints/greendev_floaty/floaty.css +0 -301
  248. package/front_end/entrypoints/greendev_floaty/floaty.html +0 -38
  249. package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +0 -415
  250. package/front_end/models/ai_assistance/agents/GreenDevAgent.ts +0 -834
  251. package/front_end/models/ai_assistance/agents/GreenDevAgentAntigravityCliSocketClient.ts +0 -53
  252. package/front_end/models/ai_assistance/agents/GreenDevAgentGeminiCliSocketClient.ts +0 -117
  253. package/front_end/models/annotations/AnnotationRepository.ts +0 -238
  254. package/front_end/models/annotations/AnnotationType.ts +0 -10
  255. package/front_end/models/annotations/README.md +0 -7
  256. package/front_end/models/annotations/annotations.ts +0 -6
  257. package/front_end/models/greendev/Prototypes.ts +0 -68
  258. package/front_end/models/greendev/README.md +0 -5
  259. package/front_end/models/greendev/greendev.ts +0 -5
  260. package/front_end/panels/common/Annotation.ts +0 -184
  261. package/front_end/panels/common/AnnotationManager.ts +0 -208
  262. package/front_end/panels/common/annotation.css +0 -40
  263. package/front_end/panels/greendev/GreenDevPanel.css +0 -282
  264. package/front_end/panels/greendev/GreenDevPanel.ts +0 -364
  265. package/front_end/panels/greendev/GreenDevShared.ts +0 -13
  266. package/front_end/panels/greendev/greendev-meta.ts +0 -52
  267. package/front_end/panels/greendev/greendev.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"httpUtils.js","sourceRoot":"","sources":["../../../src/util/httpUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"httpUtils.js","sourceRoot":"","sources":["../../../src/util/httpUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,KAAa;IAC9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"}
@@ -3,5 +3,5 @@
3
3
  * Copyright 2025 Google Inc.
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const packageVersion = "25.2.1";
6
+ export declare const packageVersion = "25.3.0";
7
7
  //# sourceMappingURL=version.d.ts.map
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // If moved update release-please config
7
7
  // x-release-please-start-version
8
- export const packageVersion = '25.2.1';
8
+ export const packageVersion = '25.3.0';
9
9
  // x-release-please-end
10
10
  //# sourceMappingURL=version.js.map
@@ -559,7 +559,10 @@ export declare abstract class Browser extends EventEmitter<BrowserEvents> {
559
559
  /**
560
560
  * Installs an extension and returns the ID.
561
561
  */
562
- abstract installExtension(path: string): Promise<string>;
562
+ abstract installExtension(
563
+ path: string,
564
+ options?: ExtensionInstallOptions,
565
+ ): Promise<string>;
563
566
  /**
564
567
  * Uninstalls an extension.
565
568
  */
@@ -919,7 +922,9 @@ export declare abstract class BrowserLauncher {
919
922
  * @public
920
923
  */
921
924
  export declare type CDPEvents = {
922
- [Property in keyof ProtocolMapping.Events]: ProtocolMapping.Events[Property][0];
925
+ [
926
+ Property in keyof ProtocolMapping.Events
927
+ ]: ProtocolMapping.Events[Property][0];
923
928
  };
924
929
 
925
930
  /**
@@ -1042,10 +1047,7 @@ export declare interface ChromeHeadlessShellSettings {
1042
1047
  * @public
1043
1048
  */
1044
1049
  export declare type ChromeReleaseChannel =
1045
- | 'chrome'
1046
- | 'chrome-beta'
1047
- | 'chrome-canary'
1048
- | 'chrome-dev';
1050
+ 'chrome' | 'chrome-beta' | 'chrome-canary' | 'chrome-dev';
1049
1051
 
1050
1052
  /**
1051
1053
  * @public
@@ -2122,10 +2124,7 @@ export declare interface DownloadBehavior {
2122
2124
  * @public
2123
2125
  */
2124
2126
  export declare type DownloadPolicy =
2125
- | 'deny'
2126
- | 'allow'
2127
- | 'allowAndName'
2128
- | 'default';
2127
+ 'deny' | 'allow' | 'allowAndName' | 'default';
2129
2128
 
2130
2129
  /**
2131
2130
  * @public
@@ -2910,6 +2909,16 @@ export declare abstract class Extension {
2910
2909
  abstract triggerAction(page: Page): Promise<void>;
2911
2910
  }
2912
2911
 
2912
+ /**
2913
+ * @public
2914
+ */
2915
+ export declare interface ExtensionInstallOptions {
2916
+ /**
2917
+ * Whether to enable the extension in Incognito or OTR profiles in Chrome.
2918
+ */
2919
+ enabledInIncognito: boolean;
2920
+ }
2921
+
2913
2922
  /**
2914
2923
  * Experimental ExtensionTransport allows establishing a connection via
2915
2924
  * chrome.debugger API if Puppeteer runs in an extension. Since Chrome
@@ -4069,8 +4078,9 @@ export declare abstract class HTTPResponse {
4069
4078
  */
4070
4079
  abstract statusText(): string;
4071
4080
  /**
4072
- * An object with HTTP headers associated with the response. All
4073
- * header names are lower-case.
4081
+ * An object with HTTP headers associated with the response. All header names
4082
+ * are lower-case. Duplicate header values are combined into a single
4083
+ * comma-separated list except for `Set-Cookie` that is separated by `\n`.
4074
4084
  */
4075
4085
  abstract headers(): Record<string, string>;
4076
4086
  /**
@@ -4989,6 +4999,11 @@ export declare interface LaunchOptions extends ConnectOptions {
4989
4999
  * load the provided paths as unpacked extensions.
4990
5000
  */
4991
5001
  enableExtensions?: boolean | string[];
5002
+ /**
5003
+ * List of extensions that will be enable in Incognito and off-the-record
5004
+ * profiles.
5005
+ */
5006
+ extensionsEnabledInIncognito?: string[];
4992
5007
  /**
4993
5008
  * Close the browser process on `Ctrl+C`.
4994
5009
  * @defaultValue `true`
@@ -8046,8 +8061,7 @@ export declare const PredefinedNetworkConditions: Readonly<{
8046
8061
  * @public
8047
8062
  */
8048
8063
  export declare type Predicate<From, To extends From = From> =
8049
- | ((value: From) => value is To)
8050
- | ((value: From) => Awaitable<boolean>);
8064
+ ((value: From) => value is To) | ((value: From) => Awaitable<boolean>);
8051
8065
 
8052
8066
  export {Protocol};
8053
8067
 
@@ -8076,10 +8090,7 @@ export declare class ProtocolError extends PuppeteerError {
8076
8090
  * @public
8077
8091
  */
8078
8092
  export declare type ProtocolLifeCycleEvent =
8079
- | 'load'
8080
- | 'DOMContentLoaded'
8081
- | 'networkIdle'
8082
- | 'networkAlmostIdle';
8093
+ 'load' | 'DOMContentLoaded' | 'networkIdle' | 'networkAlmostIdle';
8083
8094
 
8084
8095
  /**
8085
8096
  * @public
@@ -8176,6 +8187,7 @@ declare namespace Puppeteer_2 {
8176
8187
  ScreenInfo,
8177
8188
  WorkAreaInsets,
8178
8189
  AddScreenParams,
8190
+ ExtensionInstallOptions,
8179
8191
  BrowserContextEvents,
8180
8192
  CDPEvents,
8181
8193
  CDPSessionEvents,
@@ -8250,8 +8262,6 @@ declare namespace Puppeteer_2 {
8250
8262
  NetworkConditions,
8251
8263
  InternalNetworkConditions,
8252
8264
  TracingOptions,
8253
- WebMCPAnnotation,
8254
- WebMCPInvocationStatus,
8255
8265
  WebMCPToolsAddedEvent,
8256
8266
  WebMCPToolsRemovedEvent,
8257
8267
  WebMCPToolCallResult,
@@ -9148,7 +9158,7 @@ export declare type SupportedWebDriverCapability = Exclude<
9148
9158
  /**
9149
9159
  * Target represents a
9150
9160
  * {@link https://chromedevtools.github.io/devtools-protocol/tot/Target/ | CDP target}.
9151
- * In CDP a target is something that can be debugged such a frame, a page or a
9161
+ * In CDP a target is something that can be debugged, such as a frame, a page or a
9152
9162
  * worker.
9153
9163
  * @public
9154
9164
  */
@@ -9551,34 +9561,6 @@ export declare class WebMCP extends EventEmitter<{
9551
9561
  tools(): WebMCPTool[];
9552
9562
  }
9553
9563
 
9554
- /**
9555
- * Tool annotations
9556
- *
9557
- * @public
9558
- */
9559
- export declare interface WebMCPAnnotation {
9560
- /**
9561
- * A hint indicating that the tool does not modify any state.
9562
- */
9563
- readOnly?: boolean;
9564
- /**
9565
- * A hint indicating that the tool output may contain untrusted content, ex: UGC, 3rd
9566
- * party data.
9567
- */
9568
- untrustedContent?: boolean;
9569
- /**
9570
- * If the declarative tool was declared with the autosubmit attribute.
9571
- */
9572
- autosubmit?: boolean;
9573
- }
9574
-
9575
- /**
9576
- * Represents the status of a tool invocation.
9577
- *
9578
- * @public
9579
- */
9580
- export declare type WebMCPInvocationStatus = 'Completed' | 'Canceled' | 'Error';
9581
-
9582
9564
  /**
9583
9565
  * Represents a registered WebMCP tool available on the page.
9584
9566
  *
@@ -9604,7 +9586,7 @@ export declare class WebMCPTool extends EventEmitter<{
9604
9586
  /**
9605
9587
  * Optional annotations for the tool.
9606
9588
  */
9607
- annotations?: WebMCPAnnotation;
9589
+ annotations?: Protocol.WebMCP.Annotation;
9608
9590
  /**
9609
9591
  * Frame the tool was defined for.
9610
9592
  */
@@ -9656,7 +9638,7 @@ export declare interface WebMCPToolCallResult {
9656
9638
  /**
9657
9639
  * Status of the invocation.
9658
9640
  */
9659
- status: WebMCPInvocationStatus;
9641
+ status: Protocol.WebMCP.InvocationStatus;
9660
9642
  /**
9661
9643
  * Output or error delivered as delivered to the agent. Missing if `status` is anything
9662
9644
  * other than Completed.
@@ -9843,10 +9825,7 @@ export declare type WindowId = string;
9843
9825
  * @public
9844
9826
  */
9845
9827
  export declare type WindowState =
9846
- | 'normal'
9847
- | 'minimized'
9848
- | 'maximized'
9849
- | 'fullscreen';
9828
+ 'normal' | 'minimized' | 'maximized' | 'fullscreen';
9850
9829
 
9851
9830
  /**
9852
9831
  * @public
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "puppeteer-core",
3
- "version": "25.2.1",
3
+ "version": "25.3.0",
4
4
  "description": "A high-level API to control headless Chrome over the DevTools Protocol",
5
5
  "keywords": [
6
6
  "puppeteer",
@@ -148,7 +148,7 @@
148
148
  "author": "The Chromium Authors",
149
149
  "license": "Apache-2.0",
150
150
  "dependencies": {
151
- "@puppeteer/browsers": "3.0.5",
151
+ "@puppeteer/browsers": "3.0.6",
152
152
  "chromium-bidi": "16.0.1",
153
153
  "devtools-protocol": "0.0.1638949",
154
154
  "typed-query-selector": "^2.12.2",
@@ -156,11 +156,11 @@
156
156
  "ws": "^8.21.0"
157
157
  },
158
158
  "devDependencies": {
159
- "@types/chrome": "0.1.43",
159
+ "@types/chrome": "0.2.0",
160
160
  "@types/node": "^18.17.15",
161
161
  "@types/ws": "8.18.1",
162
162
  "mitt": "3.0.1",
163
- "parsel-js": "1.2.2",
163
+ "parsel-js": "1.2.3",
164
164
  "rxjs": "^7.8.2",
165
165
  "urlpattern-polyfill": "10.1.0"
166
166
  }
@@ -324,6 +324,15 @@ export interface AddScreenParams {
324
324
  label?: string;
325
325
  isInternal?: boolean;
326
326
  }
327
+ /**
328
+ * @public
329
+ */
330
+ export interface ExtensionInstallOptions {
331
+ /**
332
+ * Whether to enable the extension in Incognito or OTR profiles in Chrome.
333
+ */
334
+ enabledInIncognito: boolean;
335
+ }
327
336
 
328
337
  /**
329
338
  * {@link Browser} represents a browser instance that is either:
@@ -643,7 +652,10 @@ export abstract class Browser extends EventEmitter<BrowserEvents> {
643
652
  /**
644
653
  * Installs an extension and returns the ID.
645
654
  */
646
- abstract installExtension(path: string): Promise<string>;
655
+ abstract installExtension(
656
+ path: string,
657
+ options?: ExtensionInstallOptions,
658
+ ): Promise<string>;
647
659
 
648
660
  /**
649
661
  * Uninstalls an extension.
@@ -125,7 +125,7 @@ export abstract class BrowserContext extends EventEmitter<BrowserContextEvents>
125
125
  abstract targets(): Target[];
126
126
 
127
127
  /**
128
- * If defined, indicates an ongoing screenshot opereation.
128
+ * If defined, indicates an ongoing screenshot operation.
129
129
  */
130
130
  #pageScreenshotMutex?: Mutex;
131
131
  #screenshotOperationsCount = 0;
@@ -150,8 +150,7 @@ export abstract class BrowserContext extends EventEmitter<BrowserContextEvents>
150
150
  * @internal
151
151
  */
152
152
  waitForScreenshotOperations():
153
- | Promise<InstanceType<typeof Mutex.Guard>>
154
- | undefined {
153
+ Promise<InstanceType<typeof Mutex.Guard>> | undefined {
155
154
  return this.#pageScreenshotMutex?.acquire();
156
155
  }
157
156
 
@@ -12,7 +12,9 @@ import {EventEmitter, type EventType} from '../common/EventEmitter.js';
12
12
  * @public
13
13
  */
14
14
  export type CDPEvents = {
15
- [Property in keyof ProtocolMapping.Events]: ProtocolMapping.Events[Property][0];
15
+ [
16
+ Property in keyof ProtocolMapping.Events
17
+ ]: ProtocolMapping.Events[Property][0];
16
18
  };
17
19
 
18
20
  /**
@@ -63,8 +63,9 @@ export abstract class HTTPResponse {
63
63
  abstract statusText(): string;
64
64
 
65
65
  /**
66
- * An object with HTTP headers associated with the response. All
67
- * header names are lower-case.
66
+ * An object with HTTP headers associated with the response. All header names
67
+ * are lower-case. Duplicate header values are combined into a single
68
+ * comma-separated list except for `Set-Cookie` that is separated by `\n`.
68
69
  */
69
70
  abstract headers(): Record<string, string>;
70
71
 
@@ -176,8 +176,7 @@ export abstract class Realm {
176
176
  signal,
177
177
  },
178
178
  pageFunction as unknown as
179
- | ((...args: unknown[]) => Promise<Awaited<ReturnType<Func>>>)
180
- | string,
179
+ ((...args: unknown[]) => Promise<Awaited<ReturnType<Func>>>) | string,
181
180
  ...args,
182
181
  );
183
182
  return await waitTask.result;
@@ -30,7 +30,7 @@ export enum TargetType {
30
30
  /**
31
31
  * Target represents a
32
32
  * {@link https://chromedevtools.github.io/devtools-protocol/tot/Target/ | CDP target}.
33
- * In CDP a target is something that can be debugged such a frame, a page or a
33
+ * In CDP a target is something that can be debugged, such as a frame, a page or a
34
34
  * worker.
35
35
  * @public
36
36
  */
@@ -862,8 +862,7 @@ export class FunctionLocator<T> extends Locator<T> {
862
862
  * @public
863
863
  */
864
864
  export type Predicate<From, To extends From = From> =
865
- | ((value: From) => value is To)
866
- | ((value: From) => Awaitable<boolean>);
865
+ ((value: From) => value is To) | ((value: From) => Awaitable<boolean>);
867
866
  /**
868
867
  * @internal
869
868
  */
@@ -101,7 +101,9 @@ export class BidiHTTPResponse extends HTTPResponse {
101
101
  // TODO: How to handle Binary Headers
102
102
  // https://w3c.github.io/webdriver-bidi/#type-network-Header
103
103
  if (header.value.type === 'string') {
104
- headers[header.name.toLowerCase()] = normalizeHeaderValue(
104
+ const headerName = header.name.toLowerCase();
105
+ headers[headerName] = normalizeHeaderValue(
106
+ headerName,
105
107
  header.value.value,
106
108
  );
107
109
  }
@@ -231,9 +231,7 @@ export class WindowRealm extends Realm {
231
231
  * @internal
232
232
  */
233
233
  export type DedicatedWorkerOwnerRealm =
234
- | DedicatedWorkerRealm
235
- | SharedWorkerRealm
236
- | WindowRealm;
234
+ DedicatedWorkerRealm | SharedWorkerRealm | WindowRealm;
237
235
 
238
236
  /**
239
237
  * @internal
@@ -8,7 +8,11 @@ import type {ChildProcess} from 'node:child_process';
8
8
 
9
9
  import type {Protocol} from 'devtools-protocol';
10
10
 
11
- import type {CreatePageOptions, DebugInfo} from '../api/Browser.js';
11
+ import type {
12
+ CreatePageOptions,
13
+ DebugInfo,
14
+ ExtensionInstallOptions,
15
+ } from '../api/Browser.js';
12
16
  import {
13
17
  Browser as BrowserBase,
14
18
  BrowserEvent,
@@ -477,8 +481,14 @@ export class CdpBrowser extends BrowserBase {
477
481
  return response.targetId;
478
482
  }
479
483
 
480
- override async installExtension(path: string): Promise<string> {
481
- const {id} = await this.#connection.send('Extensions.loadUnpacked', {path});
484
+ override async installExtension(
485
+ path: string,
486
+ options?: ExtensionInstallOptions,
487
+ ): Promise<string> {
488
+ const {id} = await this.#connection.send('Extensions.loadUnpacked', {
489
+ path,
490
+ enableInIncognito: options?.enabledInIncognito ?? false,
491
+ });
482
492
  this.#extensions.delete(id);
483
493
  return id;
484
494
  }
@@ -459,7 +459,7 @@ export function referrerPolicyToProtocol(
459
459
  ): Protocol.Page.ReferrerPolicy {
460
460
  // See
461
461
  // https://chromedevtools.github.io/devtools-protocol/tot/Page/#type-ReferrerPolicy
462
- // We need to conver from Web-facing phase to CDP's camelCase.
462
+ // We need to convert from Web-facing phase to CDP's camelCase.
463
463
  return referrerPolicy.replaceAll(/-./g, match => {
464
464
  return match[1]!.toUpperCase();
465
465
  }) as Protocol.Page.ReferrerPolicy;
@@ -39,7 +39,6 @@ import {NetworkManager} from './NetworkManager.js';
39
39
  import type {CdpPage} from './Page.js';
40
40
  import type {CdpTarget} from './Target.js';
41
41
 
42
- const TIME_FOR_WAITING_FOR_SWAP = 100; // ms.
43
42
  const CHROME_EXTENSION_PREFIX = 'chrome-extension://';
44
43
  /**
45
44
  * A frame manager manages the frames for a given {@link Page | page}.
@@ -98,7 +97,7 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
98
97
  this.#timeoutSettings = timeoutSettings;
99
98
  this.setupEventListeners(this.#client);
100
99
  client.once(CDPSessionEvent.Disconnected, () => {
101
- void this.#onClientDisconnect().catch(debugCatchError);
100
+ void this.#onClientDisconnect(client).catch(debugCatchError);
102
101
  });
103
102
  }
104
103
 
@@ -107,15 +106,21 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
107
106
  * disconnect means that the frame is removed or if it will be replaced by a
108
107
  * new frame. Therefore, we wait for a swap event.
109
108
  */
110
- async #onClientDisconnect() {
109
+ async #onClientDisconnect(client: CdpCDPSession) {
111
110
  const mainFrame = this._frameTree.getMainFrame();
112
111
  if (!mainFrame) {
113
112
  return;
114
113
  }
115
114
 
116
- if (!this.#page.browser().connected) {
117
- // If the browser is not connected we know
118
- // that activation will not happen
115
+ // If the disconnected client is not the current one, it means a swap
116
+ // has already happened.
117
+ if (this.#client !== client) {
118
+ return;
119
+ }
120
+
121
+ if (!this.#page.browser().connected || this.#page.isClosed()) {
122
+ // If the browser is not connected or the page is closed, we know
123
+ // that activation will not happen.
119
124
  this.#removeFramesRecursively(mainFrame);
120
125
  return;
121
126
  }
@@ -123,17 +128,23 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
123
128
  for (const child of mainFrame.childFrames()) {
124
129
  this.#removeFramesRecursively(child);
125
130
  }
126
- const swapped = Deferred.create<void>({
127
- timeout: TIME_FOR_WAITING_FOR_SWAP,
128
- message: 'Frame was not swapped',
129
- });
130
- mainFrame.once(FrameEvent.FrameSwappedByActivation, () => {
131
+ const swapped = Deferred.create<void>();
132
+ const onFrameSwapped = () => {
131
133
  swapped.resolve();
132
- });
134
+ };
135
+ const onPageClosed = () => {
136
+ swapped.reject(new Error('Page closed'));
137
+ };
138
+ mainFrame.once(FrameEvent.FrameSwappedByActivation, onFrameSwapped);
139
+ this.#page.once(PageEvent.Close, onPageClosed);
140
+
133
141
  try {
134
142
  await swapped.valueOrThrow();
135
143
  } catch {
136
144
  this.#removeFramesRecursively(mainFrame);
145
+ } finally {
146
+ mainFrame.off(FrameEvent.FrameSwappedByActivation, onFrameSwapped);
147
+ this.#page.off(PageEvent.Close, onPageClosed);
137
148
  }
138
149
  }
139
150
 
@@ -154,7 +165,7 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
154
165
  }
155
166
  this.setupEventListeners(client);
156
167
  client.once(CDPSessionEvent.Disconnected, () => {
157
- void this.#onClientDisconnect().catch(debugCatchError);
168
+ void this.#onClientDisconnect(client).catch(debugCatchError);
158
169
  });
159
170
  await this.initialize(client, frame);
160
171
  await this.#networkManager.addClient(client);
@@ -52,7 +52,10 @@ export class CdpHTTPResponse extends HTTPResponse {
52
52
  this.#status = extraInfo ? extraInfo.statusCode : responsePayload.status;
53
53
  const headers = extraInfo ? extraInfo.headers : responsePayload.headers;
54
54
  for (const [key, value] of Object.entries(headers)) {
55
- this.#headers[key.toLowerCase()] = normalizeHeaderValue(value);
55
+ const headerName = key.toLowerCase();
56
+ // See https://www.rfc-editor.org/rfc/rfc9110.html#name-field-order for
57
+ // the set-cookie exception.
58
+ this.#headers[headerName] = normalizeHeaderValue(headerName, value);
56
59
  }
57
60
 
58
61
  this.#securityDetails = responsePayload.securityDetails
@@ -292,7 +292,7 @@ export class CdpMouse extends Mouse {
292
292
  return Object.assign({...this.#_state}, ...this.#transactions);
293
293
  }
294
294
 
295
- // Transactions can run in parallel, so we store each of thme in this array.
295
+ // Transactions can run in parallel, so we store each of them in this array.
296
296
  #transactions: Array<Partial<MouseState>> = [];
297
297
  #createTransaction(): {
298
298
  update: (updates: Partial<MouseState>) => void;
@@ -47,10 +47,7 @@ export type PuppeteerLifeCycleEvent =
47
47
  * @public
48
48
  */
49
49
  export type ProtocolLifeCycleEvent =
50
- | 'load'
51
- | 'DOMContentLoaded'
52
- | 'networkIdle'
53
- | 'networkAlmostIdle';
50
+ 'load' | 'DOMContentLoaded' | 'networkIdle' | 'networkAlmostIdle';
54
51
 
55
52
  const puppeteerToProtocolLifecycle = new Map<
56
53
  PuppeteerLifeCycleEvent,
@@ -36,8 +36,7 @@ export class CdpTarget extends Target {
36
36
  #targetInfo: Protocol.Target.TargetInfo;
37
37
  #targetManager?: TargetManager;
38
38
  #sessionFactory:
39
- | ((isAutoAttachEmulated: boolean) => Promise<CdpCDPSession>)
40
- | undefined;
39
+ ((isAutoAttachEmulated: boolean) => Promise<CdpCDPSession>) | undefined;
41
40
  #childTargets = new Set<CdpTarget>();
42
41
  _initializedDeferred = Deferred.create<InitializationStatus>();
43
42
  _isClosedDeferred = Deferred.create<void>();
@@ -57,8 +56,7 @@ export class CdpTarget extends Target {
57
56
  browserContext: BrowserContext | undefined,
58
57
  targetManager: TargetManager | undefined,
59
58
  sessionFactory:
60
- | ((isAutoAttachEmulated: boolean) => Promise<CdpCDPSession>)
61
- | undefined,
59
+ ((isAutoAttachEmulated: boolean) => Promise<CdpCDPSession>) | undefined,
62
60
  ) {
63
61
  super();
64
62
  this.#session = session;