@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.1

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 (376) hide show
  1. package/ThirdPartyNotices.txt +65 -123
  2. package/browsers.json +16 -14
  3. package/index.js +1 -1
  4. package/lib/androidServerImpl.js +47 -50
  5. package/lib/browserServerImpl.js +89 -69
  6. package/lib/checkly/escapeRegExp.js +23 -27
  7. package/lib/checkly/fetch.js +64 -46
  8. package/lib/checkly/secretsFilter.js +49 -35
  9. package/lib/cli/driver.js +71 -69
  10. package/lib/cli/program.js +400 -359
  11. package/lib/cli/programWithTestStub.js +51 -45
  12. package/lib/client/accessibility.js +31 -32
  13. package/lib/client/android.js +151 -242
  14. package/lib/client/api.js +135 -283
  15. package/lib/client/artifact.js +39 -36
  16. package/lib/client/browser.js +96 -71
  17. package/lib/client/browserContext.js +314 -345
  18. package/lib/client/browserType.js +103 -127
  19. package/lib/client/cdpSession.js +29 -31
  20. package/lib/client/channelOwner.js +89 -112
  21. package/lib/client/clientHelper.js +48 -39
  22. package/lib/client/clientInstrumentation.js +40 -37
  23. package/lib/client/clientStackTrace.js +41 -37
  24. package/lib/client/clock.js +36 -36
  25. package/lib/client/connection.js +188 -214
  26. package/lib/client/consoleMessage.js +31 -28
  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 +80 -77
  31. package/lib/client/elementHandle.js +120 -159
  32. package/lib/client/errors.js +53 -53
  33. package/lib/client/eventEmitter.js +124 -121
  34. package/lib/client/events.js +72 -68
  35. package/lib/client/fetch.js +166 -190
  36. package/lib/client/fileChooser.js +25 -24
  37. package/lib/client/fileUtils.js +31 -28
  38. package/lib/client/frame.js +207 -306
  39. package/lib/client/harRouter.js +42 -52
  40. package/lib/client/input.js +42 -69
  41. package/lib/client/jsHandle.js +54 -69
  42. package/lib/client/jsonPipe.js +27 -23
  43. package/lib/client/localUtils.js +29 -29
  44. package/lib/client/locator.js +145 -237
  45. package/lib/client/network.js +282 -307
  46. package/lib/client/page.js +269 -318
  47. package/lib/client/platform.js +46 -43
  48. package/lib/client/playwright.js +51 -76
  49. package/lib/client/selectors.js +45 -63
  50. package/lib/client/stream.js +29 -25
  51. package/lib/client/timeoutSettings.js +55 -41
  52. package/lib/client/tracing.js +49 -96
  53. package/lib/client/types.js +26 -22
  54. package/lib/client/video.js +35 -27
  55. package/lib/client/waiter.js +69 -88
  56. package/lib/client/webError.js +25 -23
  57. package/lib/client/webSocket.js +43 -56
  58. package/lib/client/worker.js +48 -56
  59. package/lib/client/writableStream.js +27 -23
  60. package/lib/generated/bindingsControllerSource.js +28 -0
  61. package/lib/generated/clockSource.js +26 -6
  62. package/lib/generated/consoleApiSource.js +26 -6
  63. package/lib/generated/injectedScriptSource.js +26 -6
  64. package/lib/generated/pollingRecorderSource.js +26 -6
  65. package/lib/generated/storageScriptSource.js +28 -0
  66. package/lib/generated/utilityScriptSource.js +26 -6
  67. package/lib/generated/webSocketMockSource.js +333 -5
  68. package/lib/inProcessFactory.js +51 -53
  69. package/lib/inprocess.js +2 -19
  70. package/lib/outofprocess.js +51 -46
  71. package/lib/protocol/serializers.js +153 -134
  72. package/lib/protocol/validator.js +2807 -2739
  73. package/lib/protocol/validatorPrimitives.js +114 -73
  74. package/lib/remote/playwrightConnection.js +88 -242
  75. package/lib/remote/playwrightServer.js +305 -92
  76. package/lib/server/accessibility.js +44 -37
  77. package/lib/server/android/android.js +251 -241
  78. package/lib/server/android/backendAdb.js +87 -82
  79. package/lib/server/artifact.js +78 -55
  80. package/lib/server/bidi/bidiBrowser.js +297 -158
  81. package/lib/server/bidi/bidiChromium.js +119 -89
  82. package/lib/server/bidi/bidiConnection.js +66 -83
  83. package/lib/server/bidi/bidiExecutionContext.js +129 -113
  84. package/lib/server/bidi/bidiFirefox.js +86 -76
  85. package/lib/server/bidi/bidiInput.js +106 -117
  86. package/lib/server/bidi/bidiNetworkManager.js +142 -159
  87. package/lib/server/bidi/bidiOverCdp.js +57 -58
  88. package/lib/server/bidi/bidiPage.js +260 -260
  89. package/lib/server/bidi/bidiPdf.js +52 -86
  90. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  91. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  92. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  93. package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
  94. package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
  95. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  96. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  97. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  98. package/lib/server/browser.js +93 -95
  99. package/lib/server/browserContext.js +419 -429
  100. package/lib/server/browserType.js +186 -216
  101. package/lib/server/callLog.js +47 -44
  102. package/lib/server/chromium/chromium.js +235 -203
  103. package/lib/server/chromium/chromiumSwitches.js +100 -67
  104. package/lib/server/chromium/crAccessibility.js +157 -131
  105. package/lib/server/chromium/crBrowser.js +310 -292
  106. package/lib/server/chromium/crConnection.js +95 -121
  107. package/lib/server/chromium/crCoverage.js +121 -131
  108. package/lib/server/chromium/crDevTools.js +60 -51
  109. package/lib/server/chromium/crDragDrop.js +68 -84
  110. package/lib/server/chromium/crExecutionContext.js +89 -83
  111. package/lib/server/chromium/crInput.js +118 -113
  112. package/lib/server/chromium/crNetworkManager.js +274 -375
  113. package/lib/server/chromium/crPage.js +536 -593
  114. package/lib/server/chromium/crPdf.js +54 -86
  115. package/lib/server/chromium/crProtocolHelper.js +92 -80
  116. package/lib/server/chromium/crServiceWorker.js +84 -73
  117. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  118. package/lib/server/chromium/protocol.d.js +16 -0
  119. package/lib/server/chromium/videoRecorder.js +66 -99
  120. package/lib/server/clock.js +107 -83
  121. package/lib/server/codegen/csharp.js +192 -162
  122. package/lib/server/codegen/java.js +156 -129
  123. package/lib/server/codegen/javascript.js +163 -148
  124. package/lib/server/codegen/jsonl.js +32 -28
  125. package/lib/server/codegen/language.js +75 -52
  126. package/lib/server/codegen/languages.js +65 -27
  127. package/lib/server/codegen/python.js +141 -126
  128. package/lib/server/codegen/types.js +15 -4
  129. package/lib/server/console.js +28 -32
  130. package/lib/server/cookieStore.js +108 -86
  131. package/lib/server/debugController.js +147 -151
  132. package/lib/server/debugger.js +86 -78
  133. package/lib/server/deviceDescriptors.js +37 -24
  134. package/lib/server/deviceDescriptorsSource.json +238 -128
  135. package/lib/server/dialog.js +84 -39
  136. package/lib/server/dispatchers/androidDispatcher.js +257 -148
  137. package/lib/server/dispatchers/artifactDispatcher.js +79 -79
  138. package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
  139. package/lib/server/dispatchers/browserDispatcher.js +96 -148
  140. package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
  141. package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
  142. package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
  143. package/lib/server/dispatchers/dialogDispatcher.js +34 -31
  144. package/lib/server/dispatchers/dispatcher.js +208 -248
  145. package/lib/server/dispatchers/electronDispatcher.js +66 -70
  146. package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
  147. package/lib/server/dispatchers/frameDispatcher.js +211 -272
  148. package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
  149. package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
  150. package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
  151. package/lib/server/dispatchers/networkDispatchers.js +117 -128
  152. package/lib/server/dispatchers/pageDispatcher.js +256 -248
  153. package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
  154. package/lib/server/dispatchers/streamDispatcher.js +52 -48
  155. package/lib/server/dispatchers/tracingDispatcher.js +47 -52
  156. package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
  157. package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
  158. package/lib/server/dom.js +485 -582
  159. package/lib/server/download.js +47 -37
  160. package/lib/server/electron/electron.js +216 -243
  161. package/lib/server/electron/loader.js +9 -37
  162. package/lib/server/errors.js +47 -46
  163. package/lib/server/fetch.js +317 -360
  164. package/lib/server/fileChooser.js +25 -24
  165. package/lib/server/fileUploadUtils.js +66 -60
  166. package/lib/server/firefox/ffAccessibility.js +153 -131
  167. package/lib/server/firefox/ffBrowser.js +268 -305
  168. package/lib/server/firefox/ffConnection.js +63 -84
  169. package/lib/server/firefox/ffExecutionContext.js +92 -73
  170. package/lib/server/firefox/ffInput.js +82 -84
  171. package/lib/server/firefox/ffNetworkManager.js +137 -114
  172. package/lib/server/firefox/ffPage.js +261 -293
  173. package/lib/server/firefox/firefox.js +80 -72
  174. package/lib/server/firefox/protocol.d.js +16 -0
  175. package/lib/server/formData.js +107 -35
  176. package/lib/server/frameSelectors.js +98 -114
  177. package/lib/server/frames.js +845 -1055
  178. package/lib/server/har/harRecorder.js +85 -77
  179. package/lib/server/har/harTracer.js +290 -223
  180. package/lib/server/harBackend.js +80 -80
  181. package/lib/server/helper.js +55 -59
  182. package/lib/server/index.js +59 -99
  183. package/lib/server/input.js +151 -189
  184. package/lib/server/instrumentation.js +57 -44
  185. package/lib/server/javascript.js +133 -134
  186. package/lib/server/launchApp.js +113 -75
  187. package/lib/server/localUtils.js +150 -142
  188. package/lib/server/macEditingCommands.js +141 -137
  189. package/lib/server/network.js +299 -303
  190. package/lib/server/page.js +513 -544
  191. package/lib/server/pipeTransport.js +49 -45
  192. package/lib/server/playwright.js +58 -67
  193. package/lib/server/progress.js +137 -68
  194. package/lib/server/protocolError.js +34 -31
  195. package/lib/server/recorder/chat.js +70 -86
  196. package/lib/server/recorder/recorderApp.js +341 -176
  197. package/lib/server/recorder/recorderInTraceViewer.js +65 -94
  198. package/lib/server/recorder/recorderRunner.js +93 -116
  199. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  200. package/lib/server/recorder/recorderUtils.js +104 -47
  201. package/lib/server/recorder/throttledFile.js +42 -30
  202. package/lib/server/recorder.js +395 -275
  203. package/lib/server/registry/browserFetcher.js +106 -101
  204. package/lib/server/registry/dependencies.js +245 -196
  205. package/lib/server/registry/index.js +930 -803
  206. package/lib/server/registry/nativeDeps.js +1073 -464
  207. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  208. package/lib/server/screenshotter.js +160 -191
  209. package/lib/server/selectors.js +90 -51
  210. package/lib/server/socksClientCertificatesInterceptor.js +171 -186
  211. package/lib/server/socksInterceptor.js +62 -70
  212. package/lib/server/trace/recorder/snapshotter.js +76 -102
  213. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  214. package/lib/server/trace/recorder/tracing.js +354 -362
  215. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  216. package/lib/server/trace/viewer/traceViewer.js +160 -147
  217. package/lib/server/transport.js +119 -134
  218. package/lib/server/types.js +26 -22
  219. package/lib/server/usKeyboardLayout.js +135 -545
  220. package/lib/server/utils/ascii.js +39 -26
  221. package/lib/server/utils/comparators.js +105 -103
  222. package/lib/server/utils/crypto.js +157 -112
  223. package/lib/server/utils/debug.js +36 -32
  224. package/lib/server/utils/debugLogger.js +77 -48
  225. package/lib/server/utils/env.js +52 -37
  226. package/lib/server/utils/eventsHelper.js +29 -28
  227. package/lib/server/utils/expectUtils.js +31 -26
  228. package/lib/server/utils/fileUtils.js +123 -136
  229. package/lib/server/utils/happyEyeballs.js +141 -126
  230. package/lib/server/utils/hostPlatform.js +84 -120
  231. package/lib/server/utils/httpServer.js +106 -121
  232. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  233. package/lib/server/utils/image_tools/compare.js +44 -43
  234. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  235. package/lib/server/utils/image_tools/stats.js +40 -40
  236. package/lib/server/utils/linuxUtils.js +50 -37
  237. package/lib/server/utils/network.js +152 -96
  238. package/lib/server/utils/nodePlatform.js +87 -79
  239. package/lib/server/utils/pipeTransport.js +44 -42
  240. package/lib/server/utils/processLauncher.js +111 -121
  241. package/lib/server/utils/profiler.js +52 -39
  242. package/lib/server/utils/socksProxy.js +280 -339
  243. package/lib/server/utils/spawnAsync.js +37 -41
  244. package/lib/server/utils/task.js +31 -38
  245. package/lib/server/utils/userAgent.js +73 -66
  246. package/lib/server/utils/wsServer.js +68 -75
  247. package/lib/server/utils/zipFile.js +36 -37
  248. package/lib/server/utils/zones.js +37 -34
  249. package/lib/server/webkit/protocol.d.js +16 -0
  250. package/lib/server/webkit/webkit.js +77 -61
  251. package/lib/server/webkit/wkAccessibility.js +161 -118
  252. package/lib/server/webkit/wkBrowser.js +193 -184
  253. package/lib/server/webkit/wkConnection.js +59 -83
  254. package/lib/server/webkit/wkExecutionContext.js +85 -70
  255. package/lib/server/webkit/wkInput.js +97 -95
  256. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  257. package/lib/server/webkit/wkPage.js +568 -667
  258. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  259. package/lib/server/webkit/wkWorkers.js +79 -79
  260. package/lib/utils/expectUtils.js +31 -26
  261. package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
  262. package/lib/utils/isomorphic/assert.js +28 -22
  263. package/lib/utils/isomorphic/colors.js +66 -59
  264. package/lib/utils/isomorphic/cssParser.js +120 -125
  265. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  266. package/lib/utils/isomorphic/headers.js +38 -37
  267. package/lib/utils/isomorphic/locatorGenerators.js +358 -357
  268. package/lib/utils/isomorphic/locatorParser.js +96 -105
  269. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  270. package/lib/utils/isomorphic/manualPromise.js +46 -39
  271. package/lib/utils/isomorphic/mimeType.js +447 -25
  272. package/lib/utils/isomorphic/multimap.js +34 -27
  273. package/lib/utils/isomorphic/protocolFormatter.js +68 -0
  274. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  275. package/lib/utils/isomorphic/recorderUtils.js +140 -181
  276. package/lib/utils/isomorphic/rtti.js +35 -33
  277. package/lib/utils/isomorphic/selectorParser.js +182 -193
  278. package/lib/utils/isomorphic/semaphore.js +27 -24
  279. package/lib/utils/isomorphic/stackTrace.js +87 -98
  280. package/lib/utils/isomorphic/stringUtils.js +98 -112
  281. package/lib/utils/isomorphic/time.js +46 -22
  282. package/lib/utils/isomorphic/timeoutRunner.js +53 -53
  283. package/lib/utils/isomorphic/traceUtils.js +37 -41
  284. package/lib/utils/isomorphic/types.js +15 -4
  285. package/lib/utils/isomorphic/urlMatch.js +113 -67
  286. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  287. package/lib/utils.js +101 -443
  288. package/lib/utilsBundle.js +101 -52
  289. package/lib/utilsBundleImpl/index.js +160 -150
  290. package/lib/zipBundle.js +32 -23
  291. package/lib/zipBundleImpl.js +4 -4
  292. package/package.json +1 -1
  293. package/types/protocol.d.ts +1267 -1057
  294. package/types/types.d.ts +131 -29
  295. package/lib/common/socksProxy.js +0 -569
  296. package/lib/common/timeoutSettings.js +0 -73
  297. package/lib/common/types.js +0 -5
  298. package/lib/image_tools/colorUtils.js +0 -98
  299. package/lib/image_tools/compare.js +0 -108
  300. package/lib/image_tools/imageChannel.js +0 -70
  301. package/lib/image_tools/stats.js +0 -102
  302. package/lib/protocol/debug.js +0 -27
  303. package/lib/protocol/transport.js +0 -82
  304. package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
  305. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  306. package/lib/server/recorder/contextRecorder.js +0 -290
  307. package/lib/server/recorder/recorderCollection.js +0 -104
  308. package/lib/server/recorder/recorderFrontend.js +0 -5
  309. package/lib/server/storageScript.js +0 -160
  310. package/lib/server/timeoutSettings.js +0 -74
  311. package/lib/third_party/diff_match_patch.js +0 -2222
  312. package/lib/utils/ascii.js +0 -31
  313. package/lib/utils/comparators.js +0 -171
  314. package/lib/utils/crypto.js +0 -174
  315. package/lib/utils/debug.js +0 -46
  316. package/lib/utils/debugLogger.js +0 -91
  317. package/lib/utils/env.js +0 -49
  318. package/lib/utils/eventsHelper.js +0 -38
  319. package/lib/utils/fileUtils.js +0 -205
  320. package/lib/utils/happy-eyeballs.js +0 -210
  321. package/lib/utils/headers.js +0 -52
  322. package/lib/utils/hostPlatform.js +0 -133
  323. package/lib/utils/httpServer.js +0 -237
  324. package/lib/utils/index.js +0 -368
  325. package/lib/utils/linuxUtils.js +0 -78
  326. package/lib/utils/manualPromise.js +0 -109
  327. package/lib/utils/multimap.js +0 -75
  328. package/lib/utils/network.js +0 -160
  329. package/lib/utils/processLauncher.js +0 -248
  330. package/lib/utils/profiler.js +0 -53
  331. package/lib/utils/rtti.js +0 -44
  332. package/lib/utils/semaphore.js +0 -51
  333. package/lib/utils/spawnAsync.js +0 -45
  334. package/lib/utils/stackTrace.js +0 -121
  335. package/lib/utils/task.js +0 -58
  336. package/lib/utils/time.js +0 -37
  337. package/lib/utils/timeoutRunner.js +0 -66
  338. package/lib/utils/traceUtils.js +0 -44
  339. package/lib/utils/userAgent.js +0 -105
  340. package/lib/utils/wsServer.js +0 -127
  341. package/lib/utils/zipFile.js +0 -75
  342. package/lib/utils/zones.js +0 -62
  343. package/lib/vite/htmlReport/index.html +0 -69
  344. package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
  345. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
  346. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  347. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  348. package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
  349. package/lib/vite/recorder/index.html +0 -29
  350. package/lib/vite/recorder/playwright-logo.svg +0 -9
  351. package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
  352. package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
  353. package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
  354. package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
  355. package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
  356. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
  357. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  358. package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
  359. package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
  360. package/lib/vite/traceViewer/embedded.html +0 -18
  361. package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
  362. package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
  363. package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
  364. package/lib/vite/traceViewer/index.html +0 -47
  365. package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
  366. package/lib/vite/traceViewer/playwright-logo.svg +0 -9
  367. package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
  368. package/lib/vite/traceViewer/recorder.html +0 -17
  369. package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
  370. package/lib/vite/traceViewer/snapshot.html +0 -21
  371. package/lib/vite/traceViewer/sw.bundle.js +0 -3
  372. package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
  373. package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
  374. package/lib/vite/traceViewer/uiMode.html +0 -21
  375. package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
  376. package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
