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,111 +1,94 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var crConnection_exports = {};
20
+ __export(crConnection_exports, {
21
+ CDPSession: () => CDPSession,
22
+ CRConnection: () => CRConnection,
23
+ CRSession: () => CRSession,
24
+ ConnectionEvents: () => ConnectionEvents,
25
+ kBrowserCloseMessageId: () => kBrowserCloseMessageId
5
26
  });
6
- exports.kBrowserCloseMessageId = exports.ConnectionEvents = exports.CRSession = exports.CRConnection = exports.CDPSession = void 0;
7
- var _utils = require("../../utils");
8
- var _events = require("events");
9
- var _debugLogger = require("../../utils/debugLogger");
10
- var _helper = require("../helper");
11
- var _protocolError = require("../protocolError");
12
- /**
13
- * Copyright 2017 Google Inc. All rights reserved.
14
- * Modifications copyright (c) Microsoft Corporation.
15
- *
16
- * Licensed under the Apache License, Version 2.0 (the "License");
17
- * you may not use this file except in compliance with the License.
18
- * You may obtain a copy of the License at
19
- *
20
- * http://www.apache.org/licenses/LICENSE-2.0
21
- *
22
- * Unless required by applicable law or agreed to in writing, software
23
- * distributed under the License is distributed on an "AS IS" BASIS,
24
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
- * See the License for the specific language governing permissions and
26
- * limitations under the License.
27
- */
28
-
29
- const ConnectionEvents = exports.ConnectionEvents = {
30
- Disconnected: Symbol('ConnectionEvents.Disconnected')
27
+ module.exports = __toCommonJS(crConnection_exports);
28
+ var import_events = require("events");
29
+ var import_utils = require("../../utils");
30
+ var import_debugLogger = require("../utils/debugLogger");
31
+ var import_helper = require("../helper");
32
+ var import_protocolError = require("../protocolError");
33
+ const ConnectionEvents = {
34
+ Disconnected: Symbol("ConnectionEvents.Disconnected")
31
35
  };
32
-
33
- // CRPlaywright uses this special id to issue Browser.close command which we
34
- // should ignore.
35
- const kBrowserCloseMessageId = exports.kBrowserCloseMessageId = -9999;
36
- class CRConnection extends _events.EventEmitter {
36
+ const kBrowserCloseMessageId = -9999;
37
+ class CRConnection extends import_events.EventEmitter {
37
38
  constructor(transport, protocolLogger, browserLogsCollector) {
38
39
  super();
39
40
  this._lastId = 0;
40
- this._transport = void 0;
41
- this._sessions = new Map();
42
- this._protocolLogger = void 0;
43
- this._browserLogsCollector = void 0;
44
- this._browserDisconnectedLogs = void 0;
45
- this.rootSession = void 0;
41
+ this._sessions = /* @__PURE__ */ new Map();
46
42
  this._closed = false;
47
43
  this.setMaxListeners(0);
48
44
  this._transport = transport;
49
45
  this._protocolLogger = protocolLogger;
50
46
  this._browserLogsCollector = browserLogsCollector;
51
- this.rootSession = new CRSession(this, null, '');
52
- this._sessions.set('', this.rootSession);
47
+ this.rootSession = new CRSession(this, null, "");
48
+ this._sessions.set("", this.rootSession);
53
49
  this._transport.onmessage = this._onMessage.bind(this);
54
- // onclose should be set last, since it can be immediately called.
55
50
  this._transport.onclose = this._onClose.bind(this);
56
51
  }
57
52
  _rawSend(sessionId, method, params) {
58
53
  const id = ++this._lastId;
59
- const message = {
60
- id,
61
- method,
62
- params
63
- };
64
- if (sessionId) message.sessionId = sessionId;
65
- this._protocolLogger('send', message);
54
+ const message = { id, method, params };
55
+ if (sessionId)
56
+ message.sessionId = sessionId;
57
+ this._protocolLogger("send", message);
66
58
  this._transport.send(message);
67
59
  return id;
68
60
  }
69
61
  async _onMessage(message) {
70
- this._protocolLogger('receive', message);
71
- if (message.id === kBrowserCloseMessageId) return;
72
- const session = this._sessions.get(message.sessionId || '');
73
- if (session) session._onMessage(message);
62
+ this._protocolLogger("receive", message);
63
+ if (message.id === kBrowserCloseMessageId)
64
+ return;
65
+ const session = this._sessions.get(message.sessionId || "");
66
+ if (session)
67
+ session._onMessage(message);
74
68
  }
75
69
  _onClose(reason) {
76
70
  this._closed = true;
77
- this._transport.onmessage = undefined;
78
- this._transport.onclose = undefined;
79
- this._browserDisconnectedLogs = _helper.helper.formatBrowserLogs(this._browserLogsCollector.recentLogs(), reason);
71
+ this._transport.onmessage = void 0;
72
+ this._transport.onclose = void 0;
73
+ this._browserDisconnectedLogs = import_helper.helper.formatBrowserLogs(this._browserLogsCollector.recentLogs(), reason);
80
74
  this.rootSession.dispose();
81
75
  Promise.resolve().then(() => this.emit(ConnectionEvents.Disconnected));
82
76
  }
83
77
  close() {
84
- if (!this._closed) this._transport.close();
78
+ if (!this._closed)
79
+ this._transport.close();
85
80
  }
86
81
  async createBrowserSession() {
87
- const {
88
- sessionId
89
- } = await this.rootSession.send('Target.attachToBrowserTarget');
82
+ const { sessionId } = await this.rootSession.send("Target.attachToBrowserTarget");
90
83
  return new CDPSession(this.rootSession, sessionId);
91
84
  }
92
85
  }
93
- exports.CRConnection = CRConnection;
94
- class CRSession extends _events.EventEmitter {
86
+ class CRSession extends import_events.EventEmitter {
95
87
  constructor(connection, parentSession, sessionId, eventListener) {
96
88
  super();
97
- this._connection = void 0;
98
- this._eventListener = void 0;
99
- this._callbacks = new Map();
100
- this._sessionId = void 0;
101
- this._parentSession = void 0;
89
+ this._callbacks = /* @__PURE__ */ new Map();
102
90
  this._crashed = false;
103
91
  this._closed = false;
104
- this.on = void 0;
105
- this.addListener = void 0;
106
- this.off = void 0;
107
- this.removeListener = void 0;
108
- this.once = void 0;
109
92
  this.setMaxListeners(0);
110
93
  this._connection = connection;
111
94
  this._parentSession = parentSession;
@@ -126,21 +109,17 @@ class CRSession extends _events.EventEmitter {
126
109
  return session;
127
110
  }
128
111
  async send(method, params) {
129
- if (this._crashed || this._closed || this._connection._closed || this._connection._browserDisconnectedLogs) throw new _protocolError.ProtocolError(this._crashed ? 'crashed' : 'closed', undefined, this._connection._browserDisconnectedLogs);
112
+ if (this._crashed || this._closed || this._connection._closed || this._connection._browserDisconnectedLogs)
113
+ throw new import_protocolError.ProtocolError(this._crashed ? "crashed" : "closed", void 0, this._connection._browserDisconnectedLogs);
130
114
  const id = this._connection._rawSend(this._sessionId, method, params);
131
115
  return new Promise((resolve, reject) => {
132
- this._callbacks.set(id, {
133
- resolve,
134
- reject,
135
- error: new _protocolError.ProtocolError('error', method)
136
- });
116
+ this._callbacks.set(id, { resolve, reject, error: new import_protocolError.ProtocolError("error", method) });
137
117
  });
138
118
  }
139
119
  _sendMayFail(method, params) {
140
- return this.send(method, params).catch(error => _debugLogger.debugLogger.log('error', error));
120
+ return this.send(method, params).catch((error) => import_debugLogger.debugLogger.log("error", error));
141
121
  }
142
122
  _onMessage(object) {
143
- var _object$error;
144
123
  if (object.id && this._callbacks.has(object.id)) {
145
124
  const callback = this._callbacks.get(object.id);
146
125
  this._callbacks.delete(object.id);
@@ -150,26 +129,23 @@ class CRSession extends _events.EventEmitter {
150
129
  } else {
151
130
  callback.resolve(object.result);
152
131
  }
153
- } else if (object.id && ((_object$error = object.error) === null || _object$error === void 0 ? void 0 : _object$error.code) === -32001) {
154
- // Message to a closed session, just ignore it.
132
+ } else if (object.id && object.error?.code === -32001) {
155
133
  } else {
156
- var _object$error2;
157
- (0, _utils.assert)(!object.id, (object === null || object === void 0 || (_object$error2 = object.error) === null || _object$error2 === void 0 ? void 0 : _object$error2.message) || undefined);
134
+ (0, import_utils.assert)(!object.id, object?.error?.message || void 0);
158
135
  Promise.resolve().then(() => {
159
- if (this._eventListener) this._eventListener(object.method, object.params);
136
+ if (this._eventListener)
137
+ this._eventListener(object.method, object.params);
160
138
  this.emit(object.method, object.params);
161
139
  });
162
140
  }
163
141
  }
164
142
  async detach() {
165
- if (this._closed) throw new Error(`Session already detached. Most likely the page has been closed.`);
166
- if (!this._parentSession) throw new Error('Root session cannot be closed');
167
- // Ideally, detaching should resume any target, but there is a bug in the backend,
168
- // so we must Runtime.runIfWaitingForDebugger first.
169
- await this._sendMayFail('Runtime.runIfWaitingForDebugger');
170
- await this._parentSession.send('Target.detachFromTarget', {
171
- sessionId: this._sessionId
172
- });
143
+ if (this._closed)
144
+ throw new Error(`Session already detached. Most likely the page has been closed.`);
145
+ if (!this._parentSession)
146
+ throw new Error("Root session cannot be closed");
147
+ await this._sendMayFail("Runtime.runIfWaitingForDebugger");
148
+ await this._parentSession.send("Target.detachFromTarget", { sessionId: this._sessionId });
173
149
  this.dispose();
174
150
  }
175
151
  dispose() {
@@ -177,7 +153,7 @@ class CRSession extends _events.EventEmitter {
177
153
  this._connection._sessions.delete(this._sessionId);
178
154
  for (const callback of this._callbacks.values()) {
179
155
  callback.error.setMessage(`Internal server error, session closed.`);
180
- callback.error.type = this._crashed ? 'crashed' : 'closed';
156
+ callback.error.type = this._crashed ? "crashed" : "closed";
181
157
  callback.error.logs = this._connection._browserDisconnectedLogs;
182
158
  callback.reject(callback.error);
183
159
  }
@@ -188,36 +164,36 @@ class CRSession extends _events.EventEmitter {
188
164
  targetId,
189
165
  frame = null
190
166
  }) {
191
- const fixMode = process.env['REBROWSER_PATCHES_RUNTIME_FIX_MODE'] || 'addBinding';
192
- const utilityWorldName = process.env['REBROWSER_PATCHES_UTILITY_WORLD_NAME'] !== '0' ? process.env['REBROWSER_PATCHES_UTILITY_WORLD_NAME'] || 'util' : '__playwright_utility_world__';
193
- process.env['REBROWSER_PATCHES_DEBUG'] && console.log(`[rebrowser-patches][crSession] targetId = ${targetId}, world = ${world}, frame = ${frame ? 'Y' : 'N'}, fixMode = ${fixMode}`);
167
+ const fixMode = process.env["REBROWSER_PATCHES_RUNTIME_FIX_MODE"] || "addBinding";
168
+ const utilityWorldName = process.env["REBROWSER_PATCHES_UTILITY_WORLD_NAME"] !== "0" ? process.env["REBROWSER_PATCHES_UTILITY_WORLD_NAME"] || "util" : "__playwright_utility_world__";
169
+ process.env["REBROWSER_PATCHES_DEBUG"] && console.log(`[rebrowser-patches][crSession] targetId = ${targetId}, world = ${world}, frame = ${frame ? "Y" : "N"}, fixMode = ${fixMode}`);
194
170
  let getWorldPromise;
195
- if (fixMode === 'addBinding') {
196
- if (world === 'utility') {
171
+ if (fixMode === "addBinding") {
172
+ if (world === "utility") {
197
173
  getWorldPromise = this.__re__getIsolatedWorld({
198
174
  client: this,
199
175
  frameId: targetId,
200
176
  worldName: utilityWorldName
201
- }).then(contextId => {
177
+ }).then((contextId) => {
202
178
  return {
203
179
  id: contextId,
204
180
  // use UTILITY_WORLD_NAME value from crPage.ts otherwise _onExecutionContextCreated will ignore it
205
- name: '__playwright_utility_world__',
181
+ name: "__playwright_utility_world__",
206
182
  auxData: {
207
183
  frameId: targetId,
208
184
  isDefault: false
209
185
  }
210
186
  };
211
187
  });
212
- } else if (world === 'main') {
188
+ } else if (world === "main") {
213
189
  getWorldPromise = this.__re__getMainWorld({
214
190
  client: this,
215
191
  frameId: targetId,
216
192
  isWorker: frame === null
217
- }).then(contextId => {
193
+ }).then((contextId) => {
218
194
  return {
219
195
  id: contextId,
220
- name: '',
196
+ name: "",
221
197
  auxData: {
222
198
  frameId: targetId,
223
199
  isDefault: true
@@ -225,17 +201,15 @@ class CRSession extends _events.EventEmitter {
225
201
  };
226
202
  });
227
203
  }
228
- } else if (fixMode === 'alwaysIsolated') {
229
- // use only utility context
204
+ } else if (fixMode === "alwaysIsolated") {
230
205
  getWorldPromise = this.__re__getIsolatedWorld({
231
206
  client: this,
232
207
  frameId: targetId,
233
208
  worldName: utilityWorldName
234
- }).then(contextId => {
235
- // make it look as main world
209
+ }).then((contextId) => {
236
210
  return {
237
211
  id: contextId,
238
- name: '',
212
+ name: "",
239
213
  auxData: {
240
214
  frameId: targetId,
241
215
  isDefault: true
@@ -244,115 +218,86 @@ class CRSession extends _events.EventEmitter {
244
218
  });
245
219
  }
246
220
  const contextPayload = await getWorldPromise;
247
- this.emit('Runtime.executionContextCreated', {
221
+ this.emit("Runtime.executionContextCreated", {
248
222
  context: contextPayload
249
223
  });
250
224
  }
251
- async __re__getMainWorld({
252
- client,
253
- frameId,
254
- isWorker = false
255
- }) {
225
+ async __re__getMainWorld({ client, frameId, isWorker = false }) {
256
226
  let contextId;
257
-
258
- // random name to make it harder to detect for any 3rd party script by watching window object and events
259
- const randomName = [...Array(Math.floor(Math.random() * (10 + 1)) + 10)].map(() => Math.random().toString(36)[2]).join('');
260
- process.env['REBROWSER_PATCHES_DEBUG'] && console.log(`[rebrowser-patches][getMainWorld] binding name = ${randomName}`);
261
-
262
- // add the binding
263
- await client.send('Runtime.addBinding', {
227
+ const randomName = [...Array(Math.floor(Math.random() * (10 + 1)) + 10)].map(() => Math.random().toString(36)[2]).join("");
228
+ process.env["REBROWSER_PATCHES_DEBUG"] && console.log(`[rebrowser-patches][getMainWorld] binding name = ${randomName}`);
229
+ await client.send("Runtime.addBinding", {
264
230
  name: randomName
265
231
  });
266
-
267
- // listen for 'Runtime.bindingCalled' event
268
- const bindingCalledHandler = ({
269
- name,
270
- payload,
271
- executionContextId
272
- }) => {
273
- process.env['REBROWSER_PATCHES_DEBUG'] && console.log('[rebrowser-patches][bindingCalledHandler]', {
232
+ const bindingCalledHandler = ({ name, payload, executionContextId }) => {
233
+ process.env["REBROWSER_PATCHES_DEBUG"] && console.log("[rebrowser-patches][bindingCalledHandler]", {
274
234
  name,
275
235
  payload,
276
236
  executionContextId
277
237
  });
278
238
  if (contextId > 0) {
279
- // already acquired the id
280
239
  return;
281
240
  }
282
241
  if (name !== randomName) {
283
- // ignore irrelevant bindings
284
242
  return;
285
243
  }
286
244
  if (payload !== frameId) {
287
- // ignore irrelevant frames
288
245
  return;
289
246
  }
290
247
  contextId = executionContextId;
291
- // remove this listener
292
- client.off('Runtime.bindingCalled', bindingCalledHandler);
248
+ client.off("Runtime.bindingCalled", bindingCalledHandler);
293
249
  };
294
- client.on('Runtime.bindingCalled', bindingCalledHandler);
250
+ client.on("Runtime.bindingCalled", bindingCalledHandler);
295
251
  if (isWorker) {
296
- // workers don't support `Page.addScriptToEvaluateOnNewDocument` and `Page.createIsolatedWorld`, but there are no iframes inside of them, so it's safe to just use Runtime.evaluate
297
- await client.send('Runtime.evaluate', {
252
+ await client.send("Runtime.evaluate", {
298
253
  expression: `this['${randomName}']('${frameId}')`
299
254
  });
300
255
  } else {
301
- // we could call the binding right from `addScriptToEvaluateOnNewDocument`, but this way it will be called in all existing frames and it's hard to distinguish children from the parent
302
- await client.send('Page.addScriptToEvaluateOnNewDocument', {
256
+ await client.send("Page.addScriptToEvaluateOnNewDocument", {
303
257
  source: `document.addEventListener('${randomName}', (e) => self['${randomName}'](e.detail.frameId))`,
304
258
  runImmediately: true
305
259
  });
306
-
307
- // create new isolated world for this frame
308
- const createIsolatedWorldResult = await client.send('Page.createIsolatedWorld', {
260
+ const createIsolatedWorldResult = await client.send("Page.createIsolatedWorld", {
309
261
  frameId,
310
262
  // use randomName for worldName to distinguish from normal utility world
311
263
  worldName: randomName,
312
264
  grantUniveralAccess: true
313
265
  });
314
-
315
- // emit event in the specific frame from the isolated world
316
- await client.send('Runtime.evaluate', {
266
+ await client.send("Runtime.evaluate", {
317
267
  expression: `document.dispatchEvent(new CustomEvent('${randomName}', { detail: { frameId: '${frameId}' } }))`,
318
268
  contextId: createIsolatedWorldResult.executionContextId
319
269
  });
320
270
  }
321
- process.env['REBROWSER_PATCHES_DEBUG'] && console.log(`[rebrowser-patches][getMainWorld] result:`, {
322
- contextId
323
- });
271
+ process.env["REBROWSER_PATCHES_DEBUG"] && console.log(`[rebrowser-patches][getMainWorld] result:`, { contextId });
324
272
  return contextId;
325
273
  }
326
- async __re__getIsolatedWorld({
327
- client,
328
- frameId,
329
- worldName
330
- }) {
331
- const createIsolatedWorldResult = await client.send('Page.createIsolatedWorld', {
274
+ async __re__getIsolatedWorld({ client, frameId, worldName }) {
275
+ const createIsolatedWorldResult = await client.send("Page.createIsolatedWorld", {
332
276
  frameId,
333
277
  worldName,
334
278
  grantUniveralAccess: true
335
279
  });
336
- process.env['REBROWSER_PATCHES_DEBUG'] && console.log(`[rebrowser-patches][getIsolatedWorld] result:`, createIsolatedWorldResult);
280
+ process.env["REBROWSER_PATCHES_DEBUG"] && console.log(`[rebrowser-patches][getIsolatedWorld] result:`, createIsolatedWorldResult);
337
281
  return createIsolatedWorldResult.executionContextId;
338
282
  }
339
283
  }
340
- exports.CRSession = CRSession;
341
- class CDPSession extends _events.EventEmitter {
284
+ class CDPSession extends import_events.EventEmitter {
342
285
  constructor(parentSession, sessionId) {
343
286
  super();
344
- this.guid = void 0;
345
- this._session = void 0;
346
287
  this._listeners = [];
347
288
  this.guid = `cdp-session@${sessionId}`;
348
- this._session = parentSession.createChildSession(sessionId, (method, params) => this.emit(CDPSession.Events.Event, {
349
- method,
350
- params
351
- }));
352
- this._listeners = [_utils.eventsHelper.addEventListener(parentSession, 'Target.detachedFromTarget', event => {
353
- if (event.sessionId === sessionId) this._onClose();
289
+ this._session = parentSession.createChildSession(sessionId, (method, params) => this.emit(CDPSession.Events.Event, { method, params }));
290
+ this._listeners = [import_utils.eventsHelper.addEventListener(parentSession, "Target.detachedFromTarget", (event) => {
291
+ if (event.sessionId === sessionId)
292
+ this._onClose();
354
293
  })];
355
294
  }
295
+ static {
296
+ this.Events = {
297
+ Event: "event",
298
+ Closed: "close"
299
+ };
300
+ }
356
301
  async send(method, params) {
357
302
  return await this._session.send(method, params);
358
303
  }
@@ -360,22 +305,20 @@ class CDPSession extends _events.EventEmitter {
360
305
  return await this._session.detach();
361
306
  }
362
307
  async attachToTarget(targetId) {
363
- const {
364
- sessionId
365
- } = await this.send('Target.attachToTarget', {
366
- targetId,
367
- flatten: true
368
- });
308
+ const { sessionId } = await this.send("Target.attachToTarget", { targetId, flatten: true });
369
309
  return new CDPSession(this._session, sessionId);
370
310
  }
371
311
  _onClose() {
372
- _utils.eventsHelper.removeEventListeners(this._listeners);
312
+ import_utils.eventsHelper.removeEventListeners(this._listeners);
373
313
  this._session.dispose();
374
314
  this.emit(CDPSession.Events.Closed);
375
315
  }
376
316
  }
377
- exports.CDPSession = CDPSession;
378
- CDPSession.Events = {
379
- Event: 'event',
380
- Closed: 'close'
381
- };
317
+ // Annotate the CommonJS export names for ESM import in node:
318
+ 0 && (module.exports = {
319
+ CDPSession,
320
+ CRConnection,
321
+ CRSession,
322
+ ConnectionEvents,
323
+ kBrowserCloseMessageId
324
+ });