rebrowser-playwright-core 1.49.0 → 1.52.0

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 (373) hide show
  1. package/ThirdPartyNotices.txt +381 -55
  2. package/bin/reinstall_msedge_beta_linux.sh +6 -0
  3. package/bin/reinstall_msedge_dev_linux.sh +6 -0
  4. package/bin/reinstall_msedge_stable_linux.sh +6 -0
  5. package/browsers.json +28 -13
  6. package/index.js +0 -1
  7. package/lib/androidServerImpl.js +42 -48
  8. package/lib/browserServerImpl.js +60 -64
  9. package/lib/cli/driver.js +71 -69
  10. package/lib/cli/program.js +314 -354
  11. package/lib/cli/programWithTestStub.js +51 -44
  12. package/lib/client/accessibility.js +31 -32
  13. package/lib/client/android.js +146 -254
  14. package/lib/client/api.js +135 -283
  15. package/lib/client/artifact.js +39 -39
  16. package/lib/client/browser.js +59 -68
  17. package/lib/client/browserContext.js +302 -322
  18. package/lib/client/browserType.js +95 -143
  19. package/lib/client/cdpSession.js +29 -31
  20. package/lib/client/channelOwner.js +109 -139
  21. package/lib/client/clientHelper.js +49 -42
  22. package/lib/client/clientInstrumentation.js +40 -35
  23. package/lib/client/clientStackTrace.js +69 -0
  24. package/lib/client/clock.js +36 -36
  25. package/lib/client/connection.js +203 -218
  26. package/lib/client/consoleMessage.js +33 -33
  27. package/lib/client/coverage.js +25 -22
  28. package/lib/client/dialog.js +30 -31
  29. package/lib/client/download.js +25 -25
  30. package/lib/client/electron.js +74 -76
  31. package/lib/client/elementHandle.js +126 -163
  32. package/lib/client/errors.js +53 -53
  33. package/lib/client/eventEmitter.js +127 -127
  34. package/lib/client/events.js +72 -68
  35. package/lib/client/fetch.js +154 -178
  36. package/lib/client/fileChooser.js +25 -24
  37. package/lib/client/fileUtils.js +34 -0
  38. package/lib/client/frame.js +189 -307
  39. package/lib/client/harRouter.js +44 -56
  40. package/lib/client/input.js +40 -69
  41. package/lib/client/jsHandle.js +55 -71
  42. package/lib/client/jsonPipe.js +27 -23
  43. package/lib/client/localUtils.js +53 -28
  44. package/lib/client/locator.js +144 -230
  45. package/lib/client/network.js +285 -301
  46. package/lib/client/page.js +273 -312
  47. package/lib/client/platform.js +74 -0
  48. package/lib/client/playwright.js +62 -57
  49. package/lib/client/selectors.js +51 -43
  50. package/lib/client/stream.js +30 -45
  51. package/lib/client/timeoutSettings.js +75 -0
  52. package/lib/client/tracing.js +49 -82
  53. package/lib/client/types.js +26 -22
  54. package/lib/client/video.js +35 -27
  55. package/lib/client/waiter.js +71 -91
  56. package/lib/client/webError.js +25 -23
  57. package/lib/client/webSocket.js +111 -0
  58. package/lib/client/worker.js +48 -56
  59. package/lib/client/writableStream.js +28 -43
  60. package/lib/generated/clockSource.js +26 -5
  61. package/lib/generated/consoleApiSource.js +26 -5
  62. package/lib/generated/injectedScriptSource.js +26 -5
  63. package/lib/generated/pollingRecorderSource.js +26 -5
  64. package/lib/generated/utilityScriptSource.js +26 -5
  65. package/lib/generated/webSocketMockSource.js +375 -4
  66. package/lib/inProcessFactory.js +53 -48
  67. package/lib/inprocess.js +2 -19
  68. package/lib/outofprocess.js +53 -42
  69. package/lib/protocol/debug.js +209 -25
  70. package/lib/protocol/serializers.js +153 -134
  71. package/lib/protocol/validator.js +2712 -2667
  72. package/lib/protocol/validatorPrimitives.js +115 -75
  73. package/lib/remote/playwrightConnection.js +144 -152
  74. package/lib/remote/playwrightServer.js +106 -77
  75. package/lib/server/accessibility.js +44 -37
  76. package/lib/server/android/android.js +216 -206
  77. package/lib/server/android/backendAdb.js +89 -82
  78. package/lib/server/artifact.js +78 -55
  79. package/lib/server/bidi/bidiBrowser.js +227 -158
  80. package/lib/server/bidi/bidiChromium.js +106 -78
  81. package/lib/server/bidi/bidiConnection.js +66 -83
  82. package/lib/server/bidi/bidiExecutionContext.js +161 -97
  83. package/lib/server/bidi/bidiFirefox.js +76 -68
  84. package/lib/server/bidi/bidiInput.js +90 -102
  85. package/lib/server/bidi/bidiNetworkManager.js +141 -159
  86. package/lib/server/bidi/bidiOverCdp.js +57 -58
  87. package/lib/server/bidi/bidiPage.js +262 -261
  88. package/lib/server/bidi/bidiPdf.js +52 -86
  89. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  90. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  91. package/lib/server/bidi/third_party/bidiKeyboard.js +241 -223
  92. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  93. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  94. package/lib/server/bidi/third_party/firefoxPrefs.js +149 -111
  95. package/lib/server/browser.js +76 -84
  96. package/lib/server/browserContext.js +343 -360
  97. package/lib/server/browserType.js +169 -181
  98. package/lib/server/callLog.js +82 -0
  99. package/lib/server/chromium/chromium.js +212 -190
  100. package/lib/server/chromium/chromiumSwitches.js +99 -44
  101. package/lib/server/chromium/crAccessibility.js +157 -131
  102. package/lib/server/chromium/crBrowser.js +262 -280
  103. package/lib/server/chromium/crConnection.js +121 -178
  104. package/lib/server/chromium/crCoverage.js +113 -127
  105. package/lib/server/chromium/crDevTools.js +64 -55
  106. package/lib/server/chromium/crDragDrop.js +62 -79
  107. package/lib/server/chromium/crExecutionContext.js +100 -91
  108. package/lib/server/chromium/crInput.js +101 -88
  109. package/lib/server/chromium/crNetworkManager.js +269 -370
  110. package/lib/server/chromium/crPage.js +509 -595
  111. package/lib/server/chromium/crPdf.js +54 -86
  112. package/lib/server/chromium/crProtocolHelper.js +92 -80
  113. package/lib/server/chromium/crServiceWorker.js +85 -69
  114. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  115. package/lib/server/chromium/protocol.d.js +16 -0
  116. package/lib/server/chromium/videoRecorder.js +65 -99
  117. package/lib/server/clock.js +58 -46
  118. package/lib/server/codegen/csharp.js +191 -156
  119. package/lib/server/codegen/java.js +163 -125
  120. package/lib/server/codegen/javascript.js +166 -143
  121. package/lib/server/codegen/jsonl.js +33 -29
  122. package/lib/server/codegen/language.js +75 -52
  123. package/lib/server/codegen/languages.js +65 -27
  124. package/lib/server/codegen/python.js +141 -125
  125. package/lib/server/codegen/types.js +15 -4
  126. package/lib/server/console.js +28 -32
  127. package/lib/server/cookieStore.js +105 -86
  128. package/lib/server/debugController.js +102 -154
  129. package/lib/server/debugger.js +82 -78
  130. package/lib/server/deviceDescriptors.js +37 -24
  131. package/lib/server/deviceDescriptorsSource.json +131 -131
  132. package/lib/server/dialog.js +36 -35
  133. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  134. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  135. package/lib/server/dispatchers/browserContextDispatcher.js +177 -217
  136. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  137. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  138. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  139. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -64
  140. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  141. package/lib/server/dispatchers/dispatcher.js +180 -229
  142. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  143. package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
  144. package/lib/server/dispatchers/frameDispatcher.js +93 -162
  145. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  146. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  147. package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
  148. package/lib/server/dispatchers/networkDispatchers.js +92 -109
  149. package/lib/server/dispatchers/pageDispatcher.js +130 -169
  150. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  151. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  152. package/lib/server/dispatchers/streamDispatcher.js +42 -44
  153. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  154. package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
  155. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
  156. package/lib/server/dom.js +424 -443
  157. package/lib/server/download.js +45 -35
  158. package/lib/server/electron/electron.js +156 -175
  159. package/lib/server/electron/loader.js +8 -36
  160. package/lib/server/errors.js +47 -46
  161. package/lib/server/fetch.js +302 -331
  162. package/lib/server/fileChooser.js +25 -24
  163. package/lib/server/fileUploadUtils.js +66 -57
  164. package/lib/server/firefox/ffAccessibility.js +153 -131
  165. package/lib/server/firefox/ffBrowser.js +218 -274
  166. package/lib/server/firefox/ffConnection.js +63 -84
  167. package/lib/server/firefox/ffExecutionContext.js +103 -77
  168. package/lib/server/firefox/ffInput.js +72 -63
  169. package/lib/server/firefox/ffNetworkManager.js +131 -110
  170. package/lib/server/firefox/ffPage.js +244 -302
  171. package/lib/server/firefox/firefox.js +76 -69
  172. package/lib/server/firefox/protocol.d.js +16 -0
  173. package/lib/server/formData.js +107 -35
  174. package/lib/server/frameSelectors.js +77 -111
  175. package/lib/server/frames.js +719 -855
  176. package/lib/server/har/harRecorder.js +85 -77
  177. package/lib/server/har/harTracer.js +288 -224
  178. package/lib/server/harBackend.js +157 -0
  179. package/lib/server/helper.js +56 -59
  180. package/lib/server/index.js +59 -106
  181. package/lib/server/input.js +136 -166
  182. package/lib/server/instrumentation.js +49 -44
  183. package/lib/server/javascript.js +157 -151
  184. package/lib/server/launchApp.js +92 -73
  185. package/lib/server/localUtils.js +211 -0
  186. package/lib/server/macEditingCommands.js +141 -137
  187. package/lib/server/network.js +263 -297
  188. package/lib/server/page.js +353 -432
  189. package/lib/server/pageBinding.js +88 -0
  190. package/lib/server/pipeTransport.js +49 -45
  191. package/lib/server/playwright.js +60 -67
  192. package/lib/server/progress.js +56 -51
  193. package/lib/server/protocolError.js +34 -31
  194. package/lib/server/recorder/chat.js +161 -0
  195. package/lib/server/recorder/contextRecorder.js +135 -148
  196. package/lib/server/recorder/recorderApp.js +129 -132
  197. package/lib/server/recorder/recorderCollection.js +57 -57
  198. package/lib/server/recorder/recorderFrontend.js +15 -4
  199. package/lib/server/recorder/recorderRunner.js +80 -100
  200. package/lib/server/recorder/recorderUtils.js +59 -72
  201. package/lib/server/recorder/throttledFile.js +42 -31
  202. package/lib/server/recorder.js +186 -190
  203. package/lib/server/registry/browserFetcher.js +107 -100
  204. package/lib/server/registry/dependencies.js +247 -198
  205. package/lib/server/registry/index.js +928 -709
  206. package/lib/server/registry/nativeDeps.js +1073 -461
  207. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  208. package/lib/server/screenshotter.js +166 -182
  209. package/lib/server/selectors.js +85 -46
  210. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  211. package/lib/server/socksInterceptor.js +62 -67
  212. package/lib/server/storageScript.js +154 -0
  213. package/lib/server/timeoutSettings.js +89 -0
  214. package/lib/server/trace/recorder/snapshotter.js +70 -88
  215. package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
  216. package/lib/server/trace/recorder/tracing.js +324 -327
  217. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  218. package/lib/server/trace/viewer/traceViewer.js +172 -137
  219. package/lib/server/transport.js +125 -133
  220. package/lib/server/types.js +26 -22
  221. package/lib/server/usKeyboardLayout.js +135 -545
  222. package/lib/server/utils/ascii.js +44 -0
  223. package/lib/server/utils/comparators.js +161 -0
  224. package/lib/server/utils/crypto.js +216 -0
  225. package/lib/server/utils/debug.js +47 -0
  226. package/lib/server/utils/debugLogger.js +114 -0
  227. package/lib/server/utils/env.js +68 -0
  228. package/lib/server/utils/eventsHelper.js +39 -0
  229. package/lib/server/utils/expectUtils.js +38 -0
  230. package/lib/server/utils/fileUtils.js +191 -0
  231. package/lib/server/utils/happyEyeballs.js +207 -0
  232. package/lib/server/utils/hostPlatform.js +109 -0
  233. package/lib/server/utils/httpServer.js +218 -0
  234. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  235. package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
  236. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  237. package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
  238. package/lib/server/utils/linuxUtils.js +71 -0
  239. package/lib/server/utils/network.js +217 -0
  240. package/lib/server/utils/nodePlatform.js +148 -0
  241. package/lib/server/utils/pipeTransport.js +84 -0
  242. package/lib/server/utils/processLauncher.js +238 -0
  243. package/lib/server/utils/profiler.js +65 -0
  244. package/lib/server/utils/socksProxy.js +511 -0
  245. package/lib/server/utils/spawnAsync.js +41 -0
  246. package/lib/server/utils/task.js +51 -0
  247. package/lib/server/utils/userAgent.js +98 -0
  248. package/lib/server/utils/wsServer.js +132 -0
  249. package/lib/server/utils/zipFile.js +74 -0
  250. package/lib/server/utils/zones.js +57 -0
  251. package/lib/server/webkit/protocol.d.js +16 -0
  252. package/lib/server/webkit/webkit.js +76 -63
  253. package/lib/server/webkit/wkAccessibility.js +161 -118
  254. package/lib/server/webkit/wkBrowser.js +163 -180
  255. package/lib/server/webkit/wkConnection.js +59 -83
  256. package/lib/server/webkit/wkExecutionContext.js +96 -73
  257. package/lib/server/webkit/wkInput.js +87 -75
  258. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  259. package/lib/server/webkit/wkPage.js +536 -645
  260. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  261. package/lib/server/webkit/wkWorkers.js +77 -77
  262. package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
  263. package/lib/utils/isomorphic/assert.js +31 -0
  264. package/lib/utils/isomorphic/builtins.js +90 -0
  265. package/lib/utils/isomorphic/colors.js +72 -0
  266. package/lib/utils/isomorphic/cssParser.js +123 -127
  267. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  268. package/lib/utils/isomorphic/headers.js +53 -0
  269. package/lib/utils/isomorphic/locatorGenerators.js +344 -349
  270. package/lib/utils/isomorphic/locatorParser.js +103 -106
  271. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  272. package/lib/utils/isomorphic/manualPromise.js +115 -0
  273. package/lib/utils/isomorphic/mimeType.js +453 -22
  274. package/lib/utils/isomorphic/multimap.js +81 -0
  275. package/lib/utils/isomorphic/rtti.js +43 -0
  276. package/lib/utils/isomorphic/selectorParser.js +183 -193
  277. package/lib/utils/isomorphic/semaphore.js +54 -0
  278. package/lib/utils/isomorphic/stackTrace.js +158 -0
  279. package/lib/utils/isomorphic/stringUtils.js +113 -106
  280. package/lib/utils/isomorphic/time.js +44 -0
  281. package/lib/utils/isomorphic/timeoutRunner.js +67 -0
  282. package/lib/utils/isomorphic/traceUtils.js +52 -32
  283. package/lib/utils/isomorphic/types.js +16 -0
  284. package/lib/utils/isomorphic/urlMatch.js +114 -71
  285. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  286. package/lib/utils.js +101 -0
  287. package/lib/utilsBundle.js +101 -76
  288. package/lib/utilsBundleImpl/index.js +114 -116
  289. package/lib/vite/htmlReport/index.html +26 -20
  290. package/lib/vite/recorder/assets/codeMirrorModule-DVQi6prl.js +24 -0
  291. package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
  292. package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
  293. package/lib/vite/recorder/index.html +2 -2
  294. package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
  295. package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
  296. package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
  297. package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
  298. package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
  299. package/lib/vite/traceViewer/index.html +4 -7
  300. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  301. package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
  302. package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
  303. package/lib/vite/traceViewer/uiMode.html +4 -7
  304. package/lib/zipBundle.js +32 -23
  305. package/lib/zipBundleImpl.js +4 -4
  306. package/package.json +7 -7
  307. package/types/protocol.d.ts +819 -127
  308. package/types/types.d.ts +196 -75
  309. package/bin/PrintDeps.exe +0 -0
  310. package/bin/README.md +0 -2
  311. package/lib/common/socksProxy.js +0 -569
  312. package/lib/common/timeoutSettings.js +0 -73
  313. package/lib/common/types.js +0 -5
  314. package/lib/image_tools/colorUtils.js +0 -98
  315. package/lib/image_tools/imageChannel.js +0 -70
  316. package/lib/protocol/transport.js +0 -82
  317. package/lib/server/ariaSnapshot.js +0 -33
  318. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
  319. package/lib/server/recorder/recorderInTraceViewer.js +0 -144
  320. package/lib/utils/ascii.js +0 -31
  321. package/lib/utils/comparators.js +0 -153
  322. package/lib/utils/crypto.js +0 -171
  323. package/lib/utils/debug.js +0 -46
  324. package/lib/utils/debugLogger.js +0 -91
  325. package/lib/utils/env.js +0 -49
  326. package/lib/utils/eventsHelper.js +0 -38
  327. package/lib/utils/expectUtils.js +0 -33
  328. package/lib/utils/fileUtils.js +0 -205
  329. package/lib/utils/happy-eyeballs.js +0 -194
  330. package/lib/utils/headers.js +0 -52
  331. package/lib/utils/hostPlatform.js +0 -139
  332. package/lib/utils/httpServer.js +0 -237
  333. package/lib/utils/index.js +0 -368
  334. package/lib/utils/isomorphic/recorderUtils.js +0 -227
  335. package/lib/utils/linuxUtils.js +0 -78
  336. package/lib/utils/manualPromise.js +0 -109
  337. package/lib/utils/multimap.js +0 -75
  338. package/lib/utils/network.js +0 -160
  339. package/lib/utils/processLauncher.js +0 -248
  340. package/lib/utils/profiler.js +0 -53
  341. package/lib/utils/rtti.js +0 -44
  342. package/lib/utils/semaphore.js +0 -51
  343. package/lib/utils/sequence.js +0 -64
  344. package/lib/utils/spawnAsync.js +0 -45
  345. package/lib/utils/stackTrace.js +0 -134
  346. package/lib/utils/task.js +0 -58
  347. package/lib/utils/time.js +0 -37
  348. package/lib/utils/timeoutRunner.js +0 -66
  349. package/lib/utils/traceUtils.js +0 -44
  350. package/lib/utils/userAgent.js +0 -105
  351. package/lib/utils/wsServer.js +0 -127
  352. package/lib/utils/zipFile.js +0 -75
  353. package/lib/utils/zones.js +0 -71
  354. package/lib/vite/recorder/assets/codeMirrorModule-AFvV6hAs.js +0 -24
  355. package/lib/vite/recorder/assets/index-_cTWgVuJ.js +0 -184
  356. package/lib/vite/traceViewer/assets/codeMirrorModule-KatbITLF.js +0 -24
  357. package/lib/vite/traceViewer/assets/inspectorTab-DdpLd2bb.js +0 -68
  358. package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
  359. package/lib/vite/traceViewer/assets/workbench-CdYbzWFD.js +0 -9
  360. package/lib/vite/traceViewer/embedded.6m3UZh7r.js +0 -2
  361. package/lib/vite/traceViewer/embedded.html +0 -18
  362. package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
  363. package/lib/vite/traceViewer/index.WUV-8boJ.js +0 -2
  364. package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
  365. package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
  366. package/lib/vite/traceViewer/recorder.OT2tVHgn.js +0 -2
  367. package/lib/vite/traceViewer/recorder.html +0 -17
  368. package/lib/vite/traceViewer/uiMode.BZBTyvGn.js +0 -5
  369. package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
  370. /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
  371. /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
  372. /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
  373. /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
