@stablyai/internal-playwright-core 0.1.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 (405) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +1134 -0
  5. package/bin/install_media_pack.ps1 +5 -0
  6. package/bin/install_webkit_wsl.ps1 +35 -0
  7. package/bin/reinstall_chrome_beta_linux.sh +42 -0
  8. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  9. package/bin/reinstall_chrome_beta_win.ps1 +24 -0
  10. package/bin/reinstall_chrome_stable_linux.sh +42 -0
  11. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  12. package/bin/reinstall_chrome_stable_win.ps1 +24 -0
  13. package/bin/reinstall_msedge_beta_linux.sh +48 -0
  14. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  15. package/bin/reinstall_msedge_beta_win.ps1 +23 -0
  16. package/bin/reinstall_msedge_dev_linux.sh +48 -0
  17. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  18. package/bin/reinstall_msedge_dev_win.ps1 +23 -0
  19. package/bin/reinstall_msedge_stable_linux.sh +48 -0
  20. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  21. package/bin/reinstall_msedge_stable_win.ps1 +24 -0
  22. package/browsers.json +80 -0
  23. package/cli.js +18 -0
  24. package/index.d.ts +17 -0
  25. package/index.js +32 -0
  26. package/index.mjs +28 -0
  27. package/lib/androidServerImpl.js +65 -0
  28. package/lib/browserServerImpl.js +120 -0
  29. package/lib/cli/cli.js +58 -0
  30. package/lib/cli/driver.js +97 -0
  31. package/lib/cli/program.js +634 -0
  32. package/lib/cli/programWithTestStub.js +74 -0
  33. package/lib/client/accessibility.js +49 -0
  34. package/lib/client/android.js +361 -0
  35. package/lib/client/api.js +137 -0
  36. package/lib/client/artifact.js +79 -0
  37. package/lib/client/browser.js +163 -0
  38. package/lib/client/browserContext.js +529 -0
  39. package/lib/client/browserType.js +184 -0
  40. package/lib/client/cdpSession.js +51 -0
  41. package/lib/client/channelOwner.js +194 -0
  42. package/lib/client/clientHelper.js +64 -0
  43. package/lib/client/clientInstrumentation.js +55 -0
  44. package/lib/client/clientStackTrace.js +69 -0
  45. package/lib/client/clock.js +68 -0
  46. package/lib/client/connection.js +314 -0
  47. package/lib/client/consoleMessage.js +54 -0
  48. package/lib/client/coverage.js +44 -0
  49. package/lib/client/dialog.js +56 -0
  50. package/lib/client/download.js +62 -0
  51. package/lib/client/electron.js +138 -0
  52. package/lib/client/elementHandle.js +281 -0
  53. package/lib/client/errors.js +77 -0
  54. package/lib/client/eventEmitter.js +314 -0
  55. package/lib/client/events.js +99 -0
  56. package/lib/client/fetch.js +369 -0
  57. package/lib/client/fileChooser.js +46 -0
  58. package/lib/client/fileUtils.js +34 -0
  59. package/lib/client/frame.js +408 -0
  60. package/lib/client/harRouter.js +87 -0
  61. package/lib/client/input.js +84 -0
  62. package/lib/client/jsHandle.js +109 -0
  63. package/lib/client/jsonPipe.js +39 -0
  64. package/lib/client/localUtils.js +60 -0
  65. package/lib/client/locator.js +368 -0
  66. package/lib/client/network.js +747 -0
  67. package/lib/client/page.js +721 -0
  68. package/lib/client/platform.js +74 -0
  69. package/lib/client/playwright.js +71 -0
  70. package/lib/client/selectors.js +55 -0
  71. package/lib/client/stream.js +39 -0
  72. package/lib/client/timeoutSettings.js +79 -0
  73. package/lib/client/tracing.js +117 -0
  74. package/lib/client/types.js +28 -0
  75. package/lib/client/video.js +59 -0
  76. package/lib/client/waiter.js +142 -0
  77. package/lib/client/webError.js +39 -0
  78. package/lib/client/webSocket.js +93 -0
  79. package/lib/client/worker.js +63 -0
  80. package/lib/client/writableStream.js +39 -0
  81. package/lib/common/debugLogger.js +90 -0
  82. package/lib/common/socksProxy.js +569 -0
  83. package/lib/common/timeoutSettings.js +73 -0
  84. package/lib/common/types.js +5 -0
  85. package/lib/generated/bindingsControllerSource.js +28 -0
  86. package/lib/generated/clockSource.js +28 -0
  87. package/lib/generated/consoleApiSource.js +28 -0
  88. package/lib/generated/injectedScriptSource.js +28 -0
  89. package/lib/generated/pollingRecorderSource.js +28 -0
  90. package/lib/generated/recorderSource.js +28 -0
  91. package/lib/generated/storageScriptSource.js +28 -0
  92. package/lib/generated/utilityScriptSource.js +28 -0
  93. package/lib/generated/webSocketMockSource.js +336 -0
  94. package/lib/image_tools/colorUtils.js +98 -0
  95. package/lib/image_tools/compare.js +108 -0
  96. package/lib/image_tools/imageChannel.js +70 -0
  97. package/lib/image_tools/stats.js +102 -0
  98. package/lib/inProcessFactory.js +60 -0
  99. package/lib/index.js +19 -0
  100. package/lib/inprocess.js +3 -0
  101. package/lib/outofprocess.js +76 -0
  102. package/lib/protocol/debug.js +27 -0
  103. package/lib/protocol/serializers.js +192 -0
  104. package/lib/protocol/transport.js +82 -0
  105. package/lib/protocol/validator.js +2919 -0
  106. package/lib/protocol/validatorPrimitives.js +193 -0
  107. package/lib/remote/playwrightConnection.js +129 -0
  108. package/lib/remote/playwrightServer.js +335 -0
  109. package/lib/server/accessibility.js +69 -0
  110. package/lib/server/android/android.js +465 -0
  111. package/lib/server/android/backendAdb.js +177 -0
  112. package/lib/server/artifact.js +127 -0
  113. package/lib/server/bidi/bidiBrowser.js +490 -0
  114. package/lib/server/bidi/bidiChromium.js +153 -0
  115. package/lib/server/bidi/bidiConnection.js +212 -0
  116. package/lib/server/bidi/bidiExecutionContext.js +221 -0
  117. package/lib/server/bidi/bidiFirefox.js +130 -0
  118. package/lib/server/bidi/bidiInput.js +146 -0
  119. package/lib/server/bidi/bidiNetworkManager.js +383 -0
  120. package/lib/server/bidi/bidiOverCdp.js +102 -0
  121. package/lib/server/bidi/bidiPage.js +552 -0
  122. package/lib/server/bidi/bidiPdf.js +106 -0
  123. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  124. package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
  125. package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
  126. package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
  127. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  128. package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
  129. package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
  130. package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
  131. package/lib/server/browser.js +149 -0
  132. package/lib/server/browserContext.js +695 -0
  133. package/lib/server/browserType.js +328 -0
  134. package/lib/server/callLog.js +82 -0
  135. package/lib/server/chromium/appIcon.png +0 -0
  136. package/lib/server/chromium/chromium.js +402 -0
  137. package/lib/server/chromium/chromiumSwitches.js +95 -0
  138. package/lib/server/chromium/crAccessibility.js +263 -0
  139. package/lib/server/chromium/crBrowser.js +501 -0
  140. package/lib/server/chromium/crConnection.js +202 -0
  141. package/lib/server/chromium/crCoverage.js +235 -0
  142. package/lib/server/chromium/crDevTools.js +113 -0
  143. package/lib/server/chromium/crDragDrop.js +131 -0
  144. package/lib/server/chromium/crExecutionContext.js +146 -0
  145. package/lib/server/chromium/crInput.js +187 -0
  146. package/lib/server/chromium/crNetworkManager.js +666 -0
  147. package/lib/server/chromium/crPage.js +1069 -0
  148. package/lib/server/chromium/crPdf.js +121 -0
  149. package/lib/server/chromium/crProtocolHelper.js +145 -0
  150. package/lib/server/chromium/crServiceWorker.js +123 -0
  151. package/lib/server/chromium/defaultFontFamilies.js +162 -0
  152. package/lib/server/chromium/protocol.d.js +16 -0
  153. package/lib/server/chromium/videoRecorder.js +113 -0
  154. package/lib/server/clock.js +149 -0
  155. package/lib/server/codegen/csharp.js +327 -0
  156. package/lib/server/codegen/java.js +274 -0
  157. package/lib/server/codegen/javascript.js +270 -0
  158. package/lib/server/codegen/jsonl.js +52 -0
  159. package/lib/server/codegen/language.js +132 -0
  160. package/lib/server/codegen/languages.js +68 -0
  161. package/lib/server/codegen/python.js +279 -0
  162. package/lib/server/codegen/types.js +16 -0
  163. package/lib/server/console.js +53 -0
  164. package/lib/server/cookieStore.js +206 -0
  165. package/lib/server/debugController.js +191 -0
  166. package/lib/server/debugger.js +119 -0
  167. package/lib/server/deviceDescriptors.js +39 -0
  168. package/lib/server/deviceDescriptorsSource.json +1779 -0
  169. package/lib/server/dialog.js +116 -0
  170. package/lib/server/dispatchers/androidDispatcher.js +325 -0
  171. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  172. package/lib/server/dispatchers/browserContextDispatcher.js +364 -0
  173. package/lib/server/dispatchers/browserDispatcher.js +118 -0
  174. package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
  175. package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
  176. package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
  177. package/lib/server/dispatchers/dialogDispatcher.js +47 -0
  178. package/lib/server/dispatchers/dispatcher.js +371 -0
  179. package/lib/server/dispatchers/electronDispatcher.js +89 -0
  180. package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
  181. package/lib/server/dispatchers/frameDispatcher.js +227 -0
  182. package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
  183. package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
  184. package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
  185. package/lib/server/dispatchers/networkDispatchers.js +213 -0
  186. package/lib/server/dispatchers/pageDispatcher.js +401 -0
  187. package/lib/server/dispatchers/playwrightDispatcher.js +108 -0
  188. package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
  189. package/lib/server/dispatchers/streamDispatcher.js +67 -0
  190. package/lib/server/dispatchers/tracingDispatcher.js +68 -0
  191. package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
  192. package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
  193. package/lib/server/dom.js +806 -0
  194. package/lib/server/download.js +70 -0
  195. package/lib/server/electron/electron.js +270 -0
  196. package/lib/server/electron/loader.js +29 -0
  197. package/lib/server/errors.js +69 -0
  198. package/lib/server/fetch.js +621 -0
  199. package/lib/server/fileChooser.js +43 -0
  200. package/lib/server/fileUploadUtils.js +84 -0
  201. package/lib/server/firefox/ffAccessibility.js +238 -0
  202. package/lib/server/firefox/ffBrowser.js +428 -0
  203. package/lib/server/firefox/ffConnection.js +147 -0
  204. package/lib/server/firefox/ffExecutionContext.js +150 -0
  205. package/lib/server/firefox/ffInput.js +159 -0
  206. package/lib/server/firefox/ffNetworkManager.js +256 -0
  207. package/lib/server/firefox/ffPage.js +503 -0
  208. package/lib/server/firefox/firefox.js +116 -0
  209. package/lib/server/firefox/protocol.d.js +16 -0
  210. package/lib/server/formData.js +147 -0
  211. package/lib/server/frameSelectors.js +156 -0
  212. package/lib/server/frames.js +1502 -0
  213. package/lib/server/har/harRecorder.js +147 -0
  214. package/lib/server/har/harTracer.js +607 -0
  215. package/lib/server/harBackend.js +157 -0
  216. package/lib/server/helper.js +96 -0
  217. package/lib/server/index.js +58 -0
  218. package/lib/server/input.js +273 -0
  219. package/lib/server/instrumentation.js +69 -0
  220. package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
  221. package/lib/server/javascript.js +291 -0
  222. package/lib/server/launchApp.js +128 -0
  223. package/lib/server/localUtils.js +218 -0
  224. package/lib/server/macEditingCommands.js +143 -0
  225. package/lib/server/network.js +629 -0
  226. package/lib/server/page.js +871 -0
  227. package/lib/server/pipeTransport.js +89 -0
  228. package/lib/server/playwright.js +69 -0
  229. package/lib/server/progress.js +112 -0
  230. package/lib/server/protocolError.js +52 -0
  231. package/lib/server/recorder/chat.js +161 -0
  232. package/lib/server/recorder/codeGenerator.js +153 -0
  233. package/lib/server/recorder/csharp.js +310 -0
  234. package/lib/server/recorder/java.js +248 -0
  235. package/lib/server/recorder/javascript.js +229 -0
  236. package/lib/server/recorder/jsonl.js +47 -0
  237. package/lib/server/recorder/language.js +44 -0
  238. package/lib/server/recorder/python.js +276 -0
  239. package/lib/server/recorder/recorderActions.js +5 -0
  240. package/lib/server/recorder/recorderApp.js +387 -0
  241. package/lib/server/recorder/recorderRunner.js +138 -0
  242. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  243. package/lib/server/recorder/recorderUtils.js +157 -0
  244. package/lib/server/recorder/throttledFile.js +57 -0
  245. package/lib/server/recorder/utils.js +45 -0
  246. package/lib/server/recorder.js +499 -0
  247. package/lib/server/registry/browserFetcher.js +175 -0
  248. package/lib/server/registry/dependencies.js +371 -0
  249. package/lib/server/registry/index.js +1331 -0
  250. package/lib/server/registry/nativeDeps.js +1280 -0
  251. package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
  252. package/lib/server/screenshotter.js +333 -0
  253. package/lib/server/selectors.js +112 -0
  254. package/lib/server/socksClientCertificatesInterceptor.js +383 -0
  255. package/lib/server/socksInterceptor.js +95 -0
  256. package/lib/server/stably/ai-tools/http-request.js +70 -0
  257. package/lib/server/stably/ai-tools/stablyApiCaller.js +137 -0
  258. package/lib/server/stably/autohealing/elementHandleFromCoordinates.js +64 -0
  259. package/lib/server/stably/autohealing/healingService.js +228 -0
  260. package/lib/server/stably/autohealing/screenshotFrame.js +41 -0
  261. package/lib/server/stably/constants.js +31 -0
  262. package/lib/server/trace/recorder/snapshotter.js +147 -0
  263. package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
  264. package/lib/server/trace/recorder/tracing.js +602 -0
  265. package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
  266. package/lib/server/trace/viewer/traceViewer.js +240 -0
  267. package/lib/server/transport.js +181 -0
  268. package/lib/server/types.js +28 -0
  269. package/lib/server/usKeyboardLayout.js +145 -0
  270. package/lib/server/utils/ascii.js +44 -0
  271. package/lib/server/utils/comparators.js +161 -0
  272. package/lib/server/utils/crypto.js +216 -0
  273. package/lib/server/utils/debug.js +42 -0
  274. package/lib/server/utils/debugLogger.js +122 -0
  275. package/lib/server/utils/env.js +73 -0
  276. package/lib/server/utils/eventsHelper.js +39 -0
  277. package/lib/server/utils/expectUtils.js +38 -0
  278. package/lib/server/utils/fileUtils.js +191 -0
  279. package/lib/server/utils/happyEyeballs.js +207 -0
  280. package/lib/server/utils/hostPlatform.js +111 -0
  281. package/lib/server/utils/httpServer.js +218 -0
  282. package/lib/server/utils/image_tools/colorUtils.js +89 -0
  283. package/lib/server/utils/image_tools/compare.js +109 -0
  284. package/lib/server/utils/image_tools/imageChannel.js +78 -0
  285. package/lib/server/utils/image_tools/stats.js +102 -0
  286. package/lib/server/utils/linuxUtils.js +71 -0
  287. package/lib/server/utils/network.js +233 -0
  288. package/lib/server/utils/nodePlatform.js +148 -0
  289. package/lib/server/utils/pipeTransport.js +84 -0
  290. package/lib/server/utils/processLauncher.js +241 -0
  291. package/lib/server/utils/profiler.js +65 -0
  292. package/lib/server/utils/socksProxy.js +511 -0
  293. package/lib/server/utils/spawnAsync.js +41 -0
  294. package/lib/server/utils/task.js +51 -0
  295. package/lib/server/utils/userAgent.js +98 -0
  296. package/lib/server/utils/wsServer.js +121 -0
  297. package/lib/server/utils/zipFile.js +74 -0
  298. package/lib/server/utils/zones.js +57 -0
  299. package/lib/server/webkit/protocol.d.js +16 -0
  300. package/lib/server/webkit/webkit.js +119 -0
  301. package/lib/server/webkit/wkAccessibility.js +237 -0
  302. package/lib/server/webkit/wkBrowser.js +339 -0
  303. package/lib/server/webkit/wkConnection.js +149 -0
  304. package/lib/server/webkit/wkExecutionContext.js +154 -0
  305. package/lib/server/webkit/wkInput.js +181 -0
  306. package/lib/server/webkit/wkInterceptableRequest.js +169 -0
  307. package/lib/server/webkit/wkPage.js +1134 -0
  308. package/lib/server/webkit/wkProvisionalPage.js +83 -0
  309. package/lib/server/webkit/wkWorkers.js +104 -0
  310. package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
  311. package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
  312. package/lib/third_party/diff_match_patch.js +2222 -0
  313. package/lib/third_party/pixelmatch.js +255 -0
  314. package/lib/utils/ascii.js +31 -0
  315. package/lib/utils/comparators.js +171 -0
  316. package/lib/utils/crypto.js +33 -0
  317. package/lib/utils/debug.js +46 -0
  318. package/lib/utils/debugLogger.js +89 -0
  319. package/lib/utils/env.js +49 -0
  320. package/lib/utils/eventsHelper.js +38 -0
  321. package/lib/utils/fileUtils.js +205 -0
  322. package/lib/utils/glob.js +83 -0
  323. package/lib/utils/happy-eyeballs.js +160 -0
  324. package/lib/utils/headers.js +52 -0
  325. package/lib/utils/hostPlatform.js +128 -0
  326. package/lib/utils/httpServer.js +236 -0
  327. package/lib/utils/index.js +346 -0
  328. package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
  329. package/lib/utils/isomorphic/assert.js +31 -0
  330. package/lib/utils/isomorphic/colors.js +72 -0
  331. package/lib/utils/isomorphic/cssParser.js +245 -0
  332. package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
  333. package/lib/utils/isomorphic/headers.js +53 -0
  334. package/lib/utils/isomorphic/locatorGenerators.js +673 -0
  335. package/lib/utils/isomorphic/locatorParser.js +176 -0
  336. package/lib/utils/isomorphic/locatorUtils.js +81 -0
  337. package/lib/utils/isomorphic/manualPromise.js +114 -0
  338. package/lib/utils/isomorphic/mimeType.js +459 -0
  339. package/lib/utils/isomorphic/multimap.js +80 -0
  340. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  341. package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
  342. package/lib/utils/isomorphic/rtti.js +43 -0
  343. package/lib/utils/isomorphic/selectorParser.js +386 -0
  344. package/lib/utils/isomorphic/semaphore.js +54 -0
  345. package/lib/utils/isomorphic/stackTrace.js +158 -0
  346. package/lib/utils/isomorphic/stringUtils.js +155 -0
  347. package/lib/utils/isomorphic/time.js +49 -0
  348. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  349. package/lib/utils/isomorphic/traceUtils.js +58 -0
  350. package/lib/utils/isomorphic/types.js +16 -0
  351. package/lib/utils/isomorphic/urlMatch.js +176 -0
  352. package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
  353. package/lib/utils/linuxUtils.js +78 -0
  354. package/lib/utils/manualPromise.js +109 -0
  355. package/lib/utils/mimeType.js +29 -0
  356. package/lib/utils/multimap.js +75 -0
  357. package/lib/utils/network.js +188 -0
  358. package/lib/utils/processLauncher.js +248 -0
  359. package/lib/utils/profiler.js +53 -0
  360. package/lib/utils/rtti.js +44 -0
  361. package/lib/utils/semaphore.js +51 -0
  362. package/lib/utils/spawnAsync.js +45 -0
  363. package/lib/utils/stackTrace.js +121 -0
  364. package/lib/utils/task.js +58 -0
  365. package/lib/utils/time.js +37 -0
  366. package/lib/utils/timeoutRunner.js +66 -0
  367. package/lib/utils/traceUtils.js +44 -0
  368. package/lib/utils/userAgent.js +105 -0
  369. package/lib/utils/wsServer.js +127 -0
  370. package/lib/utils/zipFile.js +75 -0
  371. package/lib/utils/zones.js +62 -0
  372. package/lib/utils.js +107 -0
  373. package/lib/utilsBundle.js +109 -0
  374. package/lib/utilsBundleImpl/index.js +218 -0
  375. package/lib/utilsBundleImpl/xdg-open +1066 -0
  376. package/lib/vite/htmlReport/index.html +84 -0
  377. package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
  378. package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
  379. package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  380. package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
  381. package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
  382. package/lib/vite/recorder/index.html +29 -0
  383. package/lib/vite/recorder/playwright-logo.svg +9 -0
  384. package/lib/vite/traceViewer/assets/codeMirrorModule-Bhnc5o2x.js +24 -0
  385. package/lib/vite/traceViewer/assets/defaultSettingsView-ClwvkA2N.js +265 -0
  386. package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
  387. package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
  388. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  389. package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
  390. package/lib/vite/traceViewer/index.DFO9NNF5.js +2 -0
  391. package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
  392. package/lib/vite/traceViewer/index.html +43 -0
  393. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  394. package/lib/vite/traceViewer/snapshot.html +21 -0
  395. package/lib/vite/traceViewer/sw.bundle.js +3 -0
  396. package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
  397. package/lib/vite/traceViewer/uiMode.Shu3QS-1.js +5 -0
  398. package/lib/vite/traceViewer/uiMode.html +17 -0
  399. package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
  400. package/lib/zipBundle.js +34 -0
  401. package/lib/zipBundleImpl.js +5 -0
  402. package/package.json +43 -0
  403. package/types/protocol.d.ts +23130 -0
  404. package/types/structs.d.ts +45 -0
  405. package/types/types.d.ts +22857 -0
