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,74 +1,69 @@
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 socksInterceptor_exports = {};
30
+ __export(socksInterceptor_exports, {
31
+ SocksInterceptor: () => SocksInterceptor
5
32
  });
6
- exports.SocksInterceptor = void 0;
7
- var socks = _interopRequireWildcard(require("../common/socksProxy"));
8
- var _events = _interopRequireDefault(require("events"));
9
- var _validator = require("../protocol/validator");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- 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); }
12
- 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; }
13
- /**
14
- * 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
-
33
+ module.exports = __toCommonJS(socksInterceptor_exports);
34
+ var import_events = __toESM(require("events"));
35
+ var socks = __toESM(require("./utils/socksProxy"));
36
+ var import_validator = require("../protocol/validator");
37
+ var import_debug = require("./utils/debug");
29
38
  class SocksInterceptor {
30
39
  constructor(transport, pattern, redirectPortForTest) {
31
- this._handler = void 0;
32
- this._channel = void 0;
33
- this._socksSupportObjectGuid = void 0;
34
- this._ids = new Set();
40
+ this._ids = /* @__PURE__ */ new Set();
35
41
  this._handler = new socks.SocksProxyHandler(pattern, redirectPortForTest);
36
42
  let lastId = -1;
37
- this._channel = new Proxy(new _events.default(), {
43
+ this._channel = new Proxy(new import_events.default(), {
38
44
  get: (obj, prop) => {
39
- if (prop in obj || obj[prop] !== undefined || typeof prop !== 'string') return obj[prop];
40
- return params => {
45
+ if (prop in obj || obj[prop] !== void 0 || typeof prop !== "string")
46
+ return obj[prop];
47
+ return (params) => {
41
48
  try {
42
49
  const id = --lastId;
43
50
  this._ids.add(id);
44
- const validator = (0, _validator.findValidator)('SocksSupport', prop, 'Params');
45
- params = validator(params, '', {
46
- tChannelImpl: tChannelForSocks,
47
- binary: 'toBase64'
48
- });
49
- transport.send({
50
- id,
51
- guid: this._socksSupportObjectGuid,
52
- method: prop,
53
- params,
54
- metadata: {
55
- stack: [],
56
- apiName: '',
57
- internal: true
58
- }
59
- });
60
- } catch (e) {}
51
+ const validator = (0, import_validator.findValidator)("SocksSupport", prop, "Params");
52
+ params = validator(params, "", { tChannelImpl: tChannelForSocks, binary: "toBase64", isUnderTest: import_debug.isUnderTest });
53
+ transport.send({ id, guid: this._socksSupportObjectGuid, method: prop, params, metadata: { stack: [], apiName: "", internal: true } });
54
+ } catch (e) {
55
+ }
61
56
  };
62
57
  }
63
58
  });
64
- this._handler.on(socks.SocksProxyHandler.Events.SocksConnected, payload => this._channel.socksConnected(payload));
65
- this._handler.on(socks.SocksProxyHandler.Events.SocksData, payload => this._channel.socksData(payload));
66
- this._handler.on(socks.SocksProxyHandler.Events.SocksError, payload => this._channel.socksError(payload));
67
- this._handler.on(socks.SocksProxyHandler.Events.SocksFailed, payload => this._channel.socksFailed(payload));
68
- this._handler.on(socks.SocksProxyHandler.Events.SocksEnd, payload => this._channel.socksEnd(payload));
69
- this._channel.on('socksRequested', payload => this._handler.socketRequested(payload));
70
- this._channel.on('socksClosed', payload => this._handler.socketClosed(payload));
71
- this._channel.on('socksData', payload => this._handler.sendSocketData(payload));
59
+ this._handler.on(socks.SocksProxyHandler.Events.SocksConnected, (payload) => this._channel.socksConnected(payload));
60
+ this._handler.on(socks.SocksProxyHandler.Events.SocksData, (payload) => this._channel.socksData(payload));
61
+ this._handler.on(socks.SocksProxyHandler.Events.SocksError, (payload) => this._channel.socksError(payload));
62
+ this._handler.on(socks.SocksProxyHandler.Events.SocksFailed, (payload) => this._channel.socksFailed(payload));
63
+ this._handler.on(socks.SocksProxyHandler.Events.SocksEnd, (payload) => this._channel.socksEnd(payload));
64
+ this._channel.on("socksRequested", (payload) => this._handler.socketRequested(payload));
65
+ this._channel.on("socksClosed", (payload) => this._handler.socketClosed(payload));
66
+ this._channel.on("socksData", (payload) => this._handler.sendSocketData(payload));
72
67
  }
73
68
  cleanup() {
74
69
  this._handler.cleanup();
@@ -78,23 +73,23 @@ class SocksInterceptor {
78
73
  this._ids.delete(message.id);
79
74
  return true;
80
75
  }
81
- if (message.method === '__create__' && message.params.type === 'SocksSupport') {
76
+ if (message.method === "__create__" && message.params.type === "SocksSupport") {
82
77
  this._socksSupportObjectGuid = message.params.guid;
83
78
  return false;
84
79
  }
85
80
  if (this._socksSupportObjectGuid && message.guid === this._socksSupportObjectGuid) {
86
- const validator = (0, _validator.findValidator)('SocksSupport', message.method, 'Event');
87
- const params = validator(message.params, '', {
88
- tChannelImpl: tChannelForSocks,
89
- binary: 'fromBase64'
90
- });
81
+ const validator = (0, import_validator.findValidator)("SocksSupport", message.method, "Event");
82
+ const params = validator(message.params, "", { tChannelImpl: tChannelForSocks, binary: "fromBase64", isUnderTest: import_debug.isUnderTest });
91
83
  this._channel.emit(message.method, params);
92
84
  return true;
93
85
  }
94
86
  return false;
95
87
  }
96
88
  }
97
- exports.SocksInterceptor = SocksInterceptor;
98
89
  function tChannelForSocks(names, arg, path, context) {
99
- throw new _validator.ValidationError(`${path}: channels are not expected in SocksSupport`);
100
- }
90
+ throw new import_validator.ValidationError(`${path}: channels are not expected in SocksSupport`);
91
+ }
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ SocksInterceptor
95
+ });
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var storageScript_exports = {};
20
+ __export(storageScript_exports, {
21
+ collect: () => collect,
22
+ restore: () => restore
23
+ });
24
+ module.exports = __toCommonJS(storageScript_exports);
25
+ async function collect(serializersSource, builtins, isFirefox, recordIndexedDB) {
26
+ const { serializeAsCallArgument } = serializersSource(builtins);
27
+ async function collectDB(dbInfo) {
28
+ if (!dbInfo.name)
29
+ throw new Error("Database name is empty");
30
+ if (!dbInfo.version)
31
+ throw new Error("Database version is unset");
32
+ function idbRequestToPromise(request) {
33
+ return new Promise((resolve, reject) => {
34
+ request.addEventListener("success", () => resolve(request.result));
35
+ request.addEventListener("error", () => reject(request.error));
36
+ });
37
+ }
38
+ function isPlainObject(v) {
39
+ const ctor = v?.constructor;
40
+ if (isFirefox) {
41
+ const constructorImpl = ctor?.toString();
42
+ if (constructorImpl?.startsWith("function Object() {") && constructorImpl?.includes("[native code]"))
43
+ return true;
44
+ }
45
+ return ctor === Object;
46
+ }
47
+ function trySerialize(value) {
48
+ let trivial = true;
49
+ const encoded = serializeAsCallArgument(value, (v) => {
50
+ const isTrivial = isPlainObject(v) || Array.isArray(v) || typeof v === "string" || typeof v === "number" || typeof v === "boolean" || Object.is(v, null);
51
+ if (!isTrivial)
52
+ trivial = false;
53
+ return { fallThrough: v };
54
+ });
55
+ if (trivial)
56
+ return { trivial: value };
57
+ return { encoded };
58
+ }
59
+ const db = await idbRequestToPromise(indexedDB.open(dbInfo.name));
60
+ const transaction = db.transaction(db.objectStoreNames, "readonly");
61
+ const stores = await Promise.all([...db.objectStoreNames].map(async (storeName) => {
62
+ const objectStore = transaction.objectStore(storeName);
63
+ const keys = await idbRequestToPromise(objectStore.getAllKeys());
64
+ const records = await Promise.all(keys.map(async (key) => {
65
+ const record = {};
66
+ if (objectStore.keyPath === null) {
67
+ const { encoded: encoded2, trivial: trivial2 } = trySerialize(key);
68
+ if (trivial2)
69
+ record.key = trivial2;
70
+ else
71
+ record.keyEncoded = encoded2;
72
+ }
73
+ const value = await idbRequestToPromise(objectStore.get(key));
74
+ const { encoded, trivial } = trySerialize(value);
75
+ if (trivial)
76
+ record.value = trivial;
77
+ else
78
+ record.valueEncoded = encoded;
79
+ return record;
80
+ }));
81
+ const indexes = [...objectStore.indexNames].map((indexName) => {
82
+ const index = objectStore.index(indexName);
83
+ return {
84
+ name: index.name,
85
+ keyPath: typeof index.keyPath === "string" ? index.keyPath : void 0,
86
+ keyPathArray: Array.isArray(index.keyPath) ? index.keyPath : void 0,
87
+ multiEntry: index.multiEntry,
88
+ unique: index.unique
89
+ };
90
+ });
91
+ return {
92
+ name: storeName,
93
+ records,
94
+ indexes,
95
+ autoIncrement: objectStore.autoIncrement,
96
+ keyPath: typeof objectStore.keyPath === "string" ? objectStore.keyPath : void 0,
97
+ keyPathArray: Array.isArray(objectStore.keyPath) ? objectStore.keyPath : void 0
98
+ };
99
+ }));
100
+ return {
101
+ name: dbInfo.name,
102
+ version: dbInfo.version,
103
+ stores
104
+ };
105
+ }
106
+ return {
107
+ localStorage: Object.keys(localStorage).map((name) => ({ name, value: localStorage.getItem(name) })),
108
+ indexedDB: recordIndexedDB ? await Promise.all((await indexedDB.databases()).map(collectDB)).catch((e) => {
109
+ throw new Error("Unable to serialize IndexedDB: " + e.message);
110
+ }) : void 0
111
+ };
112
+ }
113
+ async function restore(serializersSource, builtins, originState) {
114
+ const { parseEvaluationResultValue } = serializersSource(builtins);
115
+ for (const { name, value } of originState.localStorage || [])
116
+ localStorage.setItem(name, value);
117
+ await Promise.all((originState.indexedDB ?? []).map(async (dbInfo) => {
118
+ const openRequest = indexedDB.open(dbInfo.name, dbInfo.version);
119
+ openRequest.addEventListener("upgradeneeded", () => {
120
+ const db2 = openRequest.result;
121
+ for (const store of dbInfo.stores) {
122
+ const objectStore = db2.createObjectStore(store.name, { autoIncrement: store.autoIncrement, keyPath: store.keyPathArray ?? store.keyPath });
123
+ for (const index of store.indexes)
124
+ objectStore.createIndex(index.name, index.keyPathArray ?? index.keyPath, { unique: index.unique, multiEntry: index.multiEntry });
125
+ }
126
+ });
127
+ function idbRequestToPromise(request) {
128
+ return new Promise((resolve, reject) => {
129
+ request.addEventListener("success", () => resolve(request.result));
130
+ request.addEventListener("error", () => reject(request.error));
131
+ });
132
+ }
133
+ const db = await idbRequestToPromise(openRequest);
134
+ const transaction = db.transaction(db.objectStoreNames, "readwrite");
135
+ await Promise.all(dbInfo.stores.map(async (store) => {
136
+ const objectStore = transaction.objectStore(store.name);
137
+ await Promise.all(store.records.map(async (record) => {
138
+ await idbRequestToPromise(
139
+ objectStore.add(
140
+ record.value ?? parseEvaluationResultValue(record.valueEncoded),
141
+ record.key ?? parseEvaluationResultValue(record.keyEncoded)
142
+ )
143
+ );
144
+ }));
145
+ }));
146
+ })).catch((e) => {
147
+ throw new Error("Unable to restore IndexedDB: " + e.message);
148
+ });
149
+ }
150
+ // Annotate the CommonJS export names for ESM import in node:
151
+ 0 && (module.exports = {
152
+ collect,
153
+ restore
154
+ });
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var timeoutSettings_exports = {};
20
+ __export(timeoutSettings_exports, {
21
+ DEFAULT_LAUNCH_TIMEOUT: () => DEFAULT_LAUNCH_TIMEOUT,
22
+ DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT,
23
+ TimeoutSettings: () => TimeoutSettings
24
+ });
25
+ module.exports = __toCommonJS(timeoutSettings_exports);
26
+ var import_debug = require("./utils/debug");
27
+ const DEFAULT_TIMEOUT = 3e4;
28
+ const DEFAULT_LAUNCH_TIMEOUT = 3 * 60 * 1e3;
29
+ class TimeoutSettings {
30
+ constructor(parent) {
31
+ this._parent = parent;
32
+ }
33
+ setDefaultTimeout(timeout) {
34
+ this._defaultTimeout = timeout;
35
+ }
36
+ setDefaultNavigationTimeout(timeout) {
37
+ this._defaultNavigationTimeout = timeout;
38
+ }
39
+ defaultNavigationTimeout() {
40
+ return this._defaultNavigationTimeout;
41
+ }
42
+ defaultTimeout() {
43
+ return this._defaultTimeout;
44
+ }
45
+ navigationTimeout(options) {
46
+ if (typeof options.timeout === "number")
47
+ return options.timeout;
48
+ if (this._defaultNavigationTimeout !== void 0)
49
+ return this._defaultNavigationTimeout;
50
+ if ((0, import_debug.debugMode)())
51
+ return 0;
52
+ if (this._defaultTimeout !== void 0)
53
+ return this._defaultTimeout;
54
+ if (this._parent)
55
+ return this._parent.navigationTimeout(options);
56
+ return DEFAULT_TIMEOUT;
57
+ }
58
+ timeout(options) {
59
+ if (typeof options.timeout === "number")
60
+ return options.timeout;
61
+ if ((0, import_debug.debugMode)())
62
+ return 0;
63
+ if (this._defaultTimeout !== void 0)
64
+ return this._defaultTimeout;
65
+ if (this._parent)
66
+ return this._parent.timeout(options);
67
+ return DEFAULT_TIMEOUT;
68
+ }
69
+ static timeout(options) {
70
+ if (typeof options.timeout === "number")
71
+ return options.timeout;
72
+ if ((0, import_debug.debugMode)())
73
+ return 0;
74
+ return DEFAULT_TIMEOUT;
75
+ }
76
+ static launchTimeout(options) {
77
+ if (typeof options.timeout === "number")
78
+ return options.timeout;
79
+ if ((0, import_debug.debugMode)())
80
+ return 0;
81
+ return DEFAULT_LAUNCH_TIMEOUT;
82
+ }
83
+ }
84
+ // Annotate the CommonJS export names for ESM import in node:
85
+ 0 && (module.exports = {
86
+ DEFAULT_LAUNCH_TIMEOUT,
87
+ DEFAULT_TIMEOUT,
88
+ TimeoutSettings
89
+ });
@@ -1,44 +1,43 @@
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 snapshotter_exports = {};
20
+ __export(snapshotter_exports, {
21
+ Snapshotter: () => Snapshotter
5
22
  });
