rebrowser-playwright-core 1.49.1 → 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 (372) 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 -597
  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 +351 -434
  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 -647
  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-C5j27SYZ.js → codeMirrorModule-DVQi6prl.js} +13 -13
  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 +181 -69
  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/index-m0XdVJHe.js +0 -184
  355. package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +0 -24
  356. package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +0 -68
  357. package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
  358. package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +0 -9
  359. package/lib/vite/traceViewer/embedded.CmarehFk.js +0 -2
  360. package/lib/vite/traceViewer/embedded.html +0 -18
  361. package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
  362. package/lib/vite/traceViewer/index.FBucu_gE.js +0 -2
  363. package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
  364. package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
  365. package/lib/vite/traceViewer/recorder.CW_rzcEp.js +0 -2
  366. package/lib/vite/traceViewer/recorder.html +0 -17
  367. package/lib/vite/traceViewer/uiMode.CDUVjusr.js +0 -5
  368. package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
  369. /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
  370. /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
  371. /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
  372. /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
@@ -1,127 +1,128 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var browserType_exports = {};
30
+ __export(browserType_exports, {
31
+ BrowserReadyState: () => BrowserReadyState,
32
+ BrowserType: () => BrowserType,
33
+ kNoXServerRunningError: () => kNoXServerRunningError
5
34
  });
6
- exports.kNoXServerRunningError = exports.BrowserType = exports.BrowserReadyState = void 0;
7
- var _fs = _interopRequireDefault(require("fs"));
8
- var os = _interopRequireWildcard(require("os"));
9
- var _path = _interopRequireDefault(require("path"));
10
- var _browserContext = require("./browserContext");
11
- var _registry = require("./registry");
12
- var _transport = require("./transport");
13
- var _processLauncher = require("../utils/processLauncher");
14
- var _pipeTransport = require("./pipeTransport");
15
- var _progress = require("./progress");
16
- var _timeoutSettings = require("../common/timeoutSettings");
17
- var _utils = require("../utils");
18
- var _fileUtils = require("../utils/fileUtils");
19
- var _helper = require("./helper");
20
- var _debugLogger = require("../utils/debugLogger");
21
- var _instrumentation = require("./instrumentation");
22
- var _protocolError = require("./protocolError");
23
- var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
24
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
- /**
28
- * Copyright (c) Microsoft Corporation.
29
- *
30
- * Licensed under the Apache License, Version 2.0 (the "License");
31
- * you may not use this file except in compliance with the License.
32
- * You may obtain a copy of the License at
33
- *
34
- * http://www.apache.org/licenses/LICENSE-2.0
35
- *
36
- * Unless required by applicable law or agreed to in writing, software
37
- * distributed under the License is distributed on an "AS IS" BASIS,
38
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
39
- * See the License for the specific language governing permissions and
40
- * limitations under the License.
41
- */
42
-
43
- const kNoXServerRunningError = exports.kNoXServerRunningError = 'Looks like you launched a headed browser without having a XServer running.\n' + 'Set either \'headless: true\' or use \'xvfb-run <your-playwright-app>\' before running Playwright.\n\n<3 Playwright Team';
35
+ module.exports = __toCommonJS(browserType_exports);
36
+ var import_fs = __toESM(require("fs"));
37
+ var import_os = __toESM(require("os"));
38
+ var import_path = __toESM(require("path"));
39
+ var import_browserContext = require("./browserContext");
40
+ var import_timeoutSettings = require("./timeoutSettings");
41
+ var import_debug = require("./utils/debug");
42
+ var import_assert = require("../utils/isomorphic/assert");
43
+ var import_manualPromise = require("../utils/isomorphic/manualPromise");
44
+ var import_fileUtils = require("./utils/fileUtils");
45
+ var import_helper = require("./helper");
46
+ var import_instrumentation = require("./instrumentation");
47
+ var import_pipeTransport = require("./pipeTransport");
48
+ var import_processLauncher = require("./utils/processLauncher");
49
+ var import_progress = require("./progress");
50
+ var import_protocolError = require("./protocolError");
51
+ var import_registry = require("./registry");
52
+ var import_socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
53
+ var import_transport = require("./transport");
54
+ var import_debugLogger = require("./utils/debugLogger");
55
+ const kNoXServerRunningError = "Looks like you launched a headed browser without having a XServer running.\nSet either 'headless: true' or use 'xvfb-run <your-playwright-app>' before running Playwright.\n\n<3 Playwright Team";
44
56
  class BrowserReadyState {
45
57
  constructor() {
46
- this._wsEndpoint = new _utils.ManualPromise();
58
+ this._wsEndpoint = new import_manualPromise.ManualPromise();
47
59
  }
48
60
  onBrowserExit() {
49
- // Unblock launch when browser prematurely exits.
50
- this._wsEndpoint.resolve(undefined);
61
+ this._wsEndpoint.resolve(void 0);
51
62
  }
52
63
  async waitUntilReady() {
53
64
  const wsEndpoint = await this._wsEndpoint;
54
- return {
55
- wsEndpoint
56
- };
65
+ return { wsEndpoint };
57
66
  }
58
67
  }