@@ -0,0 +1,148 @@
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 bidiSerializer_exports = {};
20
+ __export(bidiSerializer_exports, {
21
+ BidiSerializer: () => BidiSerializer,
22
+ isDate: () => isDate,
23
+ isPlainObject: () => isPlainObject,
24
+ isRegExp: () => isRegExp
25
+ });
26
+ module.exports = __toCommonJS(bidiSerializer_exports);
27
+ /**
28
+ * @license
29
+ * Copyright 2024 Google Inc.
30
+ * Modifications copyright (c) Microsoft Corporation.
31
+ * SPDX-License-Identifier: Apache-2.0
32
+ */
33
+ class UnserializableError extends Error {
34
+ }
35
+ class BidiSerializer {
36
+ static serialize(arg) {
37
+ switch (typeof arg) {
38
+ case "symbol":
39
+ case "function":
40
+ throw new UnserializableError(`Unable to serializable ${typeof arg}`);
41
+ case "object":
42
+ return BidiSerializer._serializeObject(arg);
43
+ case "undefined":
44
+ return {
45
+ type: "undefined"
46
+ };
47
+ case "number":
48
+ return BidiSerializer._serializeNumber(arg);
49
+ case "bigint":
50
+ return {
51
+ type: "bigint",
52
+ value: arg.toString()
53
+ };
54
+ case "string":
55
+ return {
56
+ type: "string",
57
+ value: arg
58
+ };
59
+ case "boolean":
60
+ return {
61
+ type: "boolean",
62
+ value: arg
63
+ };
64
+ }
65
+ }
66
+ static _serializeNumber(arg) {
67
+ let value;
68
+ if (Object.is(arg, -0)) {
69
+ value = "-0";
70
+ } else if (Object.is(arg, Infinity)) {
71
+ value = "Infinity";
72
+ } else if (Object.is(arg, -Infinity)) {
73
+ value = "-Infinity";
74
+ } else if (Object.is(arg, NaN)) {
75
+ value = "NaN";
76
+ } else {
77
+ value = arg;
78
+ }
79
+ return {
80
+ type: "number",
81
+ value
82
+ };
83
+ }
84
+ static _serializeObject(arg) {
85
+ if (arg === null) {
86
+ return {
87
+ type: "null"
88
+ };
89
+ } else if (Array.isArray(arg)) {
90
+ const parsedArray = arg.map((subArg) => {
91
+ return BidiSerializer.serialize(subArg);
92
+ });
93
+ return {
94
+ type: "array",
95
+ value: parsedArray
96
+ };
97
+ } else if (isPlainObject(arg)) {
98
+ try {
99
+ JSON.stringify(arg);
100
+ } catch (error) {
101
+ if (error instanceof TypeError && error.message.startsWith("Converting circular structure to JSON")) {
102
+ error.message += " Recursive objects are not allowed.";
103
+ }
104
+ throw error;
105
+ }
106
+ const parsedObject = [];
107
+ for (const key in arg) {
108
+ parsedObject.push([BidiSerializer.serialize(key), BidiSerializer.serialize(arg[key])]);
109
+ }
110
+ return {
111
+ type: "object",
112
+ value: parsedObject
113
+ };
114
+ } else if (isRegExp(arg)) {
115
+ return {
116
+ type: "regexp",
117
+ value: {
118
+ pattern: arg.source,
119
+ flags: arg.flags
120
+ }
121
+ };
122
+ } else if (isDate(arg)) {
123
+ return {
124
+ type: "date",
125
+ value: arg.toISOString()
126
+ };
127
+ }
128
+ throw new UnserializableError(
129
+ "Custom object serialization not possible. Use plain objects instead."
130
+ );
131
+ }
132
+ }
133
+ const isPlainObject = (obj) => {
134
+ return typeof obj === "object" && obj?.constructor === Object;
135
+ };
136
+ const isRegExp = (obj) => {
137
+ return typeof obj === "object" && obj?.constructor === RegExp;
138
+ };
139
+ const isDate = (obj) => {
140
+ return typeof obj === "object" && obj?.constructor === Date;
141
+ };
142
+ // Annotate the CommonJS export names for ESM import in node:
143
+ 0 && (module.exports = {
144
+ BidiSerializer,
145
+ isDate,
146
+ isPlainObject,
147
+ isRegExp
148
+ });
@@ -0,0 +1,259 @@
1
+ "use strict";
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 firefoxPrefs_exports = {};
30
+ __export(firefoxPrefs_exports, {
31
+ createProfile: () => createProfile
32
+ });
33
+ module.exports = __toCommonJS(firefoxPrefs_exports);
34
+ var import_fs = __toESM(require("fs"));
35
+ var import_path = __toESM(require("path"));
36
+ /**
37
+ * @license
38
+ * Copyright 2023 Google Inc.
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
41
+ async function createProfile(options) {
42
+ if (!import_fs.default.existsSync(options.path)) {
43
+ await import_fs.default.promises.mkdir(options.path, {
44
+ recursive: true
45
+ });
46
+ }
47
+ await writePreferences({
48
+ preferences: {
49
+ ...defaultProfilePreferences(options.preferences),
50
+ ...options.preferences
51
+ },
52
+ path: options.path
53
+ });
54
+ }
55
+ function defaultProfilePreferences(extraPrefs) {
56
+ const server = "dummy.test";
57
+ const defaultPrefs = {
58
+ // Make sure Shield doesn't hit the network.
59
+ "app.normandy.api_url": "",
60
+ // Disable Firefox old build background check
61
+ "app.update.checkInstallTime": false,
62
+ // Disable automatically upgrading Firefox
63
+ "app.update.disabledForTesting": true,
64
+ // Increase the APZ content response timeout to 1 minute
65
+ "apz.content_response_timeout": 6e4,
66
+ // Prevent various error message on the console
67
+ // jest-puppeteer asserts that no error message is emitted by the console
68
+ "browser.contentblocking.features.standard": "-tp,tpPrivate,cookieBehavior0,-cm,-fp",
69
+ // Enable the dump function: which sends messages to the system
70
+ // console
71
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1543115
72
+ "browser.dom.window.dump.enabled": true,
73
+ // Make sure newtab weather doesn't hit the network to retrieve weather data.
74
+ "browser.newtabpage.activity-stream.discoverystream.region-weather-config": "",
75
+ // Make sure newtab wallpapers don't hit the network to retrieve wallpaper data.
76
+ "browser.newtabpage.activity-stream.newtabWallpapers.enabled": false,
77
+ "browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled": false,
78
+ // Make sure Topsites doesn't hit the network to retrieve sponsored tiles.
79
+ "browser.newtabpage.activity-stream.showSponsoredTopSites": false,
80
+ // Disable topstories
81
+ "browser.newtabpage.activity-stream.feeds.system.topstories": false,
82
+ // Always display a blank page
83
+ "browser.newtabpage.enabled": false,
84
+ // Background thumbnails in particular cause grief: and disabling
85
+ // thumbnails in general cannot hurt
86
+ "browser.pagethumbnails.capturing_disabled": true,
87
+ // Disable safebrowsing components.
88
+ "browser.safebrowsing.blockedURIs.enabled": false,
89
+ "browser.safebrowsing.downloads.enabled": false,
90
+ "browser.safebrowsing.malware.enabled": false,
91
+ "browser.safebrowsing.phishing.enabled": false,
92
+ // Disable updates to search engines.
93
+ "browser.search.update": false,
94
+ // Do not restore the last open set of tabs if the browser has crashed
95
+ "browser.sessionstore.resume_from_crash": false,
96
+ // Skip check for default browser on startup
97
+ "browser.shell.checkDefaultBrowser": false,
98
+ // Disable newtabpage
99
+ "browser.startup.homepage": "about:blank",
100
+ // Do not redirect user when a milstone upgrade of Firefox is detected
101
+ "browser.startup.homepage_override.mstone": "ignore",
102
+ // Start with a blank page about:blank
103
+ "browser.startup.page": 0,
104
+ // Do not allow background tabs to be zombified on Android: otherwise for
105
+ // tests that open additional tabs: the test harness tab itself might get
106
+ // unloaded
107
+ "browser.tabs.disableBackgroundZombification": false,
108
+ // Do not warn when closing all other open tabs
109
+ "browser.tabs.warnOnCloseOtherTabs": false,
110
+ // Do not warn when multiple tabs will be opened
111
+ "browser.tabs.warnOnOpen": false,
112
+ // Do not automatically offer translations, as tests do not expect this.
113
+ "browser.translations.automaticallyPopup": false,
114
+ // Disable the UI tour.
115
+ "browser.uitour.enabled": false,
116
+ // Turn off search suggestions in the location bar so as not to trigger
117
+ // network connections.
118
+ "browser.urlbar.suggest.searches": false,
119
+ // Disable first run splash page on Windows 10
120
+ "browser.usedOnWindows10.introURL": "",
121
+ // Do not warn on quitting Firefox
122
+ "browser.warnOnQuit": false,
123
+ // Defensively disable data reporting systems
124
+ "datareporting.healthreport.documentServerURI": `http://${server}/dummy/healthreport/`,
125
+ "datareporting.healthreport.logging.consoleEnabled": false,
126
+ "datareporting.healthreport.service.enabled": false,
127
+ "datareporting.healthreport.service.firstRun": false,
128
+ "datareporting.healthreport.uploadEnabled": false,
129
+ // Do not show datareporting policy notifications which can interfere with tests
130
+ "datareporting.policy.dataSubmissionEnabled": false,
131
+ "datareporting.policy.dataSubmissionPolicyBypassNotification": true,
132
+ // DevTools JSONViewer sometimes fails to load dependencies with its require.js.
133
+ // This doesn't affect Puppeteer but spams console (Bug 1424372)
134
+ "devtools.jsonview.enabled": false,
135
+ // Disable popup-blocker
136
+ "dom.disable_open_during_load": false,
137
+ // Enable the support for File object creation in the content process
138
+ // Required for |Page.setFileInputFiles| protocol method.
139
+ "dom.file.createInChild": true,
140
+ // Disable the ProcessHangMonitor
141
+ "dom.ipc.reportProcessHangs": false,
142
+ // Disable slow script dialogues
143
+ "dom.max_chrome_script_run_time": 0,
144
+ "dom.max_script_run_time": 0,
145
+ // Disable background timer throttling to allow tests to run in parallel
146
+ // without a decrease in performance.
147
+ "dom.min_background_timeout_value": 0,
148
+ "dom.min_background_timeout_value_without_budget_throttling": 0,
149
+ "dom.timeout.enable_budget_timer_throttling": false,
150
+ // Disable HTTPS-First upgrades
151
+ "dom.security.https_first": false,
152
+ // Only load extensions from the application and user profile
153
+ // AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION
154
+ "extensions.autoDisableScopes": 0,
155
+ "extensions.enabledScopes": 5,
156
+ // Disable metadata caching for installed add-ons by default
157
+ "extensions.getAddons.cache.enabled": false,
158
+ // Disable installing any distribution extensions or add-ons.
159
+ "extensions.installDistroAddons": false,
160
+ // Disabled screenshots extension
161
+ "extensions.screenshots.disabled": true,
162
+ // Turn off extension updates so they do not bother tests
163
+ "extensions.update.enabled": false,
164
+ // Turn off extension updates so they do not bother tests
165
+ "extensions.update.notifyUser": false,
166
+ // Make sure opening about:addons will not hit the network
167
+ "extensions.webservice.discoverURL": `http://${server}/dummy/discoveryURL`,
168
+ // Allow the application to have focus even it runs in the background
169
+ "focusmanager.testmode": true,
170
+ // Disable useragent updates
171
+ "general.useragent.updates.enabled": false,
172
+ // Always use network provider for geolocation tests so we bypass the
173
+ // macOS dialog raised by the corelocation provider
174
+ "geo.provider.testing": true,
175
+ // Do not scan Wifi
176
+ "geo.wifi.scan": false,
177
+ // No hang monitor
178
+ "hangmonitor.timeout": 0,
179
+ // Show chrome errors and warnings in the error console
180
+ "javascript.options.showInConsole": true,
181
+ // Do not throttle rendering (requestAnimationFrame) in background tabs
182
+ "layout.testing.top-level-always-active": true,
183
+ // Disable download and usage of OpenH264: and Widevine plugins
184
+ "media.gmp-manager.updateEnabled": false,
185
+ // Disable the GFX sanity window
186
+ "media.sanity-test.disabled": true,
187
+ // Disable connectivity service pings
188
+ "network.connectivity-service.enabled": false,
189
+ // Disable experimental feature that is only available in Nightly
190
+ "network.cookie.sameSite.laxByDefault": false,
191
+ // Do not prompt for temporary redirects
192
+ "network.http.prompt-temp-redirect": false,
193
+ // Disable speculative connections so they are not reported as leaking
194
+ // when they are hanging around
195
+ "network.http.speculative-parallel-limit": 0,
196
+ // Do not automatically switch between offline and online
197
+ "network.manage-offline-status": false,
198
+ // Make sure SNTP requests do not hit the network
199
+ "network.sntp.pools": server,
200
+ // Disable Flash.
201
+ "plugin.state.flash": 0,
202
+ "privacy.trackingprotection.enabled": false,
203
+ // Can be removed once Firefox 89 is no longer supported
204
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1710839
205
+ "remote.enabled": true,
206
+ // Don't do network connections for mitm priming
207
+ "security.certerrors.mitm.priming.enabled": false,
208
+ // Local documents have access to all other local documents,
209
+ // including directory listings
210
+ "security.fileuri.strict_origin_policy": false,
211
+ // Do not wait for the notification button security delay
212
+ "security.notification_enable_delay": 0,
213
+ // Do not automatically fill sign-in forms with known usernames and
214
+ // passwords
215
+ "signon.autofillForms": false,
216
+ // Disable password capture, so that tests that include forms are not
217
+ // influenced by the presence of the persistent doorhanger notification
218
+ "signon.rememberSignons": false,
219
+ // Disable first-run welcome page
220
+ "startup.homepage_welcome_url": "about:blank",
221
+ // Disable first-run welcome page
222
+ "startup.homepage_welcome_url.additional": "",
223
+ // Disable browser animations (tabs, fullscreen, sliding alerts)
224
+ "toolkit.cosmeticAnimations.enabled": false,
225
+ // Prevent starting into safe mode after application crashes
226
+ "toolkit.startup.max_resumed_crashes": -1
227
+ };
228
+ return Object.assign(defaultPrefs, extraPrefs);
229
+ }
230
+ async function writePreferences(options) {
231
+ const prefsPath = import_path.default.join(options.path, "prefs.js");
232
+ const lines = Object.entries(options.preferences).map(([key, value]) => {
233
+ return `user_pref(${JSON.stringify(key)}, ${JSON.stringify(value)});`;
234
+ });
235
+ const result = await Promise.allSettled([
236
+ import_fs.default.promises.writeFile(import_path.default.join(options.path, "user.js"), lines.join("\n")),
237
+ // Create a backup of the preferences file if it already exitsts.
238
+ import_fs.default.promises.access(prefsPath, import_fs.default.constants.F_OK).then(
239
+ async () => {
240
+ await import_fs.default.promises.copyFile(
241
+ prefsPath,
242
+ import_path.default.join(options.path, "prefs.js.playwright")
243
+ );
244
+ },
245
+ // Swallow only if file does not exist
246
+ () => {
247
+ }
248
+ )
249
+ ]);
250
+ for (const command of result) {
251
+ if (command.status === "rejected") {
252
+ throw command.reason;
253
+ }
254
+ }
255
+ }
256
+ // Annotate the CommonJS export names for ESM import in node:
257
+ 0 && (module.exports = {
258
+ createProfile
259
+ });
@@ -0,0 +1,149 @@
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 browser_exports = {};
20
+ __export(browser_exports, {
21
+ Browser: () => Browser
22
+ });
23
+ module.exports = __toCommonJS(browser_exports);
24
+ var import_artifact = require("./artifact");
25
+ var import_browserContext = require("./browserContext");
26
+ var import_download = require("./download");
27
+ var import_instrumentation = require("./instrumentation");
28
+ var import_page = require("./page");
29
+ var import_socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
30
+ class Browser extends import_instrumentation.SdkObject {
31
+ constructor(parent, options) {
32
+ super(parent, "browser");
33
+ this._downloads = /* @__PURE__ */ new Map();
34
+ this._defaultContext = null;
35
+ this._startedClosing = false;
36
+ this._idToVideo = /* @__PURE__ */ new Map();
37
+ this._isCollocatedWithServer = true;
38
+ this.attribution.browser = this;
39
+ this.options = options;
40
+ this.instrumentation.onBrowserOpen(this);
41
+ }
42
+ static {
43
+ this.Events = {
44
+ Context: "context",
45
+ Disconnected: "disconnected"
46
+ };
47
+ }
48
+ sdkLanguage() {
49
+ return this.options.sdkLanguage || this.attribution.playwright.options.sdkLanguage;
50
+ }
51
+ async newContext(progress, options) {
52
+ (0, import_browserContext.validateBrowserContextOptions)(options, this.options);
53
+ let clientCertificatesProxy;
54
+ let context;
55
+ try {
56
+ if (options.clientCertificates?.length) {
57
+ clientCertificatesProxy = await import_socksClientCertificatesInterceptor.ClientCertificatesProxy.create(progress, options);
58
+ options = { ...options };
59
+ options.proxyOverride = clientCertificatesProxy.proxySettings();
60
+ options.internalIgnoreHTTPSErrors = true;
61
+ }
62
+ context = await progress.race(this.doCreateNewContext(options));
63
+ context._clientCertificatesProxy = clientCertificatesProxy;
64
+ if (options.__testHookBeforeSetStorageState)
65
+ await progress.race(options.__testHookBeforeSetStorageState());
66
+ await context.setStorageState(progress, options.storageState, "initial");
67
+ this.emit(Browser.Events.Context, context);
68
+ return context;
69
+ } catch (error) {
70
+ await context?.close({ reason: "Failed to create context" }).catch(() => {
71
+ });
72
+ await clientCertificatesProxy?.close().catch(() => {
73
+ });
74
+ throw error;
75
+ }
76
+ }
77
+ async newContextForReuse(progress, params) {
78
+ const hash = import_browserContext.BrowserContext.reusableContextHash(params);
79
+ if (!this._contextForReuse || hash !== this._contextForReuse.hash || !this._contextForReuse.context.canResetForReuse()) {
80
+ if (this._contextForReuse)
81
+ await this._contextForReuse.context.close({ reason: "Context reused" });
82
+ this._contextForReuse = { context: await this.newContext(progress, params), hash };
83
+ return this._contextForReuse.context;
84
+ }
85
+ await this._contextForReuse.context.resetForReuse(progress, params);
86
+ return this._contextForReuse.context;
87
+ }
88
+ contextForReuse() {
89
+ return this._contextForReuse?.context;
90
+ }
91
+ _downloadCreated(page, uuid, url, suggestedFilename) {
92
+ const download = new import_download.Download(page, this.options.downloadsPath || "", uuid, url, suggestedFilename);
93
+ this._downloads.set(uuid, download);
94
+ }
95
+ _downloadFilenameSuggested(uuid, suggestedFilename) {
96
+ const download = this._downloads.get(uuid);
97
+ if (!download)
98
+ return;
99
+ download._filenameSuggested(suggestedFilename);
100
+ }
101
+ _downloadFinished(uuid, error) {
102
+ const download = this._downloads.get(uuid);
103
+ if (!download)
104
+ return;
105
+ download.artifact.reportFinished(error ? new Error(error) : void 0);
106
+ this._downloads.delete(uuid);
107
+ }
108
+ _videoStarted(context, videoId, path, pageOrError) {
109
+ const artifact = new import_artifact.Artifact(context, path);
110
+ this._idToVideo.set(videoId, { context, artifact });
111
+ pageOrError.then((page) => {
112
+ if (page instanceof import_page.Page) {
113
+ page.video = artifact;
114
+ page.emitOnContext(import_browserContext.BrowserContext.Events.VideoStarted, artifact);
115
+ page.emit(import_page.Page.Events.Video, artifact);
116
+ }
117
+ });
118
+ }
119
+ _takeVideo(videoId) {
120
+ const video = this._idToVideo.get(videoId);
121
+ this._idToVideo.delete(videoId);
122
+ return video?.artifact;
123
+ }
124
+ _didClose() {
125
+ for (const context of this.contexts())
126
+ context._browserClosed();
127
+ if (this._defaultContext)
128
+ this._defaultContext._browserClosed();
129
+ this.emit(Browser.Events.Disconnected);
130
+ this.instrumentation.onBrowserClose(this);
131
+ }
132
+ async close(options) {
133
+ if (!this._startedClosing) {
134
+ if (options.reason)
135
+ this._closeReason = options.reason;
136
+ this._startedClosing = true;
137
+ await this.options.browserProcess.close();
138
+ }
139
+ if (this.isConnected())
140
+ await new Promise((x) => this.once(Browser.Events.Disconnected, x));
141
+ }
142
+ async killForTests() {
143
+ await this.options.browserProcess.kill();
144
+ }
145
+ }
146
+ // Annotate the CommonJS export names for ESM import in node:
147
+ 0 && (module.exports = {
148
+ Browser
149
+ });