@@ -1,222 +1,169 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var browserType_exports = {};
20
+ __export(browserType_exports, {
21
+ BrowserType: () => BrowserType
5
22
  });
6
- exports.BrowserType = void 0;
7
- var _browser3 = require("./browser");
8
- var _browserContext = require("./browserContext");
9
- var _channelOwner = require("./channelOwner");
10
- var _connection = require("./connection");
11
- var _events = require("./events");
12
- var _clientHelper = require("./clientHelper");
13
- var _utils = require("../utils");
14
- var _timeoutRunner = require("../utils/timeoutRunner");
15
- /**
16
- * Copyright (c) Microsoft Corporation.
17
- *
18
- * Licensed under the Apache License, Version 2.0 (the "License");
19
- * you may not use this file except in compliance with the License.
20
- * You may obtain a copy of the License at
21
- *
22
- * http://www.apache.org/licenses/LICENSE-2.0
23
- *
24
- * Unless required by applicable law or agreed to in writing, software
25
- * distributed under the License is distributed on an "AS IS" BASIS,
26
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
27
- * See the License for the specific language governing permissions and
28
- * limitations under the License.
29
- */
30
-
31
- // This is here just for api generation and checking.
32
-
33
- class BrowserType extends _channelOwner.ChannelOwner {
34
- constructor(...args) {
35
- super(...args);
36
- this._serverLauncher = void 0;
37
- this._contexts = new Set();
38
- this._playwright = void 0;
39
- // Instrumentation.
40
- this._defaultContextOptions = void 0;
41
- this._defaultContextTimeout = void 0;
42
- this._defaultContextNavigationTimeout = void 0;
43
- this._defaultLaunchOptions = void 0;
23
+ module.exports = __toCommonJS(browserType_exports);
24
+ var import_browser = require("./browser");
25
+ var import_browserContext = require("./browserContext");
26
+ var import_channelOwner = require("./channelOwner");
27
+ var import_clientHelper = require("./clientHelper");
28
+ var import_events = require("./events");
29
+ var import_assert = require("../utils/isomorphic/assert");
30
+ var import_headers = require("../utils/isomorphic/headers");
31
+ var import_time = require("../utils/isomorphic/time");
32
+ var import_timeoutRunner = require("../utils/isomorphic/timeoutRunner");
33
+ var import_webSocket = require("./webSocket");
34
+ class BrowserType extends import_channelOwner.ChannelOwner {
35
+ constructor() {
36
+ super(...arguments);
37
+ this._contexts = /* @__PURE__ */ new Set();
44
38
  }
45
39
  static from(browserType) {
46
40
  return browserType._object;
47
41
  }
48
42
  executablePath() {
49
- if (!this._initializer.executablePath) throw new Error('Browser is not supported on current platform');
43
+ if (!this._initializer.executablePath)
44
+ throw new Error("Browser is not supported on current platform");
50
45
  return this._initializer.executablePath;
51
46
  }
52
47
  name() {
53
48
  return this._initializer.name;
54
49
  }
55
50
  async launch(options = {}) {
56
- var _this$_defaultLaunchO;
57
- (0, _utils.assert)(!options.userDataDir, 'userDataDir option is not supported in `browserType.launch`. Use `browserType.launchPersistentContext` instead');
58
- (0, _utils.assert)(!options.port, 'Cannot specify a port without launching as a server.');
59
- const logger = options.logger || ((_this$_defaultLaunchO = this._defaultLaunchOptions) === null || _this$_defaultLaunchO === void 0 ? void 0 : _this$_defaultLaunchO.logger);
60
- options = {
61
- ...this._defaultLaunchOptions,
62
- ...options
63
- };
51
+ (0, import_assert.assert)(!options.userDataDir, "userDataDir option is not supported in `browserType.launch`. Use `browserType.launchPersistentContext` instead");
52
+ (0, import_assert.assert)(!options.port, "Cannot specify a port without launching as a server.");
53
+ const logger = options.logger || this._playwright._defaultLaunchOptions?.logger;
54
+ options = { ...this._playwright._defaultLaunchOptions, ...options };
64
55
  const launchOptions = {
65
56
  ...options,
66
- ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : undefined,
57
+ ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
67
58
  ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
68
- env: options.env ? (0, _clientHelper.envObjectToArray)(options.env) : undefined
59
+ env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0
69
60
  };
70
61
  return await this._wrapApiCall(async () => {
71
- const browser = _browser3.Browser.from((await this._channel.launch(launchOptions)).browser);
62
+ const browser = import_browser.Browser.from((await this._channel.launch(launchOptions)).browser);
72
63
  this._didLaunchBrowser(browser, options, logger);
73
64
  return browser;
74
65
  });
75
66
  }
76
67
  async launchServer(options = {}) {
77
- if (!this._serverLauncher) throw new Error('Launching server is not supported');
78
- options = {
79
- ...this._defaultLaunchOptions,
80
- ...options
81
- };
68
+ if (!this._serverLauncher)
69
+ throw new Error("Launching server is not supported");
70
+ options = { ...this._playwright._defaultLaunchOptions, ...options };
82
71
  return await this._serverLauncher.launchServer(options);
83
72
  }
84
73
  async launchPersistentContext(userDataDir, options = {}) {
85
- var _this$_defaultLaunchO2;
86
- const logger = options.logger || ((_this$_defaultLaunchO2 = this._defaultLaunchOptions) === null || _this$_defaultLaunchO2 === void 0 ? void 0 : _this$_defaultLaunchO2.logger);
87
- (0, _utils.assert)(!options.port, 'Cannot specify a port without launching as a server.');
88
- options = {
89
- ...this._defaultLaunchOptions,
90
- ...this._defaultContextOptions,
91
- ...options
92
- };
93
- const contextParams = await (0, _browserContext.prepareBrowserContextParams)(options);
74
+ const logger = options.logger || this._playwright._defaultLaunchOptions?.logger;
75
+ (0, import_assert.assert)(!options.port, "Cannot specify a port without launching as a server.");
76
+ options = { ...this._playwright._defaultLaunchOptions, ...this._playwright._defaultContextOptions, ...options };
77
+ const contextParams = await (0, import_browserContext.prepareBrowserContextParams)(this._platform, options);
94
78
  const persistentParams = {
95
79
  ...contextParams,
96
- ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : undefined,
80
+ ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
97
81
  ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
98
- env: options.env ? (0, _clientHelper.envObjectToArray)(options.env) : undefined,
82
+ env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0,
99
83
  channel: options.channel,
100
- userDataDir
84
+ userDataDir: this._platform.path().isAbsolute(userDataDir) || !userDataDir ? userDataDir : this._platform.path().resolve(userDataDir)
101
85
  };
102
86
  return await this._wrapApiCall(async () => {
103
87
  const result = await this._channel.launchPersistentContext(persistentParams);
104
- const context = _browserContext.BrowserContext.from(result.context);
88
+ const context = import_browserContext.BrowserContext.from(result.context);
105
89
  await this._didCreateContext(context, contextParams, options, logger);
106
90
  return context;
107
91
  });
108
92
  }
109
93
  async connect(optionsOrWsEndpoint, options) {
110
- if (typeof optionsOrWsEndpoint === 'string') return await this._connect({
111
- ...options,
112
- wsEndpoint: optionsOrWsEndpoint
113
- });
114
- (0, _utils.assert)(optionsOrWsEndpoint.wsEndpoint, 'options.wsEndpoint is required');
94
+ if (typeof optionsOrWsEndpoint === "string")
95
+ return await this._connect({ ...options, wsEndpoint: optionsOrWsEndpoint });
96
+ (0, import_assert.assert)(optionsOrWsEndpoint.wsEndpoint, "options.wsEndpoint is required");
115
97
  return await this._connect(optionsOrWsEndpoint);
116
98
  }
117
99
  async _connect(params) {
118
100
  const logger = params.logger;
119
101
  return await this._wrapApiCall(async () => {
120
- var _params$exposeNetwork;
121
- const deadline = params.timeout ? (0, _utils.monotonicTime)() + params.timeout : 0;
122
- const headers = {
123
- 'x-playwright-browser': this.name(),
124
- ...params.headers
125
- };
126
- const localUtils = this._connection.localUtils();
102
+ const deadline = params.timeout ? (0, import_time.monotonicTime)() + params.timeout : 0;
103
+ const headers = { "x-playwright-browser": this.name(), ...params.headers };
127
104
  const connectParams = {
128
105
  wsEndpoint: params.wsEndpoint,
129
106
  headers,
130
- exposeNetwork: (_params$exposeNetwork = params.exposeNetwork) !== null && _params$exposeNetwork !== void 0 ? _params$exposeNetwork : params._exposeNetwork,
107
+ exposeNetwork: params.exposeNetwork ?? params._exposeNetwork,
131
108
  slowMo: params.slowMo,
132
109
  timeout: params.timeout
133
110
  };
134
- if (params.__testHookRedirectPortForwarding) connectParams.socksProxyRedirectPortForTest = params.__testHookRedirectPortForwarding;
135
- const {
136
- pipe,
137
- headers: connectHeaders
138
- } = await localUtils._channel.connect(connectParams);
139
- const closePipe = () => pipe.close().catch(() => {});
140
- const connection = new _connection.Connection(localUtils, this._instrumentation);
141
- connection.markAsRemote();
142
- connection.on('close', closePipe);
111
+ if (params.__testHookRedirectPortForwarding)
112
+ connectParams.socksProxyRedirectPortForTest = params.__testHookRedirectPortForwarding;
113
+ const connection = await (0, import_webSocket.connectOverWebSocket)(this._connection, connectParams);
143
114
  let browser;
144
- let closeError;
145
- const onPipeClosed = reason => {
146
- // Emulate all pages, contexts and the browser closing upon disconnect.
147
- for (const context of ((_browser = browser) === null || _browser === void 0 ? void 0 : _browser.contexts()) || []) {
148
- var _browser;
149
- for (const page of context.pages()) page._onClose();
115
+ connection.on("close", () => {
116
+ for (const context of browser?.contexts() || []) {
117
+ for (const page of context.pages())
118
+ page._onClose();
150
119
  context._onClose();
151
120
  }
152
- connection.close(reason || closeError);
153
- // Give a chance to any API call promises to reject upon page/context closure.
154
- // This happens naturally when we receive page.onClose and browser.onClose from the server
155
- // in separate tasks. However, upon pipe closure we used to dispatch them all synchronously
156
- // here and promises did not have a chance to reject.
157
- // The order of rejects vs closure is a part of the API contract and our test runner
158
- // relies on it to attribute rejections to the right test.
159
- setTimeout(() => {
160
- var _browser2;
161
- return (_browser2 = browser) === null || _browser2 === void 0 ? void 0 : _browser2._didClose();
162
- }, 0);
163
- };
164
- pipe.on('closed', params => onPipeClosed(params.reason));
165
- connection.onmessage = message => this._wrapApiCall(() => pipe.send({
166
- message
167
- }).catch(() => onPipeClosed()), /* isInternal */true);
168
- pipe.on('message', ({
169
- message
170
- }) => {
171
- try {
172
- connection.dispatch(message);
173
- } catch (e) {
174
- closeError = String(e);
175
- closePipe();
176
- }
121
+ setTimeout(() => browser?._didClose(), 0);
177
122
  });
178
- const result = await (0, _timeoutRunner.raceAgainstDeadline)(async () => {
179
- // For tests.
180
- if (params.__testHookBeforeCreateBrowser) await params.__testHookBeforeCreateBrowser();
123
+ const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
124
+ if (params.__testHookBeforeCreateBrowser)
125
+ await params.__testHookBeforeCreateBrowser();
181
126
  const playwright = await connection.initializePlaywright();
182
127
  if (!playwright._initializer.preLaunchedBrowser) {
183
- closePipe();
184
- throw new Error('Malformed endpoint. Did you use BrowserType.launchServer method?');
128
+ connection.close();
129
+ throw new Error("Malformed endpoint. Did you use BrowserType.launchServer method?");
185
130
  }
186
131
  playwright._setSelectors(this._playwright.selectors);
187
- browser = _browser3.Browser.from(playwright._initializer.preLaunchedBrowser);
132
+ browser = import_browser.Browser.from(playwright._initializer.preLaunchedBrowser);
188
133
  this._didLaunchBrowser(browser, {}, logger);
189
134
  browser._shouldCloseConnectionOnClose = true;
190
- browser._connectHeaders = connectHeaders;
191
- browser.on(_events.Events.Browser.Disconnected, () => this._wrapApiCall(() => closePipe(), /* isInternal */true));
135
+ browser.on(import_events.Events.Browser.Disconnected, () => connection.close());
192
136
  return browser;
193
137
  }, deadline);
194
138
  if (!result.timedOut) {
195
139
  return result.result;
196
140
  } else {
197
- closePipe();
141
+ connection.close();
198
142
  throw new Error(`Timeout ${params.timeout}ms exceeded`);
199
143
  }
200
144
  });
201
145
  }
202
146
  async connectOverCDP(endpointURLOrOptions, options) {
203
- if (typeof endpointURLOrOptions === 'string') return await this._connectOverCDP(endpointURLOrOptions, options);
204
- const endpointURL = 'endpointURL' in endpointURLOrOptions ? endpointURLOrOptions.endpointURL : endpointURLOrOptions.wsEndpoint;
205
- (0, _utils.assert)(endpointURL, 'Cannot connect over CDP without wsEndpoint.');
147
+ if (typeof endpointURLOrOptions === "string")
148
+ return await this._connectOverCDP(endpointURLOrOptions, options);
149
+ const endpointURL = "endpointURL" in endpointURLOrOptions ? endpointURLOrOptions.endpointURL : endpointURLOrOptions.wsEndpoint;
150
+ (0, import_assert.assert)(endpointURL, "Cannot connect over CDP without wsEndpoint.");
206
151
  return await this.connectOverCDP(endpointURL, endpointURLOrOptions);
207
152
  }
208
153
  async _connectOverCDP(endpointURL, params = {}) {
209
- if (this.name() !== 'chromium') throw new Error('Connecting over CDP is only supported in Chromium.');
210
- const headers = params.headers ? (0, _utils.headersObjectToArray)(params.headers) : undefined;
154
+ if (this.name() !== "chromium")
155
+ throw new Error("Connecting over CDP is only supported in Chromium.");
156
+ const headers = params.headers ? (0, import_headers.headersObjectToArray)(params.headers) : void 0;
211
157
  const result = await this._channel.connectOverCDP({
212
158
  endpointURL,
213
159
  headers,
214
160
  slowMo: params.slowMo,
215
161
  timeout: params.timeout
216
162
  });
217
- const browser = _browser3.Browser.from(result.browser);
163
+ const browser = import_browser.Browser.from(result.browser);
218
164
  this._didLaunchBrowser(browser, {}, params.logger);
219
- if (result.defaultContext) await this._didCreateContext(_browserContext.BrowserContext.from(result.defaultContext), {}, {}, params.logger);
165
+ if (result.defaultContext)
166
+ await this._didCreateContext(import_browserContext.BrowserContext.from(result.defaultContext), {}, {}, params.logger);
220
167
  return browser;
221
168
  }
222
169
  _didLaunchBrowser(browser, browserOptions, logger) {
@@ -229,8 +176,10 @@ class BrowserType extends _channelOwner.ChannelOwner {
229
176
  context._browserType = this;
230
177
  this._contexts.add(context);
231
178
  context._setOptions(contextOptions, browserOptions);
232
- if (this._defaultContextTimeout !== undefined) context.setDefaultTimeout(this._defaultContextTimeout);
233
- if (this._defaultContextNavigationTimeout !== undefined) context.setDefaultNavigationTimeout(this._defaultContextNavigationTimeout);
179
+ if (this._playwright._defaultContextTimeout !== void 0)
180
+ context.setDefaultTimeout(this._playwright._defaultContextTimeout);
181
+ if (this._playwright._defaultContextNavigationTimeout !== void 0)
182
+ context.setDefaultNavigationTimeout(this._playwright._defaultContextNavigationTimeout);
234
183
  await this._instrumentation.runAfterCreateBrowserContext(context);
235
184
  }
236
185
  async _willCloseContext(context) {
@@ -238,4 +187,7 @@ class BrowserType extends _channelOwner.ChannelOwner {
238
187
  await this._instrumentation.runBeforeCloseBrowserContext(context);
239
188
  }
240
189
  }
241
- exports.BrowserType = BrowserType;
190
+ // Annotate the CommonJS export names for ESM import in node:
191
+ 0 && (module.exports = {
192
+ BrowserType
193
+ });
@@ -1,36 +1,34 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var cdpSession_exports = {};
20
+ __export(cdpSession_exports, {
21
+ CDPSession: () => CDPSession
5
22
  });
6
- exports.CDPSession = void 0;
7
- var _channelOwner = require("./channelOwner");
8
- /**
9
- * Copyright (c) Microsoft Corporation.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
22
- */
23
-
24
- class CDPSession extends _channelOwner.ChannelOwner {
23
+ module.exports = __toCommonJS(cdpSession_exports);
24
+ var import_channelOwner = require("./channelOwner");
25
+ class CDPSession extends import_channelOwner.ChannelOwner {
25
26
  static from(cdpSession) {
26
27
  return cdpSession._object;
27
28
  }
28
29
  constructor(parent, type, guid, initializer) {
29
30
  super(parent, type, guid, initializer);
30
- this._channel.on('event', ({
31
- method,
32
- params
33
- }) => {
31
+ this._channel.on("event", ({ method, params }) => {
34
32
  this.emit(method, params);
35
33
  });
36
34
  this.on = super.on;
@@ -40,14 +38,14 @@ class CDPSession extends _channelOwner.ChannelOwner {
40
38
  this.once = super.once;
41
39
  }
42
40
  async send(method, params) {
43
- const result = await this._channel.send({
44
- method,
45
- params
46
- });
41
+ const result = await this._channel.send({ method, params });
47
42
  return result.result;
48
43
  }
49
44
  async detach() {
50
45
  return await this._channel.detach();
51
46
  }
52
47
  }
53
- exports.CDPSession = CDPSession;
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ CDPSession
51
+ });