6
- exports.Snapshotter = void 0;
7
- var _browserContext = require("../../browserContext");
8
- var _page = require("../../page");
9
- var _eventsHelper = require("../../../utils/eventsHelper");
10
- var _debugLogger = require("../../../utils/debugLogger");
11
- var _snapshotterInjected = require("./snapshotterInjected");
12
- var _utils = require("../../../utils");
13
- var _utilsBundle = require("../../../utilsBundle");
14
- /**
15
- * Copyright (c) Microsoft Corporation.
16
- *
17
- * Licensed under the Apache License, Version 2.0 (the "License");
18
- * you may not use this file except in compliance with the License.
19
- * You may obtain a copy of the License at
20
- *
21
- * http://www.apache.org/licenses/LICENSE-2.0
22
- *
23
- * Unless required by applicable law or agreed to in writing, software
24
- * distributed under the License is distributed on an "AS IS" BASIS,
25
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
- * See the License for the specific language governing permissions and
27
- * limitations under the License.
28
- */
29
-
23
+ module.exports = __toCommonJS(snapshotter_exports);
24
+ var import_snapshotterInjected = require("./snapshotterInjected");
25
+ var import_time = require("../../../utils/isomorphic/time");
26
+ var import_crypto = require("../../utils/crypto");
27
+ var import_debugLogger = require("../../utils/debugLogger");
28
+ var import_eventsHelper = require("../../utils/eventsHelper");
29
+ var import_utilsBundle = require("../../../utilsBundle");
30
+ var import_browserContext = require("../../browserContext");
31
+ var import_page = require("../../page");
30
32
  class Snapshotter {
31
33
  constructor(context, delegate) {
32
- this._context = void 0;
33
- this._delegate = void 0;
34
34
  this._eventListeners = [];
35
- this._snapshotStreamer = void 0;
36
35
  this._initialized = false;
37
36
  this._started = false;
38
37
  this._context = context;
39
38
  this._delegate = delegate;
40
- const guid = (0, _utils.createGuid)();
41
- this._snapshotStreamer = '__playwright_snapshot_streamer_' + guid;
39
+ const guid = (0, import_crypto.createGuid)();
40
+ this._snapshotStreamer = "__playwright_snapshot_streamer_" + guid;
42
41
  }
43
42
  started() {
44
43
  return this._started;
@@ -52,44 +51,43 @@ class Snapshotter {
52
51
  await this.reset();
53
52
  }
54
53
  async reset() {
55
- if (this._started) await this._runInAllFrames(`window["${this._snapshotStreamer}"].reset()`);
54
+ if (this._started)
55
+ await this._runInAllFrames(`window["${this._snapshotStreamer}"].reset()`);
56
56
  }
57
57
  async stop() {
58
58
  this._started = false;
59
59
  }
60
60
  resetForReuse() {
61
- // Next time we start recording, we will call addInitScript again.
62
61
  this._initialized = false;
63
62
  }
64
63
  async _initialize() {
65
- for (const page of this._context.pages()) this._onPage(page);
66
- this._eventListeners = [_eventsHelper.eventsHelper.addEventListener(this._context, _browserContext.BrowserContext.Events.Page, this._onPage.bind(this))];
67
- const {
68
- javaScriptEnabled
69
- } = this._context._options;
70
- const initScript = `(${_snapshotterInjected.frameSnapshotStreamer})("${this._snapshotStreamer}", ${javaScriptEnabled || javaScriptEnabled === undefined})`;
64
+ for (const page of this._context.pages())
65
+ this._onPage(page);
66
+ this._eventListeners = [
67
+ import_eventsHelper.eventsHelper.addEventListener(this._context, import_browserContext.BrowserContext.Events.Page, this._onPage.bind(this))
68
+ ];
69
+ const { javaScriptEnabled } = this._context._options;
70
+ const initScript = `(${import_snapshotterInjected.frameSnapshotStreamer})("${this._snapshotStreamer}", ${javaScriptEnabled || javaScriptEnabled === void 0})`;
71
71
  await this._context.addInitScript(initScript);
72
72
  await this._runInAllFrames(initScript);
73
73
  }
74
74
  async _runInAllFrames(expression) {
75
75
  const frames = [];
76
- for (const page of this._context.pages()) frames.push(...page.frames());
77
- await Promise.all(frames.map(frame => {
78
- return frame.nonStallingRawEvaluateInExistingMainContext(expression).catch(e => _debugLogger.debugLogger.log('error', e));
76
+ for (const page of this._context.pages())
77
+ frames.push(...page.frames());
78
+ await Promise.all(frames.map((frame) => {
79
+ return frame.nonStallingRawEvaluateInExistingMainContext(expression).catch((e) => import_debugLogger.debugLogger.log("error", e));
79
80
  }));
80
81
  }
81
82
  dispose() {
82
- _eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
83
+ import_eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
83
84
  }
84
85
  async captureSnapshot(page, callId, snapshotName) {
85
- // Prepare expression synchronously.
86
86
  const expression = `window["${this._snapshotStreamer}"].captureSnapshot(${JSON.stringify(snapshotName)})`;
87
-
88
- // In each frame, in a non-stalling manner, capture the snapshots.
89
- const snapshots = page.frames().map(async frame => {
90
- const data = await frame.nonStallingRawEvaluateInExistingMainContext(expression).catch(e => _debugLogger.debugLogger.log('error', e));
91
- // Something went wrong -> bail out, our snapshots are best-efforty.
92
- if (!data || !this._started) return;
87
+ const snapshots = page.frames().map(async (frame) => {
88
+ const data = await frame.nonStallingRawEvaluateInExistingMainContext(expression).catch((e) => import_debugLogger.debugLogger.log("error", e));
89
+ if (!data || !this._started)
90
+ return;
93
91
  const snapshot = {
94
92
  callId,
95
93
  snapshotName,
@@ -99,33 +97,20 @@ class Snapshotter {
99
97
  doctype: data.doctype,
100
98
  html: data.html,
101
99
  viewport: data.viewport,
102
- timestamp: (0, _utils.monotonicTime)(),
100
+ timestamp: (0, import_time.monotonicTime)(),
103
101
  wallTime: data.wallTime,
104
102
  collectionTime: data.collectionTime,
105
103
  resourceOverrides: [],
106
104
  isMainFrame: page.mainFrame() === frame
107
105
  };
108
- for (const {
109
- url,
110
- content,
111
- contentType
112
- } of data.resourceOverrides) {
113
- if (typeof content === 'string') {
106
+ for (const { url, content, contentType } of data.resourceOverrides) {
107
+ if (typeof content === "string") {
114
108
  const buffer = Buffer.from(content);
115
- const sha1 = (0, _utils.calculateSha1)(buffer) + '.' + (_utilsBundle.mime.getExtension(contentType) || 'dat');
116
- this._delegate.onSnapshotterBlob({
117
- sha1,
118
- buffer
119
- });
120
- snapshot.resourceOverrides.push({
121
- url,
122
- sha1
123
- });
109
+ const sha1 = (0, import_crypto.calculateSha1)(buffer) + "." + (import_utilsBundle.mime.getExtension(contentType) || "dat");
110
+ this._delegate.onSnapshotterBlob({ sha1, buffer });
111
+ snapshot.resourceOverrides.push({ url, sha1 });
124
112
  } else {
125
- snapshot.resourceOverrides.push({
126
- url,
127
- ref: content
128
- });
113
+ snapshot.resourceOverrides.push({ url, ref: content });
129
114
  }
130
115
  }
131
116
  this._delegate.onFrameSnapshot(snapshot);
@@ -133,29 +118,26 @@ class Snapshotter {
133
118
  await Promise.all(snapshots);
134
119
  }
135
120
  _onPage(page) {
136
- // Annotate frame hierarchy so that snapshots could include frame ids.
137
- for (const frame of page.frames()) this._annotateFrameHierarchy(frame);
138
- this._eventListeners.push(_eventsHelper.eventsHelper.addEventListener(page, _page.Page.Events.FrameAttached, frame => this._annotateFrameHierarchy(frame)));
121
+ for (const frame of page.frames())
122
+ this._annotateFrameHierarchy(frame);
123
+ this._eventListeners.push(import_eventsHelper.eventsHelper.addEventListener(page, import_page.Page.Events.FrameAttached, (frame) => this._annotateFrameHierarchy(frame)));
139
124
  }
140
125
  async _annotateFrameHierarchy(frame) {
141
126
  try {
142
127
  const frameElement = await frame.frameElement();
143
128
  const parent = frame.parentFrame();
144
- if (!parent) return;
129
+ if (!parent)
130
+ return;
145
131
  const context = await parent._mainContext();
146
- await (context === null || context === void 0 ? void 0 : context.evaluate(({
147
- snapshotStreamer,
148
- frameElement,
149
- frameId
150
- }) => {
151
- window[snapshotStreamer].markIframe(frameElement, frameId);
152
- }, {
153
- snapshotStreamer: this._snapshotStreamer,
154
- frameElement,
155
- frameId: frame.guid
156
- }));
132
+ await context?.evaluate(({ snapshotStreamer, frameElement: frameElement2, frameId }) => {
133
+ window[snapshotStreamer].markIframe(frameElement2, frameId);
134
+ }, { snapshotStreamer: this._snapshotStreamer, frameElement, frameId: frame.guid });
157
135
  frameElement.dispose();
158
- } catch (e) {}
136
+ } catch (e) {
137
+ }
159
138
  }
160
139
  }
161
- exports.Snapshotter = Snapshotter;
140
+ // Annotate the CommonJS export names for ESM import in node:
141
+ 0 && (module.exports = {
142
+ Snapshotter
143
+ });