@@ -1,158 +1,147 @@
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 pageDispatcher_exports = {};
20
+ __export(pageDispatcher_exports, {
21
+ BindingCallDispatcher: () => BindingCallDispatcher,
22
+ PageDispatcher: () => PageDispatcher,
23
+ WorkerDispatcher: () => WorkerDispatcher
5
24
  });
6
- exports.WorkerDispatcher = exports.PageDispatcher = exports.BindingCallDispatcher = void 0;
7
- var _page = require("../page");
8
- var _dispatcher = require("./dispatcher");
9
- var _errors = require("../errors");
10
- var _artifactDispatcher = require("./artifactDispatcher");
11
- var _elementHandlerDispatcher = require("./elementHandlerDispatcher");
12
- var _frameDispatcher = require("./frameDispatcher");
13
- var _jsHandleDispatcher = require("./jsHandleDispatcher");
14
- var _networkDispatchers = require("./networkDispatchers");
15
- var _webSocketRouteDispatcher = require("./webSocketRouteDispatcher");
16
- var _crypto = require("../utils/crypto");
17
- var _urlMatch = require("../../utils/isomorphic/urlMatch");
18
- /**
19
- * Copyright (c) Microsoft Corporation.
20
- *
21
- * Licensed under the Apache License, Version 2.0 (the 'License');
22
- * you may not use this file except in compliance with the License.
23
- * You may obtain a copy of the License at
24
- *
25
- * http://www.apache.org/licenses/LICENSE-2.0
26
- *
27
- * Unless required by applicable law or agreed to in writing, software
28
- * distributed under the License is distributed on an 'AS IS' BASIS,
29
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30
- * See the License for the specific language governing permissions and
31
- * limitations under the License.
32
- */
33
-
34
- class PageDispatcher extends _dispatcher.Dispatcher {
35
- static from(parentScope, page) {
36
- return PageDispatcher.fromNullable(parentScope, page);
37
- }
38
- static fromNullable(parentScope, page) {
39
- if (!page) return undefined;
40
- const result = (0, _dispatcher.existingDispatcher)(page);
41
- return result || new PageDispatcher(parentScope, page);
42
- }
25
+ module.exports = __toCommonJS(pageDispatcher_exports);
26
+ var import_page = require("../page");
27
+ var import_dispatcher = require("./dispatcher");
28
+ var import_errors = require("../errors");
29
+ var import_artifactDispatcher = require("./artifactDispatcher");
30
+ var import_elementHandlerDispatcher = require("./elementHandlerDispatcher");
31
+ var import_frameDispatcher = require("./frameDispatcher");
32
+ var import_jsHandleDispatcher = require("./jsHandleDispatcher");
33
+ var import_networkDispatchers = require("./networkDispatchers");
34
+ var import_networkDispatchers2 = require("./networkDispatchers");
35
+ var import_networkDispatchers3 = require("./networkDispatchers");
36
+ var import_webSocketRouteDispatcher = require("./webSocketRouteDispatcher");
37
+ var import_instrumentation = require("../instrumentation");
38
+ var import_urlMatch = require("../../utils/isomorphic/urlMatch");
39
+ class PageDispatcher extends import_dispatcher.Dispatcher {
43
40
  constructor(parentScope, page) {
44
- // TODO: theoretically, there could be more than one frame already.
45
- // If we split pageCreated and pageReady, there should be no main frame during pageCreated.
46
-
47
- // We will reparent it to the page below using adopt.
48
- const mainFrame = _frameDispatcher.FrameDispatcher.from(parentScope, page.mainFrame());
49
- super(parentScope, page, 'Page', {
41
+ const mainFrame = import_frameDispatcher.FrameDispatcher.from(parentScope, page.mainFrame());
42
+ super(parentScope, page, "Page", {
50
43
  mainFrame,
51
- viewportSize: page.viewportSize() || undefined,
44
+ viewportSize: page.emulatedSize()?.viewport,
52
45
  isClosed: page.isClosed(),
53
46
  opener: PageDispatcher.fromNullable(parentScope, page.opener())
54
47
  });
55
48
  this._type_EventTarget = true;
56
49
  this._type_Page = true;
57
- this._page = void 0;
58
- this._subscriptions = new Set();
50
+ this._subscriptions = /* @__PURE__ */ new Set();
59
51
  this._webSocketInterceptionPatterns = [];
52
+ this._bindings = [];
53
+ this._initScripts = [];
54
+ this._interceptionUrlMatchers = [];
55
+ this._locatorHandlers = /* @__PURE__ */ new Set();
56
+ this._jsCoverageActive = false;
57
+ this._cssCoverageActive = false;
60
58
  this.adopt(mainFrame);
61
59
  this._page = page;
62
- this.addObjectListener(_page.Page.Events.Close, () => {
63
- this._dispatchEvent('close');
60
+ this._requestInterceptor = (route, request) => {
61
+ const matchesSome = this._interceptionUrlMatchers.some((urlMatch) => (0, import_urlMatch.urlMatches)(this._page.browserContext._options.baseURL, request.url(), urlMatch));
62
+ if (!matchesSome) {
63
+ route.continue({ isFallback: true }).catch(() => {
64
+ });
65
+ return;
66
+ }
67
+ this._dispatchEvent("route", { route: new import_networkDispatchers3.RouteDispatcher(import_networkDispatchers.RequestDispatcher.from(this.parentScope(), request), route) });
68
+ };
69
+ this.addObjectListener(import_page.Page.Events.Close, () => {
70
+ this._dispatchEvent("close");
64
71
  this._dispose();
65
72
  });
66
- this.addObjectListener(_page.Page.Events.Crash, () => this._dispatchEvent('crash'));
67
- this.addObjectListener(_page.Page.Events.Download, download => {
68
- // Artifact can outlive the page, so bind to the context scope.
69
- this._dispatchEvent('download', {
70
- url: download.url,
71
- suggestedFilename: download.suggestedFilename(),
72
- artifact: _artifactDispatcher.ArtifactDispatcher.from(parentScope, download.artifact)
73
- });
73
+ this.addObjectListener(import_page.Page.Events.Crash, () => this._dispatchEvent("crash"));
74
+ this.addObjectListener(import_page.Page.Events.Download, (download) => {
75
+ this._dispatchEvent("download", { url: download.url, suggestedFilename: download.suggestedFilename(), artifact: import_artifactDispatcher.ArtifactDispatcher.from(parentScope, download.artifact) });
74
76
  });
75
- this.addObjectListener(_page.Page.Events.FileChooser, fileChooser => this._dispatchEvent('fileChooser', {
76
- element: _elementHandlerDispatcher.ElementHandleDispatcher.from(mainFrame, fileChooser.element()),
77
+ this.addObjectListener(import_page.Page.Events.EmulatedSizeChanged, () => this._dispatchEvent("viewportSizeChanged", { viewportSize: page.emulatedSize()?.viewport }));
78
+ this.addObjectListener(import_page.Page.Events.FileChooser, (fileChooser) => this._dispatchEvent("fileChooser", {
79
+ element: import_elementHandlerDispatcher.ElementHandleDispatcher.from(mainFrame, fileChooser.element()),
77
80
  isMultiple: fileChooser.isMultiple()
78
81
  }));
79
- this.addObjectListener(_page.Page.Events.FrameAttached, frame => this._onFrameAttached(frame));
80
- this.addObjectListener(_page.Page.Events.FrameDetached, frame => this._onFrameDetached(frame));
81
- this.addObjectListener(_page.Page.Events.LocatorHandlerTriggered, uid => this._dispatchEvent('locatorHandlerTriggered', {
82
- uid
83
- }));
84
- this.addObjectListener(_page.Page.Events.WebSocket, webSocket => this._dispatchEvent('webSocket', {
85
- webSocket: new _networkDispatchers.WebSocketDispatcher(this, webSocket)
86
- }));
87
- this.addObjectListener(_page.Page.Events.Worker, worker => this._dispatchEvent('worker', {
88
- worker: new WorkerDispatcher(this, worker)
89
- }));
90
- this.addObjectListener(_page.Page.Events.Video, artifact => this._dispatchEvent('video', {
91
- artifact: _artifactDispatcher.ArtifactDispatcher.from(parentScope, artifact)
92
- }));
93
- if (page._video) this._dispatchEvent('video', {
94
- artifact: _artifactDispatcher.ArtifactDispatcher.from(this.parentScope(), page._video)
95
- });
96
- // Ensure client knows about all frames.
97
- const frames = page._frameManager.frames();
98
- for (let i = 1; i < frames.length; i++) this._onFrameAttached(frames[i]);
82
+ this.addObjectListener(import_page.Page.Events.FrameAttached, (frame) => this._onFrameAttached(frame));
83
+ this.addObjectListener(import_page.Page.Events.FrameDetached, (frame) => this._onFrameDetached(frame));
84
+ this.addObjectListener(import_page.Page.Events.LocatorHandlerTriggered, (uid) => this._dispatchEvent("locatorHandlerTriggered", { uid }));
85
+ this.addObjectListener(import_page.Page.Events.WebSocket, (webSocket) => this._dispatchEvent("webSocket", { webSocket: new import_networkDispatchers3.WebSocketDispatcher(this, webSocket) }));
86
+ this.addObjectListener(import_page.Page.Events.Worker, (worker) => this._dispatchEvent("worker", { worker: new WorkerDispatcher(this, worker) }));
87
+ this.addObjectListener(import_page.Page.Events.Video, (artifact) => this._dispatchEvent("video", { artifact: import_artifactDispatcher.ArtifactDispatcher.from(parentScope, artifact) }));
88
+ if (page.video)
89
+ this._dispatchEvent("video", { artifact: import_artifactDispatcher.ArtifactDispatcher.from(this.parentScope(), page.video) });
90
+ const frames = page.frameManager.frames();
91
+ for (let i = 1; i < frames.length; i++)
92
+ this._onFrameAttached(frames[i]);
99
93
  }
100
- page() {
101
- return this._page;
94
+ static from(parentScope, page) {
95
+ return PageDispatcher.fromNullable(parentScope, page);
102
96
  }
103
- async setDefaultNavigationTimeoutNoReply(params, metadata) {
104
- this._page.setDefaultNavigationTimeout(params.timeout);
97
+ static fromNullable(parentScope, page) {
98
+ if (!page)
99
+ return void 0;
100
+ const result = parentScope.connection.existingDispatcher(page);
101
+ return result || new PageDispatcher(parentScope, page);
105
102
  }
106
- async setDefaultTimeoutNoReply(params, metadata) {
107
- this._page.setDefaultTimeout(params.timeout);
103
+ page() {
104
+ return this._page;
108
105
  }
109
- async exposeBinding(params, metadata) {
110
- await this._page.exposeBinding(params.name, !!params.needsHandle, (source, ...args) => {
111
- // When reusing the context, we might have some bindings called late enough,
112
- // after context and page dispatchers have been disposed.
113
- if (this._disposed) return;
114
- const binding = new BindingCallDispatcher(this, params.name, !!params.needsHandle, source, args);
115
- this._dispatchEvent('bindingCall', {
116
- binding
117
- });
118
- return binding.promise();
106
+ async exposeBinding(params, progress) {
107
+ const binding = await this._page.exposeBinding(progress, params.name, !!params.needsHandle, (source, ...args) => {
108
+ if (this._disposed)
109
+ return;
110
+ const binding2 = new BindingCallDispatcher(this, params.name, !!params.needsHandle, source, args);
111
+ this._dispatchEvent("bindingCall", { binding: binding2 });
112
+ return binding2.promise();
119
113
  });
114
+ this._bindings.push(binding);
120
115
  }
121
- async setExtraHTTPHeaders(params, metadata) {
122
- await this._page.setExtraHTTPHeaders(params.headers);
116
+ async setExtraHTTPHeaders(params, progress) {
117
+ await this._page.setExtraHTTPHeaders(progress, params.headers);
123
118
  }
124
- async reload(params, metadata) {
125
- return {
126
- response: _networkDispatchers.ResponseDispatcher.fromNullable(this.parentScope(), await this._page.reload(metadata, params))
127
- };
119
+ async reload(params, progress) {
120
+ return { response: import_networkDispatchers2.ResponseDispatcher.fromNullable(this.parentScope(), await this._page.reload(progress, params)) };
128
121
  }
129
- async goBack(params, metadata) {
130
- return {
131
- response: _networkDispatchers.ResponseDispatcher.fromNullable(this.parentScope(), await this._page.goBack(metadata, params))
132
- };
122
+ async goBack(params, progress) {
123
+ return { response: import_networkDispatchers2.ResponseDispatcher.fromNullable(this.parentScope(), await this._page.goBack(progress, params)) };
133
124
  }
134
- async goForward(params, metadata) {
135
- return {
136
- response: _networkDispatchers.ResponseDispatcher.fromNullable(this.parentScope(), await this._page.goForward(metadata, params))
137
- };
125
+ async goForward(params, progress) {
126
+ return { response: import_networkDispatchers2.ResponseDispatcher.fromNullable(this.parentScope(), await this._page.goForward(progress, params)) };
138
127
  }
139
- async requestGC(params, metadata) {
140
- await this._page.requestGC();
128
+ async requestGC(params, progress) {
129
+ await progress.race(this._page.requestGC());
141
130
  }
142
- async registerLocatorHandler(params, metadata) {
131
+ async registerLocatorHandler(params, progress) {
143
132
  const uid = this._page.registerLocatorHandler(params.selector, params.noWaitAfter);
144
- return {
145
- uid
146
- };
133
+ this._locatorHandlers.add(uid);
134
+ return { uid };
147
135
  }
148
- async resolveLocatorHandlerNoReply(params, metadata) {
136
+ async resolveLocatorHandlerNoReply(params, progress) {
149
137
  this._page.resolveLocatorHandler(params.uid, params.remove);
150
138
  }
151
- async unregisterLocatorHandler(params, metadata) {
139
+ async unregisterLocatorHandler(params, progress) {
152
140
  this._page.unregisterLocatorHandler(params.uid);
141
+ this._locatorHandlers.delete(params.uid);
153
142
  }
154
- async emulateMedia(params, metadata) {
155
- await this._page.emulateMedia({
143
+ async emulateMedia(params, progress) {
144
+ await this._page.emulateMedia(progress, {
156
145
  media: params.media,
157
146
  colorScheme: params.colorScheme,
158
147
  reducedMotion: params.reducedMotion,
@@ -160,195 +149,209 @@ class PageDispatcher extends _dispatcher.Dispatcher {
160
149
  contrast: params.contrast
161
150
  });
162
151
  }
163
- async setViewportSize(params, metadata) {
164
- await this._page.setViewportSize(params.viewportSize);
152
+ async setViewportSize(params, progress) {
153
+ await this._page.setViewportSize(progress, params.viewportSize);
165
154
  }
166
- async addInitScript(params, metadata) {
167
- await this._page.addInitScript(params.source);
155
+ async addInitScript(params, progress) {
156
+ this._initScripts.push(await this._page.addInitScript(progress, params.source));
168
157
  }
169
- async setNetworkInterceptionPatterns(params, metadata) {
158
+ async setNetworkInterceptionPatterns(params, progress) {
159
+ const hadMatchers = this._interceptionUrlMatchers.length > 0;
170
160
  if (!params.patterns.length) {
171
- await this._page.setClientRequestInterceptor(undefined);
172
- return;
161
+ if (hadMatchers)
162
+ await this._page.removeRequestInterceptor(this._requestInterceptor);
163
+ this._interceptionUrlMatchers = [];
164
+ } else {
165
+ this._interceptionUrlMatchers = params.patterns.map((pattern) => pattern.regexSource ? new RegExp(pattern.regexSource, pattern.regexFlags) : pattern.glob);
166
+ if (!hadMatchers)
167
+ await this._page.addRequestInterceptor(progress, this._requestInterceptor);
173
168
  }
174
- const urlMatchers = params.patterns.map(pattern => pattern.regexSource ? new RegExp(pattern.regexSource, pattern.regexFlags) : pattern.glob);
175
- await this._page.setClientRequestInterceptor((route, request) => {
176
- const matchesSome = urlMatchers.some(urlMatch => (0, _urlMatch.urlMatches)(this._page._browserContext._options.baseURL, request.url(), urlMatch));
177
- if (!matchesSome) return false;
178
- this._dispatchEvent('route', {
179
- route: _networkDispatchers.RouteDispatcher.from(_networkDispatchers.RequestDispatcher.from(this.parentScope(), request), route)
180
- });
181
- return true;
182
- });
183
169
  }
184
- async setWebSocketInterceptionPatterns(params, metadata) {
170
+ async setWebSocketInterceptionPatterns(params, progress) {
185
171
  this._webSocketInterceptionPatterns = params.patterns;
186
- if (params.patterns.length) await _webSocketRouteDispatcher.WebSocketRouteDispatcher.installIfNeeded(this._page);
172
+ if (params.patterns.length && !this._routeWebSocketInitScript)
173
+ this._routeWebSocketInitScript = await import_webSocketRouteDispatcher.WebSocketRouteDispatcher.install(progress, this.connection, this._page);
187
174
  }
188
- async expectScreenshot(params, metadata) {
189
- const mask = (params.mask || []).map(({
190
- frame,
191
- selector
192
- }) => ({
175
+ async expectScreenshot(params, progress) {
176
+ const mask = (params.mask || []).map(({ frame, selector }) => ({
193
177
  frame: frame._object,
194
178
  selector
195
179
  }));
196
180
  const locator = params.locator ? {
197
181
  frame: params.locator.frame._object,
198
182
  selector: params.locator.selector
199
- } : undefined;
200
- return await this._page.expectScreenshot(metadata, {
183
+ } : void 0;
184
+ return await this._page.expectScreenshot(progress, {
201
185
  ...params,
202
186
  locator,
203
187
  mask
204
188
  });
205
189
  }
206
- async screenshot(params, metadata) {
207
- const mask = (params.mask || []).map(({
208
- frame,
209
- selector
210
- }) => ({
190
+ async screenshot(params, progress) {
191
+ const mask = (params.mask || []).map(({ frame, selector }) => ({
211
192
  frame: frame._object,
212
193
  selector
213
194
  }));
214
- return {
215
- binary: await this._page.screenshot(metadata, {
216
- ...params,
217
- mask
218
- })
219
- };
195
+ return { binary: await this._page.screenshot(progress, { ...params, mask }) };
220
196
  }
221
- async close(params, metadata) {
222
- if (!params.runBeforeUnload) metadata.potentiallyClosesScope = true;
223
- await this._page.close(metadata, params);
197
+ async close(params, progress) {
198
+ if (!params.runBeforeUnload)
199
+ progress.metadata.potentiallyClosesScope = true;
200
+ await this._page.close(params);
224
201
  }
225
- async updateSubscription(params) {
226
- if (params.event === 'fileChooser') await this._page.setFileChooserIntercepted(params.enabled);
227
- if (params.enabled) this._subscriptions.add(params.event);else this._subscriptions.delete(params.event);
202
+ async updateSubscription(params, progress) {
203
+ if (params.event === "fileChooser")
204
+ await this._page.setFileChooserInterceptedBy(params.enabled, this);
205
+ if (params.enabled)
206
+ this._subscriptions.add(params.event);
207
+ else
208
+ this._subscriptions.delete(params.event);
228
209
  }
229
- async keyboardDown(params, metadata) {
230
- await this._page.keyboard.down(params.key);
210
+ async keyboardDown(params, progress) {
211
+ await this._page.keyboard.down(progress, params.key);
231
212
  }
232
- async keyboardUp(params, metadata) {
233
- await this._page.keyboard.up(params.key);
213
+ async keyboardUp(params, progress) {
214
+ await this._page.keyboard.up(progress, params.key);
234
215
  }
235
- async keyboardInsertText(params, metadata) {
236
- await this._page.keyboard.insertText(params.text);
216
+ async keyboardInsertText(params, progress) {
217
+ await this._page.keyboard.insertText(progress, params.text);
237
218
  }
238
- async keyboardType(params, metadata) {
239
- await this._page.keyboard.type(params.text, params);
219
+ async keyboardType(params, progress) {
220
+ await this._page.keyboard.type(progress, params.text, params);
240
221
  }
241
- async keyboardPress(params, metadata) {
242
- await this._page.keyboard.press(params.key, params);
222
+ async keyboardPress(params, progress) {
223
+ await this._page.keyboard.press(progress, params.key, params);
243
224
  }
244
- async mouseMove(params, metadata) {
245
- await this._page.mouse.move(params.x, params.y, params, metadata);
225
+ async mouseMove(params, progress) {
226
+ progress.metadata.point = { x: params.x, y: params.y };
227
+ await this._page.mouse.move(progress, params.x, params.y, params);
246
228
  }
247
- async mouseDown(params, metadata) {
248
- await this._page.mouse.down(params, metadata);
229
+ async mouseDown(params, progress) {
230
+ progress.metadata.point = this._page.mouse.currentPoint();
231
+ await this._page.mouse.down(progress, params);
249
232
  }
250
- async mouseUp(params, metadata) {
251
- await this._page.mouse.up(params, metadata);
233
+ async mouseUp(params, progress) {
234
+ progress.metadata.point = this._page.mouse.currentPoint();
235
+ await this._page.mouse.up(progress, params);
252
236
  }
253
- async mouseClick(params, metadata) {
254
- await this._page.mouse.click(params.x, params.y, params, metadata);
237
+ async mouseClick(params, progress) {
238
+ progress.metadata.point = { x: params.x, y: params.y };
239
+ await this._page.mouse.click(progress, params.x, params.y, params);
255
240
  }
256
- async mouseWheel(params, metadata) {
257
- await this._page.mouse.wheel(params.deltaX, params.deltaY);
241
+ async mouseWheel(params, progress) {
242
+ await this._page.mouse.wheel(progress, params.deltaX, params.deltaY);
258
243
  }
259
- async touchscreenTap(params, metadata) {
260
- await this._page.touchscreen.tap(params.x, params.y, metadata);
244
+ async touchscreenTap(params, progress) {
245
+ progress.metadata.point = { x: params.x, y: params.y };
246
+ await this._page.touchscreen.tap(progress, params.x, params.y);
261
247
  }
262
- async accessibilitySnapshot(params, metadata) {
263
- const rootAXNode = await this._page.accessibility.snapshot({
248
+ async accessibilitySnapshot(params, progress) {
249
+ const rootAXNode = await progress.race(this._page.accessibility.snapshot({
264
250
  interestingOnly: params.interestingOnly,
265
- root: params.root ? params.root._elementHandle : undefined
266
- });
267
- return {
268
- rootAXNode: rootAXNode || undefined
269
- };
251
+ root: params.root ? params.root._elementHandle : void 0
252
+ }));
253
+ return { rootAXNode: rootAXNode || void 0 };
270
254
  }
271
- async pdf(params, metadata) {
272
- if (!this._page.pdf) throw new Error('PDF generation is only supported for Headless Chromium');
273
- const buffer = await this._page.pdf(params);
274
- return {
275
- pdf: buffer
276
- };
255
+ async pdf(params, progress) {
256
+ if (!this._page.pdf)
257
+ throw new Error("PDF generation is only supported for Headless Chromium");
258
+ const buffer = await progress.race(this._page.pdf(params));
259
+ return { pdf: buffer };
260
+ }
261
+ async snapshotForAI(params, progress) {
262
+ return { snapshot: await this._page.snapshotForAI(progress) };
277
263
  }
278
- async bringToFront(params, metadata) {
279
- await this._page.bringToFront();
264
+ async bringToFront(params, progress) {
265
+ await progress.race(this._page.bringToFront());
280
266
  }
281
- async startJSCoverage(params, metadata) {
267
+ async startJSCoverage(params, progress) {
282
268
  const coverage = this._page.coverage;
283
- await coverage.startJSCoverage(params);
269
+ await coverage.startJSCoverage(progress, params);
270
+ this._jsCoverageActive = true;
284
271
  }
285
- async stopJSCoverage(params, metadata) {
272
+ async stopJSCoverage(params, progress) {
273
+ this._jsCoverageActive = false;
286
274
  const coverage = this._page.coverage;
287
275
  return await coverage.stopJSCoverage();
288
276
  }
289
- async startCSSCoverage(params, metadata) {
277
+ async startCSSCoverage(params, progress) {
290
278
  const coverage = this._page.coverage;
291
- await coverage.startCSSCoverage(params);
279
+ await coverage.startCSSCoverage(progress, params);
280
+ this._cssCoverageActive = true;
292
281
  }
293
- async stopCSSCoverage(params, metadata) {
282
+ async stopCSSCoverage(params, progress) {
283
+ this._cssCoverageActive = false;
294
284
  const coverage = this._page.coverage;
295
285
  return await coverage.stopCSSCoverage();
296
286
  }
297
287
  _onFrameAttached(frame) {
298
- this._dispatchEvent('frameAttached', {
299
- frame: _frameDispatcher.FrameDispatcher.from(this.parentScope(), frame)
300
- });
288
+ this._dispatchEvent("frameAttached", { frame: import_frameDispatcher.FrameDispatcher.from(this.parentScope(), frame) });
301
289
  }
302
290
  _onFrameDetached(frame) {
303
- this._dispatchEvent('frameDetached', {
304
- frame: _frameDispatcher.FrameDispatcher.from(this.parentScope(), frame)
305
- });
291
+ this._dispatchEvent("frameDetached", { frame: import_frameDispatcher.FrameDispatcher.from(this.parentScope(), frame) });
306
292
  }
307
293
  _onDispose() {
308
- // Avoid protocol calls for the closed page.
309
- if (!this._page.isClosedOrClosingOrCrashed()) this._page.setClientRequestInterceptor(undefined).catch(() => {});
294
+ if (this._page.isClosedOrClosingOrCrashed())
295
+ return;
296
+ this._interceptionUrlMatchers = [];
297
+ this._page.removeRequestInterceptor(this._requestInterceptor).catch(() => {
298
+ });
299
+ this._page.removeExposedBindings(this._bindings).catch(() => {
300
+ });
301
+ this._bindings = [];
302
+ this._page.removeInitScripts(this._initScripts).catch(() => {
303
+ });
304
+ this._initScripts = [];
305
+ if (this._routeWebSocketInitScript)
306
+ import_webSocketRouteDispatcher.WebSocketRouteDispatcher.uninstall(this.connection, this._page, this._routeWebSocketInitScript).catch(() => {
307
+ });
308
+ this._routeWebSocketInitScript = void 0;
309
+ for (const uid of this._locatorHandlers)
310
+ this._page.unregisterLocatorHandler(uid);
311
+ this._locatorHandlers.clear();
312
+ this._page.setFileChooserInterceptedBy(false, this).catch(() => {
313
+ });
314
+ if (this._jsCoverageActive)
315
+ this._page.coverage.stopJSCoverage().catch(() => {
316
+ });
317
+ this._jsCoverageActive = false;
318
+ if (this._cssCoverageActive)
319
+ this._page.coverage.stopCSSCoverage().catch(() => {
320
+ });
321
+ this._cssCoverageActive = false;
310
322
  }
311
323
  }
312
- exports.PageDispatcher = PageDispatcher;
313
- class WorkerDispatcher extends _dispatcher.Dispatcher {
314
- static fromNullable(scope, worker) {
315
- if (!worker) return undefined;
316
- const result = (0, _dispatcher.existingDispatcher)(worker);
317
- return result || new WorkerDispatcher(scope, worker);
318
- }
324
+ class WorkerDispatcher extends import_dispatcher.Dispatcher {
319
325
  constructor(scope, worker) {
320
- super(scope, worker, 'Worker', {
321
- url: worker.url()
326
+ super(scope, worker, "Worker", {
327
+ url: worker.url
322
328
  });
323
329
  this._type_Worker = true;
324
- this.addObjectListener(_page.Worker.Events.Close, () => this._dispatchEvent('close'));
330
+ this.addObjectListener(import_page.Worker.Events.Close, () => this._dispatchEvent("close"));
325
331
  }
326
- async evaluateExpression(params, metadata) {
327
- return {
328
- value: (0, _jsHandleDispatcher.serializeResult)(await this._object.evaluateExpression(params.expression, params.isFunction, (0, _jsHandleDispatcher.parseArgument)(params.arg)))
329
- };
332
+ static fromNullable(scope, worker) {
333
+ if (!worker)
334
+ return void 0;
335
+ const result = scope.connection.existingDispatcher(worker);
336
+ return result || new WorkerDispatcher(scope, worker);
330
337
  }
331
- async evaluateExpressionHandle(params, metadata) {
332
- return {
333
- handle: _elementHandlerDispatcher.ElementHandleDispatcher.fromJSHandle(this, await this._object.evaluateExpressionHandle(params.expression, params.isFunction, (0, _jsHandleDispatcher.parseArgument)(params.arg)))
334
- };
338
+ async evaluateExpression(params, progress) {
339
+ return { value: (0, import_jsHandleDispatcher.serializeResult)(await progress.race(this._object.evaluateExpression(params.expression, params.isFunction, (0, import_jsHandleDispatcher.parseArgument)(params.arg)))) };
340
+ }
341
+ async evaluateExpressionHandle(params, progress) {
342
+ return { handle: import_jsHandleDispatcher.JSHandleDispatcher.fromJSHandle(this, await progress.race(this._object.evaluateExpressionHandle(params.expression, params.isFunction, (0, import_jsHandleDispatcher.parseArgument)(params.arg)))) };
335
343
  }
336
344
  }
337
- exports.WorkerDispatcher = WorkerDispatcher;
338
- class BindingCallDispatcher extends _dispatcher.Dispatcher {
345
+ class BindingCallDispatcher extends import_dispatcher.Dispatcher {
339
346
  constructor(scope, name, needsHandle, source, args) {
340
- super(scope, {
341
- guid: 'bindingCall@' + (0, _crypto.createGuid)()
342
- }, 'BindingCall', {
343
- frame: _frameDispatcher.FrameDispatcher.from(scope.parentScope(), source.frame),
347
+ const frameDispatcher = import_frameDispatcher.FrameDispatcher.from(scope.parentScope(), source.frame);
348
+ super(scope, new import_instrumentation.SdkObject(scope._object, "bindingCall"), "BindingCall", {
349
+ frame: frameDispatcher,
344
350
  name,
345
- args: needsHandle ? undefined : args.map(_jsHandleDispatcher.serializeResult),
346
- handle: needsHandle ? _elementHandlerDispatcher.ElementHandleDispatcher.fromJSHandle(scope, args[0]) : undefined
351
+ args: needsHandle ? void 0 : args.map(import_jsHandleDispatcher.serializeResult),
352
+ handle: needsHandle ? import_elementHandlerDispatcher.ElementHandleDispatcher.fromJSOrElementHandle(frameDispatcher, args[0]) : void 0
347
353
  });
348
354
  this._type_BindingCall = true;
349
- this._resolve = void 0;
350
- this._reject = void 0;
351
- this._promise = void 0;
352
355
  this._promise = new Promise((resolve, reject) => {
353
356
  this._resolve = resolve;
354
357
  this._reject = reject;
@@ -357,13 +360,18 @@ class BindingCallDispatcher extends _dispatcher.Dispatcher {
357
360
  promise() {
358
361
  return this._promise;
359
362
  }
360
- async resolve(params, metadata) {
361
- this._resolve((0, _jsHandleDispatcher.parseArgument)(params.result));
363
+ async resolve(params, progress) {
364
+ this._resolve((0, import_jsHandleDispatcher.parseArgument)(params.result));
362
365
  this._dispose();
363
366
  }
364
- async reject(params, metadata) {
365
- this._reject((0, _errors.parseError)(params.error));
367
+ async reject(params, progress) {
368
+ this._reject((0, import_errors.parseError)(params.error));
366
369
  this._dispose();
367
370
  }
368
371
  }
369
- exports.BindingCallDispatcher = BindingCallDispatcher;
372
+ // Annotate the CommonJS export names for ESM import in node:
373
+ 0 && (module.exports = {
374
+ BindingCallDispatcher,
375
+ PageDispatcher,
376
+ WorkerDispatcher
377
+ });