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,51 +1,58 @@
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 download_exports = {};
30
+ __export(download_exports, {
31
+ Download: () => Download
5
32
  });
6
- exports.Download = void 0;
7
- var _path = _interopRequireDefault(require("path"));
8
- var _page = require("./page");
9
- var _utils = require("../utils");
10
- var _artifact = require("./artifact");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- /**
13
- * Copyright (c) Microsoft Corporation.
14
- *
15
- * Licensed under the Apache License, Version 2.0 (the "License");
16
- * you may not use this file except in compliance with the License.
17
- * You may obtain a copy of the License at
18
- *
19
- * http://www.apache.org/licenses/LICENSE-2.0
20
- *
21
- * Unless required by applicable law or agreed to in writing, software
22
- * distributed under the License is distributed on an "AS IS" BASIS,
23
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
- * See the License for the specific language governing permissions and
25
- * limitations under the License.
26
- */
27
-
33
+ module.exports = __toCommonJS(download_exports);
34
+ var import_path = __toESM(require("path"));
35
+ var import_page = require("./page");
36
+ var import_utils = require("../utils");
37
+ var import_artifact = require("./artifact");
28
38
  class Download {
29
39
  constructor(page, downloadsPath, uuid, url, suggestedFilename) {
30
- this.artifact = void 0;
31
- this.url = void 0;
32
- this._page = void 0;
33
- this._suggestedFilename = void 0;
34
- const unaccessibleErrorMessage = page._browserContext._options.acceptDownloads === 'deny' ? 'Pass { acceptDownloads: true } when you are creating your browser context.' : undefined;
35
- this.artifact = new _artifact.Artifact(page, _path.default.join(downloadsPath, uuid), unaccessibleErrorMessage, () => {
40
+ const unaccessibleErrorMessage = page._browserContext._options.acceptDownloads === "deny" ? "Pass { acceptDownloads: true } when you are creating your browser context." : void 0;
41
+ this.artifact = new import_artifact.Artifact(page, import_path.default.join(downloadsPath, uuid), unaccessibleErrorMessage, () => {
36
42
  return this._page._browserContext.cancelDownload(uuid);
37
43
  });
38
44
  this._page = page;
39
45
  this.url = url;
40
46
  this._suggestedFilename = suggestedFilename;
41
47
  page._browserContext._downloads.add(this);
42
- if (suggestedFilename !== undefined) this._fireDownloadEvent();
48
+ if (suggestedFilename !== void 0)
49
+ this._fireDownloadEvent();
43
50
  }
44
51
  page() {
45
52
  return this._page;
46
53
  }
47
54
  _filenameSuggested(suggestedFilename) {
48
- (0, _utils.assert)(this._suggestedFilename === undefined);
55
+ (0, import_utils.assert)(this._suggestedFilename === void 0);
49
56
  this._suggestedFilename = suggestedFilename;
50
57
  this._fireDownloadEvent();
51
58
  }
@@ -54,7 +61,10 @@ class Download {
54
61
  }
55
62
  _fireDownloadEvent() {
56
63
  this._page.instrumentation.onDownload(this._page, this);
57
- this._page.emit(_page.Page.Events.Download, this);
64
+ this._page.emit(import_page.Page.Events.Download, this);
58
65
  }
59
66
  }
60
- exports.Download = Download;
67
+ // Annotate the CommonJS export names for ESM import in node:
68
+ 0 && (module.exports = {
69
+ Download
70
+ });
@@ -1,117 +1,111 @@
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 electron_exports = {};
30
+ __export(electron_exports, {
31
+ Electron: () => Electron,
32
+ ElectronApplication: () => ElectronApplication
5
33
  });
6
- exports.ElectronApplication = exports.Electron = void 0;
7
- var _fs = _interopRequireDefault(require("fs"));
8
- var _os = _interopRequireDefault(require("os"));
9
- var _path = _interopRequireDefault(require("path"));
10
- var _crBrowser = require("../chromium/crBrowser");
11
- var _crConnection = require("../chromium/crConnection");
12
- var _crExecutionContext = require("../chromium/crExecutionContext");
13
- var js = _interopRequireWildcard(require("../javascript"));
14
- var _timeoutSettings = require("../../common/timeoutSettings");
15
- var _utils = require("../../utils");
16
- var _transport = require("../transport");
17
- var _processLauncher = require("../../utils/processLauncher");
18
- var _browserContext = require("../browserContext");
19
- var _progress = require("../progress");
20
- var _helper = require("../helper");
21
- var _eventsHelper = require("../../utils/eventsHelper");
22
- var readline = _interopRequireWildcard(require("readline"));
23
- var _debugLogger = require("../../utils/debugLogger");
24
- var _instrumentation = require("../instrumentation");
25
- var _crProtocolHelper = require("../chromium/crProtocolHelper");
26
- var _console = require("../console");
27
- 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); }
28
- 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; }
29
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
- /**
31
- * Copyright (c) Microsoft Corporation.
32
- *
33
- * Licensed under the Apache License, Version 2.0 (the "License");
34
- * you may not use this file except in compliance with the License.
35
- * You may obtain a copy of the License at
36
- *
37
- * http://www.apache.org/licenses/LICENSE-2.0
38
- *
39
- * Unless required by applicable law or agreed to in writing, software
40
- * distributed under the License is distributed on an "AS IS" BASIS,
41
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
42
- * See the License for the specific language governing permissions and
43
- * limitations under the License.
44
- */
45
-
46
- const ARTIFACTS_FOLDER = _path.default.join(_os.default.tmpdir(), 'playwright-artifacts-');
47
- class ElectronApplication extends _instrumentation.SdkObject {
48
- constructor(parent, browser, nodeConnection, process) {
49
- super(parent, 'electron-app');
50
- this._browserContext = void 0;
51
- this._nodeConnection = void 0;
52
- this._nodeSession = void 0;
53
- this._nodeExecutionContext = void 0;
54
- this._nodeElectronHandlePromise = new _utils.ManualPromise();
55
- this._timeoutSettings = new _timeoutSettings.TimeoutSettings();
56
- this._process = void 0;
57
- this._process = process;
34
+ module.exports = __toCommonJS(electron_exports);
35
+ var import_fs = __toESM(require("fs"));
36
+ var import_os = __toESM(require("os"));
37
+ var import_path = __toESM(require("path"));
38
+ var readline = __toESM(require("readline"));
39
+ var import_timeoutSettings = require("../timeoutSettings");
40
+ var import_utils = require("../../utils");
41
+ var import_ascii = require("../utils/ascii");
42
+ var import_debugLogger = require("../utils/debugLogger");
43
+ var import_eventsHelper = require("../utils/eventsHelper");
44
+ var import_browserContext = require("../browserContext");
45
+ var import_crBrowser = require("../chromium/crBrowser");
46
+ var import_crConnection = require("../chromium/crConnection");
47
+ var import_crExecutionContext = require("../chromium/crExecutionContext");
48
+ var import_crProtocolHelper = require("../chromium/crProtocolHelper");
49
+ var import_console = require("../console");
50
+ var import_helper = require("../helper");
51
+ var import_instrumentation = require("../instrumentation");
52
+ var js = __toESM(require("../javascript"));
53
+ var import_processLauncher = require("../utils/processLauncher");
54
+ var import_progress = require("../progress");
55
+ var import_transport = require("../transport");
56
+ const ARTIFACTS_FOLDER = import_path.default.join(import_os.default.tmpdir(), "playwright-artifacts-");
57
+ class ElectronApplication extends import_instrumentation.SdkObject {
58
+ constructor(parent, browser, nodeConnection, process2) {
59
+ super(parent, "electron-app");
60
+ this._nodeElectronHandlePromise = new import_utils.ManualPromise();
61
+ this._timeoutSettings = new import_timeoutSettings.TimeoutSettings();
62
+ this._process = process2;
58
63
  this._browserContext = browser._defaultContext;
59
64
  this._nodeConnection = nodeConnection;
60
65
  this._nodeSession = nodeConnection.rootSession;
61
- this._nodeSession.on('Runtime.executionContextCreated', async event => {
62
- if (!event.context.auxData || !event.context.auxData.isDefault) return;
63
- const crExecutionContext = new _crExecutionContext.CRExecutionContext(this._nodeSession, event.context);
64
- this._nodeExecutionContext = new js.ExecutionContext(this, crExecutionContext, 'electron');
65
- const {
66
- result: remoteObject
67
- } = await crExecutionContext._client.send('Runtime.evaluate', {
66
+ this._nodeSession.on("Runtime.executionContextCreated", async (event) => {
67
+ if (!event.context.auxData || !event.context.auxData.isDefault)
68
+ return;
69
+ const crExecutionContext = new import_crExecutionContext.CRExecutionContext(this._nodeSession, event.context);
70
+ this._nodeExecutionContext = new js.ExecutionContext(this, crExecutionContext, "electron");
71
+ const { result: remoteObject } = await crExecutionContext._client.send("Runtime.evaluate", {
68
72
  expression: `require('electron')`,
69
73
  contextId: event.context.id,
70
74
  // Needed after Electron 28 to get access to require: https://github.com/microsoft/playwright/issues/28048
71
75
  includeCommandLineAPI: true
72
76
  });
73
- this._nodeElectronHandlePromise.resolve(new js.JSHandle(this._nodeExecutionContext, 'object', 'ElectronModule', remoteObject.objectId));
77
+ this._nodeElectronHandlePromise.resolve(new js.JSHandle(this._nodeExecutionContext, "object", "ElectronModule", remoteObject.objectId));
74
78
  });
75
- this._nodeSession.on('Runtime.consoleAPICalled', event => this._onConsoleAPI(event));
76
- const appClosePromise = new Promise(f => this.once(ElectronApplication.Events.Close, f));
79
+ this._nodeSession.on("Runtime.consoleAPICalled", (event) => this._onConsoleAPI(event));
80
+ const appClosePromise = new Promise((f) => this.once(ElectronApplication.Events.Close, f));
77
81
  this._browserContext.setCustomCloseHandler(async () => {
78
82
  await this._browserContext.stopVideoRecording();
79
83
  const electronHandle = await this._nodeElectronHandlePromise;
80
- await electronHandle.evaluate(({
81
- app
82
- }) => app.quit()).catch(() => {});
84
+ await electronHandle.evaluate(({ app }) => app.quit()).catch(() => {
85
+ });
83
86
  this._nodeConnection.close();
84
87
  await appClosePromise;
85
88
  });
86
89
  }
90
+ static {
91
+ this.Events = {
92
+ Close: "close",
93
+ Console: "console"
94
+ };
95
+ }
87
96
  async _onConsoleAPI(event) {
88
97
  if (event.executionContextId === 0) {
89
- // DevTools protocol stores the last 1000 console messages. These
90
- // messages are always reported even for removed execution contexts. In
91
- // this case, they are marked with executionContextId = 0 and are
92
- // reported upon enabling Runtime agent.
93
- //
94
- // Ignore these messages since:
95
- // - there's no execution context we can use to operate with message
96
- // arguments
97
- // - these messages are reported before Playwright clients can subscribe
98
- // to the 'console'
99
- // page event.
100
- //
101
- // @see https://github.com/GoogleChrome/puppeteer/issues/3865
102
98
  return;
103
99
  }
104
- if (!this._nodeExecutionContext) return;
105
- const args = event.args.map(arg => this._nodeExecutionContext.createHandle(arg));
106
- const message = new _console.ConsoleMessage(null, event.type, undefined, args, (0, _crProtocolHelper.toConsoleMessageLocation)(event.stackTrace));
100
+ if (!this._nodeExecutionContext)
101
+ return;
102
+ const args = event.args.map((arg) => (0, import_crExecutionContext.createHandle)(this._nodeExecutionContext, arg));
103
+ const message = new import_console.ConsoleMessage(null, event.type, void 0, args, (0, import_crProtocolHelper.toConsoleMessageLocation)(event.stackTrace));
107
104
  this.emit(ElectronApplication.Events.Console, message);
108
105
  }
109
106
  async initialize() {
110
- await this._nodeSession.send('Runtime.enable', {});
111
- // Delay loading the app until browser is started and the browser targets are configured to auto-attach.
112
- await this._nodeSession.send('Runtime.evaluate', {
113
- expression: '__playwright_run()'
114
- });
107
+ await this._nodeSession.send("Runtime.enable", {});
108
+ await this._nodeSession.send("Runtime.evaluate", { expression: "__playwright_run()" });
115
109
  }
116
110
  process() {
117
111
  return this._process;
@@ -120,129 +114,109 @@ class ElectronApplication extends _instrumentation.SdkObject {
120
114
  return this._browserContext;
121
115
  }
122
116
  async close() {
123
- // This will call BrowserContext.setCustomCloseHandler.
124
- await this._browserContext.close({
125
- reason: 'Application exited'
126
- });
117
+ await this._browserContext.close({ reason: "Application exited" });
127
118
  }
128
119
  async browserWindow(page) {
129
- // Assume CRPage as Electron is always Chromium.
130
120
  const targetId = page._delegate._targetId;
131
121
  const electronHandle = await this._nodeElectronHandlePromise;
132
- return await electronHandle.evaluateHandle(({
133
- BrowserWindow,
134
- webContents
135
- }, targetId) => {
136
- const wc = webContents.fromDevToolsTargetId(targetId);
122
+ return await electronHandle.evaluateHandle(({ BrowserWindow, webContents }, targetId2) => {
123
+ const wc = webContents.fromDevToolsTargetId(targetId2);
137
124
  return BrowserWindow.fromWebContents(wc);
138
125
  }, targetId);
139
126
  }
140
127
  }
141
- exports.ElectronApplication = ElectronApplication;
142
- ElectronApplication.Events = {
143
- Close: 'close',
144
- Console: 'console'
145
- };
146
- class Electron extends _instrumentation.SdkObject {
128
+ class Electron extends import_instrumentation.SdkObject {
147
129
  constructor(playwright) {
148
- super(playwright, 'electron');
130
+ super(playwright, "electron");
149
131
  }
150
132
  async launch(options) {
151
133
  const {
152
134
  args = []
153
135
  } = options;
154
- const controller = new _progress.ProgressController((0, _instrumentation.serverSideCallMetadata)(), this);
155
- controller.setLogName('browser');
156
- return controller.run(async progress => {
157
- let app = undefined;
158
- // --remote-debugging-port=0 must be the last playwright's argument, loader.ts relies on it.
159
- let electronArguments = ['--inspect=0', '--remote-debugging-port=0', ...args];
160
- if (_os.default.platform() === 'linux') {
136
+ const controller = new import_progress.ProgressController((0, import_instrumentation.serverSideCallMetadata)(), this);
137
+ controller.setLogName("browser");
138
+ return controller.run(async (progress) => {
139
+ let app = void 0;
140
+ let electronArguments = ["--inspect=0", "--remote-debugging-port=0", ...args];
141
+ if (import_os.default.platform() === "linux") {
161
142
  const runningAsRoot = process.geteuid && process.geteuid() === 0;
162
- if (runningAsRoot && electronArguments.indexOf('--no-sandbox') === -1) electronArguments.unshift('--no-sandbox');
143
+ if (runningAsRoot && electronArguments.indexOf("--no-sandbox") === -1)
144
+ electronArguments.unshift("--no-sandbox");
163
145
  }
164
- const artifactsDir = await _fs.default.promises.mkdtemp(ARTIFACTS_FOLDER);
165
- const browserLogsCollector = new _debugLogger.RecentLogsCollector();
166
- const env = options.env ? (0, _processLauncher.envArrayToObject)(options.env) : process.env;
146
+ const artifactsDir = await import_fs.default.promises.mkdtemp(ARTIFACTS_FOLDER);
147
+ const browserLogsCollector = new import_debugLogger.RecentLogsCollector();
148
+ const env = options.env ? (0, import_processLauncher.envArrayToObject)(options.env) : process.env;
167
149
  let command;
168
150
  if (options.executablePath) {
169
151
  command = options.executablePath;
170
152
  } else {
171
153
  try {
172
- // By default we fallback to the Electron App executable path.
173
- // 'electron/index.js' resolves to the actual Electron App.
174
- command = require('electron/index.js');
154
+ command = require("electron/index.js");
175
155
  } catch (error) {
176
- if ((error === null || error === void 0 ? void 0 : error.code) === 'MODULE_NOT_FOUND') {
177
- throw new Error('\n' + (0, _utils.wrapInASCIIBox)(['Electron executablePath not found!', 'Please install it using `npm install -D electron` or set the executablePath to your Electron executable.'].join('\n'), 1));
156
+ if (error?.code === "MODULE_NOT_FOUND") {
157
+ throw new Error("\n" + (0, import_ascii.wrapInASCIIBox)([
158
+ "Electron executablePath not found!",
159
+ "Please install it using `npm install -D electron` or set the executablePath to your Electron executable."
160
+ ].join("\n"), 1));
178
161
  }
179
162
  throw error;
180
163
  }
181
- // Only use our own loader for non-packaged apps.
182
- // Packaged apps might have their own command line handling.
183
- electronArguments.unshift('-r', require.resolve('./loader'));
164
+ electronArguments.unshift("-r", require.resolve("./loader"));
184
165
  }
185
166
  let shell = false;
186
- if (process.platform === 'win32') {
187
- // On Windows in order to run .cmd files, shell: true is required.
188
- // https://github.com/nodejs/node/issues/52554
167
+ if (process.platform === "win32") {
189
168
  shell = true;
190
- // On Windows, we need to quote the executable path due to shell: true.
191
169
  command = `"${command}"`;
192
- // On Windows, we need to quote the arguments due to shell: true.
193
- electronArguments = electronArguments.map(arg => `"${arg}"`);
170
+ electronArguments = electronArguments.map((arg) => `"${arg}"`);
194
171
  }
195
-
196
- // When debugging Playwright test that runs Electron, NODE_OPTIONS
197
- // will make the debugger attach to Electron's Node. But Playwright
198
- // also needs to attach to drive the automation. Disable external debugging.
199
172
  delete env.NODE_OPTIONS;
200
- const {
201
- launchedProcess,
202
- gracefullyClose,
203
- kill
204
- } = await (0, _processLauncher.launchProcess)({
173
+ const { launchedProcess, gracefullyClose, kill } = await (0, import_processLauncher.launchProcess)({
205
174
  command,
206
175
  args: electronArguments,
207
176
  env,
208
- log: message => {
177
+ log: (message) => {
209
178
  progress.log(message);
210
179
  browserLogsCollector.log(message);
211
180
  },
212
181
  shell,
213
- stdio: 'pipe',
182
+ stdio: "pipe",
214
183
  cwd: options.cwd,
215
184
  tempDirectories: [artifactsDir],
216
185
  attemptToGracefullyClose: () => app.close(),
217
186
  handleSIGINT: true,
218
187
  handleSIGTERM: true,
219
188
  handleSIGHUP: true,
220
- onExit: () => {
221
- var _app;
222
- return (_app = app) === null || _app === void 0 ? void 0 : _app.emit(ElectronApplication.Events.Close);
223
- }
189
+ onExit: () => app?.emit(ElectronApplication.Events.Close)
224
190
  });
225
-
226
- // All waitForLines must be started immediately.
227
- // Otherwise the lines might come before we are ready.
228
191
  const waitForXserverError = new Promise(async (resolve, reject) => {
229
- waitForLine(progress, launchedProcess, /Unable to open X display/).then(() => reject(new Error(['Unable to open X display!', `================================`, 'Most likely this is because there is no X server available.', "Use 'xvfb-run' on Linux to launch your tests with an emulated display server.", "For example: 'xvfb-run npm run test:e2e'", `================================`, progress.metadata.log].join('\n')))).catch(() => {});
192
+ waitForLine(progress, launchedProcess, /Unable to open X display/).then(() => reject(new Error([
193
+ "Unable to open X display!",
194
+ `================================`,
195
+ "Most likely this is because there is no X server available.",
196
+ "Use 'xvfb-run' on Linux to launch your tests with an emulated display server.",
197
+ "For example: 'xvfb-run npm run test:e2e'",
198
+ `================================`,
199
+ progress.metadata.log
200
+ ].join("\n")))).catch(() => {
201
+ });
230
202
  });
231
203
  const nodeMatchPromise = waitForLine(progress, launchedProcess, /^Debugger listening on (ws:\/\/.*)$/);
232
204
  const chromeMatchPromise = waitForLine(progress, launchedProcess, /^DevTools listening on (ws:\/\/.*)$/);
233
205
  const debuggerDisconnectPromise = waitForLine(progress, launchedProcess, /Waiting for the debugger to disconnect\.\.\./);
234
206
  const nodeMatch = await nodeMatchPromise;
235
- const nodeTransport = await _transport.WebSocketTransport.connect(progress, nodeMatch[1]);
236
- const nodeConnection = new _crConnection.CRConnection(nodeTransport, _helper.helper.debugProtocolLogger(), browserLogsCollector);
237
-
238
- // Immediately release exiting process under debug.
207
+ const nodeTransport = await import_transport.WebSocketTransport.connect(progress, nodeMatch[1]);
208
+ const nodeConnection = new import_crConnection.CRConnection(nodeTransport, import_helper.helper.debugProtocolLogger(), browserLogsCollector);
239
209
  debuggerDisconnectPromise.then(() => {
240
210
  nodeTransport.close();
241
- }).catch(() => {});
242
- const chromeMatch = await Promise.race([chromeMatchPromise, waitForXserverError]);
243
- const chromeTransport = await _transport.WebSocketTransport.connect(progress, chromeMatch[1]);
211
+ }).catch(() => {
212
+ });
213
+ const chromeMatch = await Promise.race([
214
+ chromeMatchPromise,
215
+ waitForXserverError
216
+ ]);
217
+ const chromeTransport = await import_transport.WebSocketTransport.connect(progress, chromeMatch[1]);
244
218
  const browserProcess = {
245
- onclose: undefined,
219
+ onclose: void 0,
246
220
  process: launchedProcess,
247
221
  close: gracefullyClose,
248
222
  kill
@@ -252,45 +226,52 @@ class Electron extends _instrumentation.SdkObject {
252
226
  noDefaultViewport: true
253
227
  };
254
228
  const browserOptions = {
255
- name: 'electron',
229
+ name: "electron",
256
230
  isChromium: true,
257
231
  headful: true,
258
232
  persistent: contextOptions,
259
233
  browserProcess,
260
- protocolLogger: _helper.helper.debugProtocolLogger(),
234
+ protocolLogger: import_helper.helper.debugProtocolLogger(),
261
235
  browserLogsCollector,
262
236
  artifactsDir,
263
237
  downloadsPath: artifactsDir,
264
238
  tracesDir: options.tracesDir || artifactsDir,
265
239
  originalLaunchOptions: {}
266
240
  };
267
- (0, _browserContext.validateBrowserContextOptions)(contextOptions, browserOptions);
268
- const browser = await _crBrowser.CRBrowser.connect(this.attribution.playwright, chromeTransport, browserOptions);
241
+ (0, import_browserContext.validateBrowserContextOptions)(contextOptions, browserOptions);
242
+ const browser = await import_crBrowser.CRBrowser.connect(this.attribution.playwright, chromeTransport, browserOptions);
269
243
  app = new ElectronApplication(this, browser, nodeConnection, launchedProcess);
270
244
  await app.initialize();
271
245
  return app;
272
- }, _timeoutSettings.TimeoutSettings.launchTimeout(options));
246
+ }, import_timeoutSettings.TimeoutSettings.launchTimeout(options));
273
247
  }
274
248
  }
275
- exports.Electron = Electron;
276
- function waitForLine(progress, process, regex) {
249
+ function waitForLine(progress, process2, regex) {
277
250
  return new Promise((resolve, reject) => {
278
- const rl = readline.createInterface({
279
- input: process.stderr
280
- });
281
- const failError = new Error('Process failed to launch!');
282
- const listeners = [_eventsHelper.eventsHelper.addEventListener(rl, 'line', onLine), _eventsHelper.eventsHelper.addEventListener(rl, 'close', reject.bind(null, failError)), _eventsHelper.eventsHelper.addEventListener(process, 'exit', reject.bind(null, failError)),
283
- // It is Ok to remove error handler because we did not create process and there is another listener.
284
- _eventsHelper.eventsHelper.addEventListener(process, 'error', reject.bind(null, failError))];
251
+ const rl = readline.createInterface({ input: process2.stderr });
252
+ const failError = new Error("Process failed to launch!");
253
+ const listeners = [
254
+ import_eventsHelper.eventsHelper.addEventListener(rl, "line", onLine),
255
+ import_eventsHelper.eventsHelper.addEventListener(rl, "close", reject.bind(null, failError)),
256
+ import_eventsHelper.eventsHelper.addEventListener(process2, "exit", reject.bind(null, failError)),
257
+ // It is Ok to remove error handler because we did not create process and there is another listener.
258
+ import_eventsHelper.eventsHelper.addEventListener(process2, "error", reject.bind(null, failError))
259
+ ];
285
260
  progress.cleanupWhenAborted(cleanup);
286
261
  function onLine(line) {
287
262
  const match = line.match(regex);
288
- if (!match) return;
263
+ if (!match)
264
+ return;
289
265
  cleanup();
290
266
  resolve(match);
291
267
  }
292
268
  function cleanup() {
293
- _eventsHelper.eventsHelper.removeEventListeners(listeners);
269
+ import_eventsHelper.eventsHelper.removeEventListeners(listeners);
294
270
  }
295
271
  });
296
- }
272
+ }
273
+ // Annotate the CommonJS export names for ESM import in node:
274
+ 0 && (module.exports = {
275
+ Electron,
276
+ ElectronApplication
277
+ });
@@ -1,57 +1,29 @@
1
1
  "use strict";
2
-
3
- /**
4
- * Copyright (c) Microsoft Corporation.
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this file except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- */
18
-
19
- const {
20
- app
21
- } = require('electron');
22
- const {
23
- chromiumSwitches
24
- } = require('../chromium/chromiumSwitches');
25
-
26
- // Always pass user arguments first, see https://github.com/microsoft/playwright/issues/16614 and
27
- // https://github.com/microsoft/playwright/issues/29198.
28
- // [Electron, -r, loader.js[, --no-sandbox>], --inspect=0, --remote-debugging-port=0, ...args]
29
- process.argv.splice(1, process.argv.indexOf('--remote-debugging-port=0'));
2
+ const { app } = require("electron");
3
+ const { chromiumSwitches } = require("../chromium/chromiumSwitches");
4
+ process.argv.splice(1, process.argv.indexOf("--remote-debugging-port=0"));
30
5
  for (const arg of chromiumSwitches) {
31
6
  const match = arg.match(/--([^=]*)=?(.*)/);
32
7
  app.commandLine.appendSwitch(match[1], match[2]);
33
8
  }
34
-
35
- // Defer ready event.
36
9
  const originalWhenReady = app.whenReady();
37
10
  const originalEmit = app.emit.bind(app);
38
11
  let readyEventArgs;
39
12
  app.emit = (event, ...args) => {
40
- if (event === 'ready') {
13
+ if (event === "ready") {
41
14
  readyEventArgs = args;
42
- return app.listenerCount('ready') > 0;
15
+ return app.listenerCount("ready") > 0;
43
16
  }
44
17
  return originalEmit(event, ...args);
45
18
  };
46
19
  let isReady = false;
47
20
  let whenReadyCallback;
48
- const whenReadyPromise = new Promise(f => whenReadyCallback = f);
21
+ const whenReadyPromise = new Promise((f) => whenReadyCallback = f);
49
22
  app.isReady = () => isReady;
50
23
  app.whenReady = () => whenReadyPromise;
51
24
  globalThis.__playwright_run = async () => {
52
- // Wait for app to be ready to avoid browser initialization races.
53
25
  const event = await originalWhenReady;
54
26
  isReady = true;
55
27
  whenReadyCallback(event);
56
- originalEmit('ready', ...readyEventArgs);
57
- };
28
+ originalEmit("ready", ...readyEventArgs);
29
+ };