59
- exports.BrowserReadyState = BrowserReadyState;
60
- class BrowserType extends _instrumentation.SdkObject {
68
+ class BrowserType extends import_instrumentation.SdkObject {
61
69
  constructor(parent, browserName) {
62
- super(parent, 'browser-type');
63
- this._name = void 0;
70
+ super(parent, "browser-type");
64
71
  this._useBidi = false;
65
72
  this.attribution.browserType = this;
66
73
  this._name = browserName;
67
74
  }
68
75
  executablePath() {
69
- return _registry.registry.findExecutable(this._name).executablePath(this.attribution.playwright.options.sdkLanguage) || '';
76
+ return import_registry.registry.findExecutable(this._name).executablePath(this.attribution.playwright.options.sdkLanguage) || "";
70
77
  }
71
78
  name() {
72
79
  return this._name;
73
80
  }
74
81
  async launch(metadata, options, protocolLogger) {
75
82
  options = this._validateLaunchOptions(options);
76
- if (this._useBidi) options.useWebSocket = true;
77
- const controller = new _progress.ProgressController(metadata, this);
78
- controller.setLogName('browser');
79
- const browser = await controller.run(progress => {
83
+ if (this._useBidi)
84
+ options.useWebSocket = true;
85
+ const controller = new import_progress.ProgressController(metadata, this);
86
+ controller.setLogName("browser");
87
+ const browser = await controller.run((progress) => {
80
88
  const seleniumHubUrl = options.__testHookSeleniumRemoteURL || process.env.SELENIUM_REMOTE_URL;
81
- if (seleniumHubUrl) return this._launchWithSeleniumHub(progress, seleniumHubUrl, options);
82
- return this._innerLaunchWithRetries(progress, options, undefined, _helper.helper.debugProtocolLogger(protocolLogger)).catch(e => {
89
+ if (seleniumHubUrl)
90
+ return this._launchWithSeleniumHub(progress, seleniumHubUrl, options);
91
+ return this._innerLaunchWithRetries(progress, options, void 0, import_helper.helper.debugProtocolLogger(protocolLogger)).catch((e) => {
83
92
  throw this._rewriteStartupLog(e);
84
93
  });
85
- }, _timeoutSettings.TimeoutSettings.launchTimeout(options));
94
+ }, import_timeoutSettings.TimeoutSettings.launchTimeout(options));
86
95
  return browser;
87
96
  }
88
97
  async launchPersistentContext(metadata, userDataDir, options) {
89
98
  const launchOptions = this._validateLaunchOptions(options);
90
- if (this._useBidi) launchOptions.useWebSocket = true;
91
- const controller = new _progress.ProgressController(metadata, this);
92
- controller.setLogName('browser');
93
- const browser = await controller.run(async progress => {
94
- var _options$clientCertif;
95
- // Note: Any initial TLS requests will fail since we rely on the Page/Frames initialize which sets ignoreHTTPSErrors.
99
+ if (this._useBidi)
100
+ launchOptions.useWebSocket = true;
101
+ const controller = new import_progress.ProgressController(metadata, this);
102
+ controller.setLogName("browser");
103
+ const browser = await controller.run(async (progress) => {
96
104
  let clientCertificatesProxy;
97
- if ((_options$clientCertif = options.clientCertificates) !== null && _options$clientCertif !== void 0 && _options$clientCertif.length) {
98
- var _clientCertificatesPr;
99
- clientCertificatesProxy = new _socksClientCertificatesInterceptor.ClientCertificatesProxy(options);
100
- launchOptions.proxyOverride = await ((_clientCertificatesPr = clientCertificatesProxy) === null || _clientCertificatesPr === void 0 ? void 0 : _clientCertificatesPr.listen());
101
- options = {
102
- ...options
103
- };
105
+ if (options.clientCertificates?.length) {
106
+ clientCertificatesProxy = new import_socksClientCertificatesInterceptor.ClientCertificatesProxy(options);
107
+ launchOptions.proxyOverride = await clientCertificatesProxy?.listen();
108
+ options = { ...options };
104
109
  options.internalIgnoreHTTPSErrors = true;
105
110
  }
106
- progress.cleanupWhenAborted(() => {
107
- var _clientCertificatesPr2;
108
- return (_clientCertificatesPr2 = clientCertificatesProxy) === null || _clientCertificatesPr2 === void 0 ? void 0 : _clientCertificatesPr2.close();
109
- });
110
- const browser = await this._innerLaunchWithRetries(progress, launchOptions, options, _helper.helper.debugProtocolLogger(), userDataDir).catch(e => {
111
+ progress.cleanupWhenAborted(() => clientCertificatesProxy?.close());
112
+ const browser2 = await this._innerLaunchWithRetries(progress, launchOptions, options, import_helper.helper.debugProtocolLogger(), userDataDir).catch((e) => {
111
113
  throw this._rewriteStartupLog(e);
112
114
  });
113
- browser._defaultContext._clientCertificatesProxy = clientCertificatesProxy;
114
- return browser;
115
- }, _timeoutSettings.TimeoutSettings.launchTimeout(launchOptions));
115
+ browser2._defaultContext._clientCertificatesProxy = clientCertificatesProxy;
116
+ return browser2;
117
+ }, import_timeoutSettings.TimeoutSettings.launchTimeout(launchOptions));
116
118
  return browser._defaultContext;
117
119
  }
118
120
  async _innerLaunchWithRetries(progress, options, persistent, protocolLogger, userDataDir) {
119
121
  try {
120
122
  return await this._innerLaunch(progress, options, persistent, protocolLogger, userDataDir);
121
123
  } catch (error) {
122
- // @see https://github.com/microsoft/playwright/issues/5214
123
- const errorMessage = typeof error === 'object' && typeof error.message === 'string' ? error.message : '';
124
- if (errorMessage.includes('Inconsistency detected by ld.so')) {
124
+ const errorMessage = typeof error === "object" && typeof error.message === "string" ? error.message : "";
125
+ if (errorMessage.includes("Inconsistency detected by ld.so")) {
125
126
  progress.log(`<restarting browser due to hitting race condition in glibc>`);
126
127
  return this._innerLaunch(progress, options, persistent, protocolLogger, userDataDir);
127
128
  }
@@ -129,18 +130,14 @@ class BrowserType extends _instrumentation.SdkObject {
129
130
  }
130
131
  }
131
132
  async _innerLaunch(progress, options, persistent, protocolLogger, maybeUserDataDir) {
132
- options.proxy = options.proxy ? (0, _browserContext.normalizeProxySettings)(options.proxy) : undefined;
133
- const browserLogsCollector = new _debugLogger.RecentLogsCollector();
134
- const {
135
- browserProcess,
136
- userDataDir,
137
- artifactsDir,
138
- transport
139
- } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, maybeUserDataDir);
140
- if (options.__testHookBeforeCreateBrowser) await options.__testHookBeforeCreateBrowser();
133
+ options.proxy = options.proxy ? (0, import_browserContext.normalizeProxySettings)(options.proxy) : void 0;
134
+ const browserLogsCollector = new import_debugLogger.RecentLogsCollector();
135
+ const { browserProcess, userDataDir, artifactsDir, transport } = await this._launchProcess(progress, options, !!persistent, browserLogsCollector, maybeUserDataDir);
136
+ if (options.__testHookBeforeCreateBrowser)
137
+ await options.__testHookBeforeCreateBrowser();
141
138
  const browserOptions = {
142
139
  name: this._name,
143
- isChromium: this._name === 'chromium',
140
+ isChromium: this._name === "chromium",
144
141
  channel: options.channel,
145
142
  slowMo: options.slowMo,
146
143
  persistent,
@@ -153,19 +150,19 @@ class BrowserType extends _instrumentation.SdkObject {
153
150
  proxy: options.proxy,
154
151
  protocolLogger,
155
152
  browserLogsCollector,
156
- wsEndpoint: options.useWebSocket ? transport.wsEndpoint : undefined,
153
+ wsEndpoint: options.useWebSocket ? transport.wsEndpoint : void 0,
157
154
  originalLaunchOptions: options
158
155
  };
159
- if (persistent) (0, _browserContext.validateBrowserContextOptions)(persistent, browserOptions);
156
+ if (persistent)
157
+ (0, import_browserContext.validateBrowserContextOptions)(persistent, browserOptions);
160
158
  copyTestHooks(options, browserOptions);
161
159
  const browser = await this.connectToTransport(transport, browserOptions);
162
160
  browser._userDataDirForTest = userDataDir;
163
- // We assume no control when using custom arguments, and do not prepare the default context in that case.
164
- if (persistent && !options.ignoreAllDefaultArgs) await browser._defaultContext._loadDefaultContext(progress);
161
+ if (persistent && !options.ignoreAllDefaultArgs)
162
+ await browser._defaultContext._loadDefaultContext(progress);
165
163
  return browser;
166
164
  }
167
165
  async _launchProcess(progress, options, isPersistent, browserLogsCollector, userDataDir) {
168
- var _await$readyState$wai;
169
166
  const {
170
167
  ignoreDefaultArgs,
171
168
  ignoreAllDefaultArgs,
@@ -175,164 +172,155 @@ class BrowserType extends _instrumentation.SdkObject {
175
172
  handleSIGTERM = true,
176
173
  handleSIGHUP = true
177
174
  } = options;
178
- const env = options.env ? (0, _processLauncher.envArrayToObject)(options.env) : process.env;
175
+ const env = options.env ? (0, import_processLauncher.envArrayToObject)(options.env) : process.env;
179
176
  await this._createArtifactDirs(options);
180
177
  const tempDirectories = [];
181
- const artifactsDir = await _fs.default.promises.mkdtemp(_path.default.join(os.tmpdir(), 'playwright-artifacts-'));
178
+ const artifactsDir = await import_fs.default.promises.mkdtemp(import_path.default.join(import_os.default.tmpdir(), "playwright-artifacts-"));
182
179
  tempDirectories.push(artifactsDir);
183
180
  if (userDataDir) {
184
- // Firefox bails if the profile directory does not exist, Chrome creates it. We ensure consistent behavior here.
185
- if (!(await (0, _fileUtils.existsAsync)(userDataDir))) await _fs.default.promises.mkdir(userDataDir, {
186
- recursive: true,
187
- mode: 0o700
188
- });
181
+ (0, import_assert.assert)(import_path.default.isAbsolute(userDataDir), "userDataDir must be an absolute path");
182
+ if (!await (0, import_fileUtils.existsAsync)(userDataDir))
183
+ await import_fs.default.promises.mkdir(userDataDir, { recursive: true, mode: 448 });
189
184
  } else {
190
- userDataDir = await _fs.default.promises.mkdtemp(_path.default.join(os.tmpdir(), `playwright_${this._name}dev_profile-`));
185
+ userDataDir = await import_fs.default.promises.mkdtemp(import_path.default.join(import_os.default.tmpdir(), `playwright_${this._name}dev_profile-`));
191
186
  tempDirectories.push(userDataDir);
192
187
  }
193
188
  await this.prepareUserDataDir(options, userDataDir);
194
189
  const browserArguments = [];
195
- if (ignoreAllDefaultArgs) browserArguments.push(...args);else if (ignoreDefaultArgs) browserArguments.push(...this.defaultArgs(options, isPersistent, userDataDir).filter(arg => ignoreDefaultArgs.indexOf(arg) === -1));else browserArguments.push(...this.defaultArgs(options, isPersistent, userDataDir));
190
+ if (ignoreAllDefaultArgs)
191
+ browserArguments.push(...args);
192
+ else if (ignoreDefaultArgs)
193
+ browserArguments.push(...this.defaultArgs(options, isPersistent, userDataDir).filter((arg) => ignoreDefaultArgs.indexOf(arg) === -1));
194
+ else
195
+ browserArguments.push(...this.defaultArgs(options, isPersistent, userDataDir));
196
196
  let executable;
197
197
  if (executablePath) {
198
- if (!(await (0, _fileUtils.existsAsync)(executablePath))) throw new Error(`Failed to launch ${this._name} because executable doesn't exist at ${executablePath}`);
198
+ if (!await (0, import_fileUtils.existsAsync)(executablePath))
199
+ throw new Error(`Failed to launch ${this._name} because executable doesn't exist at ${executablePath}`);
199
200
  executable = executablePath;
200
201
  } else {
201
- const registryExecutable = _registry.registry.findExecutable(this.getExecutableName(options));
202
- if (!registryExecutable || registryExecutable.browserName !== this._name) throw new Error(`Unsupported ${this._name} channel "${options.channel}"`);
202
+ const registryExecutable = import_registry.registry.findExecutable(this.getExecutableName(options));
203
+ if (!registryExecutable || registryExecutable.browserName !== this._name)
204
+ throw new Error(`Unsupported ${this._name} channel "${options.channel}"`);
203
205
  executable = registryExecutable.executablePathOrDie(this.attribution.playwright.options.sdkLanguage);
204
- await _registry.registry.validateHostRequirementsForExecutablesIfNeeded([registryExecutable], this.attribution.playwright.options.sdkLanguage);
206
+ await import_registry.registry.validateHostRequirementsForExecutablesIfNeeded([registryExecutable], this.attribution.playwright.options.sdkLanguage);
205
207
  }
206
208
  const readyState = this.readyState(options);
207
- // Note: it is important to define these variables before launchProcess, so that we don't get
208
- // "Cannot access 'browserServer' before initialization" if something went wrong.
209
- let transport = undefined;
210
- let browserProcess = undefined;
211
- const {
212
- launchedProcess,
213
- gracefullyClose,
214
- kill
215
- } = await (0, _processLauncher.launchProcess)({
209
+ let transport = void 0;
210
+ let browserProcess = void 0;
211
+ const { launchedProcess, gracefullyClose, kill } = await (0, import_processLauncher.launchProcess)({
216
212
  command: executable,
217
213
  args: browserArguments,
218
214
  env: this.amendEnvironment(env, userDataDir, executable, browserArguments),
219
215
  handleSIGINT,
220
216
  handleSIGTERM,
221
217
  handleSIGHUP,
222
- log: message => {
223
- readyState === null || readyState === void 0 || readyState.onBrowserOutput(message);
218
+ log: (message) => {
219
+ readyState?.onBrowserOutput(message);
224
220
  progress.log(message);
225
221
  browserLogsCollector.log(message);
226
222
  },
227
- stdio: 'pipe',
223
+ stdio: "pipe",
228
224
  tempDirectories,
229
225
  attemptToGracefullyClose: async () => {
230
- if (options.__testHookGracefullyClose) await options.__testHookGracefullyClose();
231
- // We try to gracefully close to prevent crash reporting and core dumps.
232
- // Note that it's fine to reuse the pipe transport, since
233
- // our connection ignores kBrowserCloseMessageId.
226
+ if (options.__testHookGracefullyClose)
227
+ await options.__testHookGracefullyClose();
234
228
  this.attemptToGracefullyCloseBrowser(transport);
235
229
  },
236
230
  onExit: (exitCode, signal) => {
237
- // Unblock launch when browser prematurely exits.
238
- readyState === null || readyState === void 0 || readyState.onBrowserExit();
239
- if (browserProcess && browserProcess.onclose) browserProcess.onclose(exitCode, signal);
231
+ readyState?.onBrowserExit();
232
+ if (browserProcess && browserProcess.onclose)
233
+ browserProcess.onclose(exitCode, signal);
240
234
  }
241
235
  });
242
236
  async function closeOrKill(timeout) {
243
237
  let timer;
244
238
  try {
245
- await Promise.race([gracefullyClose(), new Promise((resolve, reject) => timer = setTimeout(reject, timeout))]);
239
+ await Promise.race([
240
+ gracefullyClose(),
241
+ new Promise((resolve, reject) => timer = setTimeout(reject, timeout))
242
+ ]);
246
243
  } catch (ignored) {
247
- await kill().catch(ignored => {}); // Make sure to await actual process exit.
244
+ await kill().catch((ignored2) => {
245
+ });
248
246
  } finally {
249
247
  clearTimeout(timer);
250
248
  }
251
249
  }
252
250
  browserProcess = {
253
- onclose: undefined,
251
+ onclose: void 0,
254
252
  process: launchedProcess,
255
- close: () => closeOrKill(options.__testHookBrowserCloseTimeout || _timeoutSettings.DEFAULT_TIMEOUT),
253
+ close: () => closeOrKill(options.__testHookBrowserCloseTimeout || import_timeoutSettings.DEFAULT_TIMEOUT),
256
254
  kill
257
255
  };
258
256
  progress.cleanupWhenAborted(() => closeOrKill(progress.timeUntilDeadline()));
259
- const wsEndpoint = (_await$readyState$wai = await (readyState === null || readyState === void 0 ? void 0 : readyState.waitUntilReady())) === null || _await$readyState$wai === void 0 ? void 0 : _await$readyState$wai.wsEndpoint;
257
+ const wsEndpoint = (await readyState?.waitUntilReady())?.wsEndpoint;
260
258
  if (options.useWebSocket) {
261
- transport = await _transport.WebSocketTransport.connect(progress, wsEndpoint);
259
+ transport = await import_transport.WebSocketTransport.connect(progress, wsEndpoint);
262
260
  } else {
263
261
  const stdio = launchedProcess.stdio;
264
- transport = new _pipeTransport.PipeTransport(stdio[3], stdio[4]);
262
+ transport = new import_pipeTransport.PipeTransport(stdio[3], stdio[4]);
265
263
  }
266
- return {
267
- browserProcess,
268
- artifactsDir,
269
- userDataDir,
270
- transport
271
- };
264
+ return { browserProcess, artifactsDir, userDataDir, transport };
272
265
  }
273
266
  async _createArtifactDirs(options) {
274
- if (options.downloadsPath) await _fs.default.promises.mkdir(options.downloadsPath, {
275
- recursive: true
276
- });
277
- if (options.tracesDir) await _fs.default.promises.mkdir(options.tracesDir, {
278
- recursive: true
279
- });
267
+ if (options.downloadsPath)
268
+ await import_fs.default.promises.mkdir(options.downloadsPath, { recursive: true });
269
+ if (options.tracesDir)
270
+ await import_fs.default.promises.mkdir(options.tracesDir, { recursive: true });
280
271
  }
281
- async connectOverCDP(metadata, endpointURL, options, timeout) {
282
- throw new Error('CDP connections are only supported by Chromium');
272
+ async connectOverCDP(metadata, endpointURL, options) {
273
+ throw new Error("CDP connections are only supported by Chromium");
283
274
  }
284
275
  async _launchWithSeleniumHub(progress, hubUrl, options) {
285
- throw new Error('Connecting to SELENIUM_REMOTE_URL is only supported by Chromium');
276
+ throw new Error("Connecting to SELENIUM_REMOTE_URL is only supported by Chromium");
286
277
  }
287
278
  _validateLaunchOptions(options) {
288
- const {
289
- devtools = false
290
- } = options;
291
- let {
292
- headless = !devtools,
293
- downloadsPath,
294
- proxy
295
- } = options;
296
- if ((0, _utils.debugMode)()) headless = false;
297
- if (downloadsPath && !_path.default.isAbsolute(downloadsPath)) downloadsPath = _path.default.join(process.cwd(), downloadsPath);
298
- if (this.attribution.playwright.options.socksProxyPort) proxy = {
299
- server: `socks5://127.0.0.1:${this.attribution.playwright.options.socksProxyPort}`
300
- };
301
- return {
302
- ...options,
303
- devtools,
304
- headless,
305
- downloadsPath,
306
- proxy
307
- };
279
+ const { devtools = false } = options;
280
+ let { headless = !devtools, downloadsPath, proxy } = options;
281
+ if ((0, import_debug.debugMode)())
282
+ headless = false;
283
+ if (downloadsPath && !import_path.default.isAbsolute(downloadsPath))
284
+ downloadsPath = import_path.default.join(process.cwd(), downloadsPath);
285
+ if (this.attribution.playwright.options.socksProxyPort)
286
+ proxy = { server: `socks5://127.0.0.1:${this.attribution.playwright.options.socksProxyPort}` };
287
+ return { ...options, devtools, headless, downloadsPath, proxy };
308
288
  }
309
289
  _createUserDataDirArgMisuseError(userDataDirArg) {
310
290
  switch (this.attribution.playwright.options.sdkLanguage) {
311
- case 'java':
291
+ case "java":
312
292
  return new Error(`Pass userDataDir parameter to 'BrowserType.launchPersistentContext(userDataDir, options)' instead of specifying '${userDataDirArg}' argument`);
313
- case 'python':
293
+ case "python":
314
294
  return new Error(`Pass user_data_dir parameter to 'browser_type.launch_persistent_context(user_data_dir, **kwargs)' instead of specifying '${userDataDirArg}' argument`);
315
- case 'csharp':
295
+ case "csharp":
316
296
  return new Error(`Pass userDataDir parameter to 'BrowserType.LaunchPersistentContextAsync(userDataDir, options)' instead of specifying '${userDataDirArg}' argument`);
317
297
  default:
318
298
  return new Error(`Pass userDataDir parameter to 'browserType.launchPersistentContext(userDataDir, options)' instead of specifying '${userDataDirArg}' argument`);
319
299
  }
320
300
  }
321
301
  _rewriteStartupLog(error) {
322
- if (!(0, _protocolError.isProtocolError)(error)) return error;
302
+ if (!(0, import_protocolError.isProtocolError)(error))
303
+ return error;
323
304
  return this.doRewriteStartupLog(error);
324
305
  }
325
306
  readyState(options) {
326
- return undefined;
307
+ return void 0;
308
+ }
309
+ async prepareUserDataDir(options, userDataDir) {
327
310
  }
328
- async prepareUserDataDir(options, userDataDir) {}
329
311
  getExecutableName(options) {
330
312
  return options.channel || this._name;
331
313
  }
332
314
  }
333
- exports.BrowserType = BrowserType;
334
315
  function copyTestHooks(from, to) {
335
316
  for (const [key, value] of Object.entries(from)) {
336
- if (key.startsWith('__testHook')) to[key] = value;
317
+ if (key.startsWith("__testHook"))
318
+ to[key] = value;
337
319
  }
338
- }
320
+ }
321
+ // Annotate the CommonJS export names for ESM import in node:
322
+ 0 && (module.exports = {
323
+ BrowserReadyState,
324
+ BrowserType,
325
+ kNoXServerRunningError
326
+ });
@@ -0,0 +1,82 @@
1
+ "use strict";
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 callLog_exports = {};
20
+ __export(callLog_exports, {
21
+ compressCallLog: () => compressCallLog,
22
+ findRepeatedSubsequencesForTest: () => findRepeatedSubsequencesForTest
23
+ });
24
+ module.exports = __toCommonJS(callLog_exports);
25
+ function compressCallLog(log) {
26
+ const lines = [];
27
+ for (const block of findRepeatedSubsequences(log)) {
28
+ for (let i = 0; i < block.sequence.length; i++) {
29
+ const line = block.sequence[i];
30
+ const leadingWhitespace = line.match(/^\s*/);
31
+ const whitespacePrefix = " " + leadingWhitespace?.[0] || "";
32
+ const countPrefix = `${block.count} \xD7 `;
33
+ if (block.count > 1 && i === 0)
34
+ lines.push(whitespacePrefix + countPrefix + line.trim());
35
+ else if (block.count > 1)
36
+ lines.push(whitespacePrefix + " ".repeat(countPrefix.length - 2) + "- " + line.trim());
37
+ else
38
+ lines.push(whitespacePrefix + "- " + line.trim());
39
+ }
40
+ }
41
+ return lines;
42
+ }
43
+ function findRepeatedSubsequences(s) {
44
+ const n = s.length;
45
+ const result = [];
46
+ let i = 0;
47
+ const arraysEqual = (a1, a2) => {
48
+ if (a1.length !== a2.length)
49
+ return false;
50
+ for (let j = 0; j < a1.length; j++) {
51
+ if (a1[j] !== a2[j])
52
+ return false;
53
+ }
54
+ return true;
55
+ };
56
+ while (i < n) {
57
+ let maxRepeatCount = 1;
58
+ let maxRepeatSubstr = [s[i]];
59
+ let maxRepeatLength = 1;
60
+ for (let p = 1; p <= n - i; p++) {
61
+ const substr = s.slice(i, i + p);
62
+ let k = 1;
63
+ while (i + p * k <= n && arraysEqual(s.slice(i + p * (k - 1), i + p * k), substr))
64
+ k += 1;
65
+ k -= 1;
66
+ if (k > 1 && k * p > maxRepeatCount * maxRepeatLength) {
67
+ maxRepeatCount = k;
68
+ maxRepeatSubstr = substr;
69
+ maxRepeatLength = p;
70
+ }
71
+ }
72
+ result.push({ sequence: maxRepeatSubstr, count: maxRepeatCount });
73
+ i += maxRepeatLength * maxRepeatCount;
74
+ }
75
+ return result;
76
+ }
77
+ const findRepeatedSubsequencesForTest = findRepeatedSubsequences;
78
+ // Annotate the CommonJS export names for ESM import in node:
79
+ 0 && (module.exports = {
80
+ compressCallLog,
81
+ findRepeatedSubsequencesForTest
82
+ });