@checkly/playwright-core 1.48.22 → 1.51.11-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 (307) hide show
  1. package/ThirdPartyNotices.txt +60 -48
  2. package/bin/reinstall_chrome_beta_linux.sh +10 -8
  3. package/bin/reinstall_chrome_stable_linux.sh +10 -8
  4. package/bin/reinstall_msedge_beta_linux.sh +17 -9
  5. package/bin/reinstall_msedge_dev_linux.sh +17 -9
  6. package/bin/reinstall_msedge_stable_linux.sh +17 -9
  7. package/browsers.json +33 -12
  8. package/index.js +0 -1
  9. package/lib/androidServerImpl.js +5 -5
  10. package/lib/browserServerImpl.js +18 -9
  11. package/lib/checkly/secretsFilter.js +1 -1
  12. package/lib/cli/driver.js +6 -6
  13. package/lib/cli/program.js +38 -43
  14. package/lib/cli/programWithTestStub.js +2 -1
  15. package/lib/client/android.js +37 -58
  16. package/lib/client/artifact.js +4 -7
  17. package/lib/client/browser.js +10 -15
  18. package/lib/client/browserContext.js +69 -62
  19. package/lib/client/browserType.js +30 -64
  20. package/lib/client/channelOwner.js +53 -68
  21. package/lib/client/clientHelper.js +4 -6
  22. package/lib/client/clientInstrumentation.js +2 -0
  23. package/lib/client/clientStackTrace.js +65 -0
  24. package/lib/client/connection.js +48 -41
  25. package/lib/client/consoleMessage.js +4 -7
  26. package/lib/client/electron.js +10 -10
  27. package/lib/client/elementHandle.js +32 -33
  28. package/lib/client/errors.js +2 -2
  29. package/lib/client/eventEmitter.js +5 -8
  30. package/lib/client/fetch.js +61 -62
  31. package/lib/client/fileUtils.js +31 -0
  32. package/lib/client/frame.js +22 -23
  33. package/lib/client/harRouter.js +7 -9
  34. package/lib/client/jsHandle.js +3 -4
  35. package/lib/client/localUtils.js +24 -0
  36. package/lib/client/locator.js +27 -13
  37. package/lib/client/network.js +44 -37
  38. package/lib/client/page.js +50 -41
  39. package/lib/client/platform.js +71 -0
  40. package/lib/client/playwright.js +21 -1
  41. package/lib/client/selectors.js +8 -2
  42. package/lib/client/stream.js +2 -21
  43. package/lib/client/timeoutSettings.js +65 -0
  44. package/lib/client/tracing.js +29 -7
  45. package/lib/client/video.js +2 -2
  46. package/lib/client/waiter.js +19 -16
  47. package/lib/client/webSocket.js +106 -0
  48. package/lib/client/worker.js +4 -4
  49. package/lib/client/writableStream.js +2 -21
  50. package/lib/generated/consoleApiSource.js +1 -1
  51. package/lib/generated/injectedScriptSource.js +1 -1
  52. package/lib/generated/pollingRecorderSource.js +1 -1
  53. package/lib/generated/recorderSource.js +7 -0
  54. package/lib/generated/webSocketMockSource.js +1 -1
  55. package/lib/inProcessFactory.js +8 -3
  56. package/lib/outofprocess.js +12 -8
  57. package/lib/protocol/debug.js +1 -1
  58. package/lib/protocol/validator.js +77 -11
  59. package/lib/protocol/validatorPrimitives.js +1 -2
  60. package/lib/remote/playwrightConnection.js +21 -12
  61. package/lib/remote/playwrightServer.js +22 -8
  62. package/lib/server/android/android.js +17 -14
  63. package/lib/server/android/backendAdb.js +14 -14
  64. package/lib/server/artifact.js +3 -3
  65. package/lib/server/bidi/bidiBrowser.js +11 -8
  66. package/lib/server/bidi/bidiChromium.js +5 -4
  67. package/lib/server/bidi/bidiConnection.js +1 -3
  68. package/lib/server/bidi/bidiExecutionContext.js +71 -25
  69. package/lib/server/bidi/bidiFirefox.js +4 -3
  70. package/lib/server/bidi/bidiInput.js +11 -12
  71. package/lib/server/bidi/bidiNetworkManager.js +11 -12
  72. package/lib/server/bidi/bidiOverCdp.js +2 -2
  73. package/lib/server/bidi/bidiPage.js +39 -66
  74. package/lib/server/bidi/third_party/bidiKeyboard.js +9 -7
  75. package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
  76. package/lib/server/browser.js +2 -2
  77. package/lib/server/browserContext.js +60 -55
  78. package/lib/server/browserType.js +22 -18
  79. package/lib/server/callLog.js +79 -0
  80. package/lib/server/chromium/chromium.js +20 -16
  81. package/lib/server/chromium/chromiumSwitches.js +32 -9
  82. package/lib/server/chromium/crBrowser.js +25 -24
  83. package/lib/server/chromium/crConnection.js +2 -2
  84. package/lib/server/chromium/crCoverage.js +1 -1
  85. package/lib/server/chromium/crDevTools.js +1 -1
  86. package/lib/server/chromium/crDragDrop.js +1 -1
  87. package/lib/server/chromium/crExecutionContext.js +26 -35
  88. package/lib/server/chromium/crInput.js +17 -6
  89. package/lib/server/chromium/crNetworkManager.js +3 -3
  90. package/lib/server/chromium/crPage.js +43 -55
  91. package/lib/server/chromium/crPdf.js +1 -1
  92. package/lib/server/chromium/crProtocolHelper.js +3 -3
  93. package/lib/server/chromium/crServiceWorker.js +2 -2
  94. package/lib/server/chromium/videoRecorder.js +2 -2
  95. package/lib/server/clock.js +1 -1
  96. package/lib/server/codegen/csharp.js +21 -16
  97. package/lib/server/codegen/java.js +17 -9
  98. package/lib/server/codegen/javascript.js +37 -7
  99. package/lib/server/codegen/jsonl.js +1 -1
  100. package/lib/server/codegen/languages.js +2 -2
  101. package/lib/server/codegen/python.js +14 -17
  102. package/lib/server/debugController.js +23 -45
  103. package/lib/server/debugger.js +1 -1
  104. package/lib/server/deviceDescriptors.js +1 -1
  105. package/lib/server/deviceDescriptorsSource.json +131 -131
  106. package/lib/server/dispatchers/androidDispatcher.js +14 -3
  107. package/lib/server/dispatchers/artifactDispatcher.js +3 -3
  108. package/lib/server/dispatchers/browserContextDispatcher.js +21 -32
  109. package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
  110. package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
  111. package/lib/server/dispatchers/debugControllerDispatcher.js +5 -3
  112. package/lib/server/dispatchers/dispatcher.js +27 -25
  113. package/lib/server/dispatchers/electronDispatcher.js +3 -3
  114. package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
  115. package/lib/server/dispatchers/frameDispatcher.js +9 -3
  116. package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
  117. package/lib/server/dispatchers/localUtilsDispatcher.js +25 -291
  118. package/lib/server/dispatchers/networkDispatchers.js +3 -3
  119. package/lib/server/dispatchers/pageDispatcher.js +10 -8
  120. package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
  121. package/lib/server/dispatchers/streamDispatcher.js +4 -3
  122. package/lib/server/dispatchers/tracingDispatcher.js +10 -0
  123. package/lib/server/dispatchers/webSocketRouteDispatcher.js +18 -18
  124. package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
  125. package/lib/server/dom.js +102 -48
  126. package/lib/server/download.js +1 -1
  127. package/lib/server/electron/electron.js +17 -16
  128. package/lib/server/errors.js +1 -1
  129. package/lib/server/fetch.js +49 -33
  130. package/lib/server/fileUploadUtils.js +7 -4
  131. package/lib/server/firefox/ffBrowser.js +17 -9
  132. package/lib/server/firefox/ffConnection.js +1 -1
  133. package/lib/server/firefox/ffExecutionContext.js +25 -29
  134. package/lib/server/firefox/ffInput.js +15 -4
  135. package/lib/server/firefox/ffNetworkManager.js +3 -3
  136. package/lib/server/firefox/ffPage.js +29 -50
  137. package/lib/server/firefox/firefox.js +7 -9
  138. package/lib/server/frameSelectors.js +1 -1
  139. package/lib/server/frames.js +65 -55
  140. package/lib/server/har/harRecorder.js +4 -4
  141. package/lib/server/har/harTracer.js +8 -9
  142. package/lib/server/harBackend.js +157 -0
  143. package/lib/server/helper.js +2 -2
  144. package/lib/server/index.js +1 -14
  145. package/lib/server/input.js +3 -4
  146. package/lib/server/instrumentation.js +2 -2
  147. package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
  148. package/lib/server/javascript.js +26 -33
  149. package/lib/server/launchApp.js +7 -7
  150. package/lib/server/localUtils.js +203 -0
  151. package/lib/server/network.js +5 -5
  152. package/lib/server/page.js +76 -37
  153. package/lib/server/pipeTransport.js +1 -1
  154. package/lib/server/playwright.js +5 -5
  155. package/lib/server/progress.js +1 -4
  156. package/lib/server/protocolError.js +1 -1
  157. package/lib/server/recorder/chat.js +177 -0
  158. package/lib/server/recorder/codeGenerator.js +154 -0
  159. package/lib/server/recorder/contextRecorder.js +9 -18
  160. package/lib/server/recorder/csharp.js +311 -0
  161. package/lib/server/recorder/java.js +249 -0
  162. package/lib/server/recorder/javascript.js +230 -0
  163. package/lib/server/recorder/jsonl.js +48 -0
  164. package/lib/server/recorder/language.js +45 -0
  165. package/lib/server/recorder/python.js +276 -0
  166. package/lib/server/recorder/recorderActions.js +6 -0
  167. package/lib/server/recorder/recorderApp.js +25 -28
  168. package/lib/server/recorder/recorderCollection.js +9 -21
  169. package/lib/server/recorder/recorderInTraceViewer.js +1 -1
  170. package/lib/server/recorder/recorderRunner.js +7 -3
  171. package/lib/server/recorder/recorderUtils.js +5 -28
  172. package/lib/server/recorder/throttledFile.js +3 -4
  173. package/lib/server/recorder/utils.js +46 -0
  174. package/lib/server/recorder.js +83 -43
  175. package/lib/server/registry/browserFetcher.js +10 -8
  176. package/lib/server/registry/dependencies.js +20 -20
  177. package/lib/server/registry/index.js +215 -61
  178. package/lib/server/registry/nativeDeps.js +10 -4
  179. package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
  180. package/lib/server/screenshotter.js +1 -1
  181. package/lib/server/selectors.js +3 -3
  182. package/lib/server/socksClientCertificatesInterceptor.js +8 -8
  183. package/lib/server/socksInterceptor.js +8 -5
  184. package/lib/server/storageScript.js +160 -0
  185. package/lib/server/timeoutSettings.js +74 -0
  186. package/lib/server/trace/recorder/snapshotter.js +10 -20
  187. package/lib/server/trace/recorder/snapshotterInjected.js +26 -1
  188. package/lib/server/trace/recorder/tracing.js +108 -45
  189. package/lib/server/trace/test/inMemorySnapshotter.js +6 -6
  190. package/lib/server/trace/viewer/traceViewer.js +21 -7
  191. package/lib/server/transport.js +3 -2
  192. package/lib/server/utils/ascii.js +31 -0
  193. package/lib/server/utils/comparators.js +159 -0
  194. package/lib/server/utils/crypto.js +171 -0
  195. package/lib/server/utils/debug.js +38 -0
  196. package/lib/server/utils/debugLogger.js +93 -0
  197. package/lib/server/utils/env.js +53 -0
  198. package/lib/server/utils/eventsHelper.js +38 -0
  199. package/lib/server/utils/expectUtils.js +33 -0
  200. package/lib/server/utils/fileUtils.js +204 -0
  201. package/lib/server/utils/happyEyeballs.js +207 -0
  202. package/lib/server/utils/hostPlatform.js +145 -0
  203. package/lib/server/utils/httpServer.js +233 -0
  204. package/lib/server/utils/image_tools/colorUtils.js +98 -0
  205. package/lib/server/utils/image_tools/compare.js +108 -0
  206. package/lib/server/utils/image_tools/imageChannel.js +70 -0
  207. package/lib/server/utils/image_tools/stats.js +102 -0
  208. package/lib/server/utils/linuxUtils.js +58 -0
  209. package/lib/server/utils/network.js +160 -0
  210. package/lib/server/utils/nodePlatform.js +140 -0
  211. package/lib/server/utils/pipeTransport.js +82 -0
  212. package/lib/server/utils/processLauncher.js +248 -0
  213. package/lib/server/utils/profiler.js +52 -0
  214. package/lib/server/utils/socksProxy.js +570 -0
  215. package/lib/server/utils/spawnAsync.js +45 -0
  216. package/lib/server/utils/task.js +58 -0
  217. package/lib/server/utils/userAgent.js +91 -0
  218. package/lib/server/utils/wsServer.js +128 -0
  219. package/lib/server/utils/zipFile.js +75 -0
  220. package/lib/server/utils/zones.js +54 -0
  221. package/lib/server/webkit/webkit.js +4 -4
  222. package/lib/server/webkit/wkBrowser.js +10 -10
  223. package/lib/server/webkit/wkConnection.js +1 -1
  224. package/lib/server/webkit/wkExecutionContext.js +26 -30
  225. package/lib/server/webkit/wkInput.js +17 -7
  226. package/lib/server/webkit/wkInterceptableRequest.js +2 -2
  227. package/lib/server/webkit/wkPage.js +80 -66
  228. package/lib/server/webkit/wkProvisionalPage.js +1 -1
  229. package/lib/server/webkit/wkWorkers.js +2 -2
  230. package/lib/utils/fileUtils.js +1 -1
  231. package/lib/utils/glob.js +84 -0
  232. package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
  233. package/lib/utils/isomorphic/assert.js +25 -0
  234. package/lib/utils/isomorphic/colors.js +65 -0
  235. package/lib/utils/isomorphic/cssParser.js +5 -5
  236. package/lib/utils/isomorphic/headers.js +52 -0
  237. package/lib/utils/isomorphic/locatorGenerators.js +38 -8
  238. package/lib/utils/isomorphic/locatorParser.js +19 -13
  239. package/lib/utils/isomorphic/manualPromise.js +107 -0
  240. package/lib/utils/isomorphic/mimeType.js +11 -3
  241. package/lib/utils/isomorphic/multimap.js +73 -0
  242. package/lib/utils/isomorphic/rtti.js +41 -0
  243. package/lib/utils/isomorphic/semaphore.js +51 -0
  244. package/lib/utils/isomorphic/stackTrace.js +169 -0
  245. package/lib/utils/isomorphic/stringUtils.js +31 -1
  246. package/lib/utils/isomorphic/time.js +25 -0
  247. package/lib/utils/isomorphic/timeoutRunner.js +66 -0
  248. package/lib/utils/isomorphic/traceUtils.js +23 -0
  249. package/lib/utils/isomorphic/types.js +5 -0
  250. package/lib/utils/isomorphic/urlMatch.js +7 -5
  251. package/lib/utils/mimeType.js +30 -0
  252. package/lib/utils/stackTrace.js +1 -1
  253. package/lib/utils.js +447 -0
  254. package/lib/utilsBundle.js +4 -29
  255. package/lib/utilsBundleImpl/index.js +188 -33
  256. package/lib/vite/htmlReport/index.html +20 -17
  257. package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
  258. package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
  259. package/lib/vite/recorder/assets/{index-BW-aOBcL.css → index-eHBmevrY.css} +1 -1
  260. package/lib/vite/recorder/index.html +2 -2
  261. package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +24 -0
  262. package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +1 -0
  263. package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +235 -0
  264. package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +25 -0
  265. package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
  266. package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +1 -0
  267. package/lib/vite/traceViewer/{embedded.BkvOrz5Z.js → embedded.DpNPH6mk.js} +2 -2
  268. package/lib/vite/traceViewer/embedded.html +6 -6
  269. package/lib/vite/traceViewer/index.CuE3SYGw.js +2 -0
  270. package/lib/vite/traceViewer/index.html +27 -9
  271. package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +1 -0
  272. package/lib/vite/traceViewer/{recorder.DNMfnSiu.js → recorder.BD-uZJs7.js} +2 -2
  273. package/lib/vite/traceViewer/recorder.html +4 -4
  274. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  275. package/lib/vite/traceViewer/{uiMode.CAYqod-m.css → uiMode.BatfzHMG.css} +1 -1
  276. package/lib/vite/traceViewer/uiMode.DHrNgddz.js +5 -0
  277. package/lib/vite/traceViewer/uiMode.html +8 -7
  278. package/lib/vite/traceViewer/workbench.B9vIAzH9.css +1 -0
  279. package/lib/zipBundleImpl.js +4 -4
  280. package/package.json +7 -7
  281. package/types/protocol.d.ts +820 -153
  282. package/types/types.d.ts +285 -82
  283. package/bin/PrintDeps.exe +0 -0
  284. package/bin/README.md +0 -2
  285. package/lib/vite/recorder/assets/codeMirrorModule-d0KhC1qL.js +0 -24
  286. package/lib/vite/recorder/assets/index-Bxxcmxlu.js +0 -42
  287. package/lib/vite/traceViewer/assets/codeMirrorModule-pBPtArIT.js +0 -24
  288. package/lib/vite/traceViewer/assets/codeMirrorModule-tzBrK1V4.js +0 -24
  289. package/lib/vite/traceViewer/assets/inspectorTab-BuJ3wAX_.js +0 -64
  290. package/lib/vite/traceViewer/assets/inspectorTab-Soeeuvzv.js +0 -64
  291. package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
  292. package/lib/vite/traceViewer/assets/workbench-DdmJ9AJV.js +0 -9
  293. package/lib/vite/traceViewer/assets/workbench-lypYlf00.js +0 -9
  294. package/lib/vite/traceViewer/embedded.DInvAijy.js +0 -2
  295. package/lib/vite/traceViewer/index.Dha3cgqs.js +0 -2
  296. package/lib/vite/traceViewer/index._Iolt-uE.js +0 -2
  297. package/lib/vite/traceViewer/inspectorTab.DLjBDrQR.css +0 -1
  298. package/lib/vite/traceViewer/recorder.DTSaNaly.js +0 -2
  299. package/lib/vite/traceViewer/uiMode.BM7yhjzl.js +0 -5
  300. package/lib/vite/traceViewer/uiMode.Cr1tvTWS.js +0 -5
  301. package/lib/vite/traceViewer/workbench.DlsCx8k5.css +0 -1
  302. /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
  303. /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
  304. /package/lib/vite/traceViewer/{embedded.w7WN2u1R.css → embedded.mLhjB5IF.css} +0 -0
  305. /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
  306. /package/lib/vite/traceViewer/{recorder.B_SY1GJM.css → recorder.tn0RQdqM.css} +0 -0
  307. /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
@@ -6,31 +6,33 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.BrowserContext = void 0;
7
7
  exports.prepareBrowserContextParams = prepareBrowserContextParams;
8
8
  exports.toClientCertificatesProtocol = toClientCertificatesProtocol;
9
- var _page = require("./page");
10
- var _frame = require("./frame");
11
- var network = _interopRequireWildcard(require("./network"));
12
- var _fs = _interopRequireDefault(require("fs"));
13
- var _path = _interopRequireDefault(require("path"));
9
+ var _artifact = require("./artifact");
10
+ var _browser = require("./browser");
11
+ var _cdpSession = require("./cdpSession");
14
12
  var _channelOwner = require("./channelOwner");
15
13
  var _clientHelper = require("./clientHelper");
16
- var _browser = require("./browser");
17
- var _worker = require("./worker");
14
+ var _clock = require("./clock");
15
+ var _consoleMessage = require("./consoleMessage");
16
+ var _dialog = require("./dialog");
17
+ var _errors = require("./errors");
18
18
  var _events = require("./events");
19
- var _timeoutSettings = require("../common/timeoutSettings");
20
- var _waiter = require("./waiter");
21
- var _utils = require("../utils");
22
- var _cdpSession = require("./cdpSession");
23
- var _tracing = require("./tracing");
24
- var _artifact = require("./artifact");
25
19
  var _fetch = require("./fetch");
26
- var _stackTrace = require("../utils/stackTrace");
20
+ var _frame = require("./frame");
27
21
  var _harRouter = require("./harRouter");
28
- var _consoleMessage = require("./consoleMessage");
29
- var _dialog = require("./dialog");
22
+ var network = _interopRequireWildcard(require("./network"));
23
+ var _page = require("./page");
24
+ var _tracing = require("./tracing");
25
+ var _waiter = require("./waiter");
30
26
  var _webError = require("./webError");
31
- var _errors = require("./errors");
32
- var _clock = require("./clock");
33
- let _Symbol$asyncDispose;
27
+ var _worker = require("./worker");
28
+ var _timeoutSettings = require("./timeoutSettings");
29
+ var _fileUtils = require("./fileUtils");
30
+ var _headers = require("../utils/isomorphic/headers");
31
+ var _urlMatch = require("../utils/isomorphic/urlMatch");
32
+ var _rtti = require("../utils/isomorphic/rtti");
33
+ var _stackTrace = require("../utils/isomorphic/stackTrace");
34
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
35
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
34
36
  /**
35
37
  * Copyright 2017 Google Inc. All rights reserved.
36
38
  * Modifications copyright (c) Microsoft Corporation.
@@ -47,10 +49,7 @@ let _Symbol$asyncDispose;
47
49
  * See the License for the specific language governing permissions and
48
50
  * limitations under the License.
49
51
  */
50
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
51
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
52
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
53
- _Symbol$asyncDispose = Symbol.asyncDispose;
52
+
54
53
  class BrowserContext extends _channelOwner.ChannelOwner {
55
54
  static from(context) {
56
55
  return context._object;
@@ -67,7 +66,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
67
66
  this._browser = null;
68
67
  this._browserType = void 0;
69
68
  this._bindings = new Map();
70
- this._timeoutSettings = new _timeoutSettings.TimeoutSettings();
69
+ this._timeoutSettings = void 0;
71
70
  this._ownerPage = void 0;
72
71
  this._closedPromise = void 0;
73
72
  this._options = {};
@@ -81,6 +80,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
81
80
  this._closeWasCalled = false;
82
81
  this._closeReason = void 0;
83
82
  this._harRouters = [];
83
+ this._timeoutSettings = new _timeoutSettings.TimeoutSettings(this._platform);
84
84
  if (parent instanceof _browser.Browser) this._browser = parent;
85
85
  (_this$_browser = this._browser) === null || _this$_browser === void 0 || _this$_browser._contexts.add(this);
86
86
  this._isChromium = ((_this$_browser2 = this._browser) === null || _this$_browser2 === void 0 ? void 0 : _this$_browser2._name) === 'chromium';
@@ -116,7 +116,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
116
116
  this.emit(_events.Events.BrowserContext.ServiceWorker, serviceWorker);
117
117
  });
118
118
  this._channel.on('console', event => {
119
- const consoleMessage = new _consoleMessage.ConsoleMessage(event);
119
+ const consoleMessage = new _consoleMessage.ConsoleMessage(this._platform, event);
120
120
  this.emit(_events.Events.BrowserContext.Console, consoleMessage);
121
121
  const page = consoleMessage.page();
122
122
  if (page) page.emit(_events.Events.Page.Console, consoleMessage);
@@ -233,18 +233,18 @@ class BrowserContext extends _channelOwner.ChannelOwner {
233
233
  setDefaultNavigationTimeout(timeout) {
234
234
  this._timeoutSettings.setDefaultNavigationTimeout(timeout);
235
235
  this._wrapApiCall(async () => {
236
- this._channel.setDefaultNavigationTimeoutNoReply({
236
+ await this._channel.setDefaultNavigationTimeoutNoReply({
237
237
  timeout
238
- }).catch(() => {});
239
- }, true);
238
+ });
239
+ }, true).catch(() => {});
240
240
  }
241
241
  setDefaultTimeout(timeout) {
242
242
  this._timeoutSettings.setDefaultTimeout(timeout);
243
243
  this._wrapApiCall(async () => {
244
- this._channel.setDefaultTimeoutNoReply({
244
+ await this._channel.setDefaultTimeoutNoReply({
245
245
  timeout
246
- }).catch(() => {});
247
- }, true);
246
+ });
247
+ }, true).catch(() => {});
248
248
  }
249
249
  browser() {
250
250
  return this._browser;
@@ -270,15 +270,15 @@ class BrowserContext extends _channelOwner.ChannelOwner {
270
270
  }
271
271
  async clearCookies(options = {}) {
272
272
  await this._channel.clearCookies({
273
- name: (0, _utils.isString)(options.name) ? options.name : undefined,
274
- nameRegexSource: (0, _utils.isRegExp)(options.name) ? options.name.source : undefined,
275
- nameRegexFlags: (0, _utils.isRegExp)(options.name) ? options.name.flags : undefined,
276
- domain: (0, _utils.isString)(options.domain) ? options.domain : undefined,
277
- domainRegexSource: (0, _utils.isRegExp)(options.domain) ? options.domain.source : undefined,
278
- domainRegexFlags: (0, _utils.isRegExp)(options.domain) ? options.domain.flags : undefined,
279
- path: (0, _utils.isString)(options.path) ? options.path : undefined,
280
- pathRegexSource: (0, _utils.isRegExp)(options.path) ? options.path.source : undefined,
281
- pathRegexFlags: (0, _utils.isRegExp)(options.path) ? options.path.flags : undefined
273
+ name: (0, _rtti.isString)(options.name) ? options.name : undefined,
274
+ nameRegexSource: (0, _rtti.isRegExp)(options.name) ? options.name.source : undefined,
275
+ nameRegexFlags: (0, _rtti.isRegExp)(options.name) ? options.name.flags : undefined,
276
+ domain: (0, _rtti.isString)(options.domain) ? options.domain : undefined,
277
+ domainRegexSource: (0, _rtti.isRegExp)(options.domain) ? options.domain.source : undefined,
278
+ domainRegexFlags: (0, _rtti.isRegExp)(options.domain) ? options.domain.flags : undefined,
279
+ path: (0, _rtti.isString)(options.path) ? options.path : undefined,
280
+ pathRegexSource: (0, _rtti.isRegExp)(options.path) ? options.path.source : undefined,
281
+ pathRegexFlags: (0, _rtti.isRegExp)(options.path) ? options.path.flags : undefined
282
282
  });
283
283
  }
284
284
  async grantPermissions(permissions, options) {
@@ -298,7 +298,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
298
298
  async setExtraHTTPHeaders(headers) {
299
299
  network.validateHeaders(headers);
300
300
  await this._channel.setExtraHTTPHeaders({
301
- headers: (0, _utils.headersObjectToArray)(headers)
301
+ headers: (0, _headers.headersObjectToArray)(headers)
302
302
  });
303
303
  }
304
304
  async setOffline(offline) {
@@ -312,7 +312,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
312
312
  });
313
313
  }
314
314
  async addInitScript(script, arg) {
315
- const source = await (0, _clientHelper.evaluationScript)(script, arg);
315
+ const source = await (0, _clientHelper.evaluationScript)(this._platform, script, arg);
316
316
  await this._channel.addInitScript({
317
317
  source
318
318
  });
@@ -332,7 +332,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
332
332
  this._bindings.set(name, binding);
333
333
  }
334
334
  async route(url, handler, options = {}) {
335
- this._routes.unshift(new network.RouteHandler(this._options.baseURL, url, handler, options.times));
335
+ this._routes.unshift(new network.RouteHandler(this._platform, this._options.baseURL, url, handler, options.times));
336
336
  await this._updateInterceptionPatterns();
337
337
  }
338
338
  async routeWebSocket(url, handler) {
@@ -358,11 +358,13 @@ class BrowserContext extends _channelOwner.ChannelOwner {
358
358
  });
359
359
  }
360
360
  async routeFromHAR(har, options = {}) {
361
+ const localUtils = this._connection.localUtils();
362
+ if (!localUtils) throw new Error('Route from har is not supported in thin clients');
361
363
  if (options.update) {
362
364
  await this._recordIntoHAR(har, null, options);
363
365
  return;
364
366
  }
365
- const harRouter = await _harRouter.HarRouter.create(this._connection.localUtils(), har, options.notFound || 'abort', {
367
+ const harRouter = await _harRouter.HarRouter.create(localUtils, har, options.notFound || 'abort', {
366
368
  urlMatch: options.url
367
369
  });
368
370
  this._harRouters.push(harRouter);
@@ -380,7 +382,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
380
382
  const removed = [];
381
383
  const remaining = [];
382
384
  for (const route of this._routes) {
383
- if ((0, _utils.urlMatchesEqual)(route.url, url) && (!handler || route.handler === handler)) removed.push(route);else remaining.push(route);
385
+ if ((0, _urlMatch.urlMatchesEqual)(route.url, url) && (!handler || route.handler === handler)) removed.push(route);else remaining.push(route);
384
386
  }
385
387
  await this._unrouteInternal(removed, remaining, 'default');
386
388
  }
@@ -420,10 +422,12 @@ class BrowserContext extends _channelOwner.ChannelOwner {
420
422
  });
421
423
  }
422
424
  async storageState(options = {}) {
423
- const state = await this._channel.storageState();
425
+ const state = await this._channel.storageState({
426
+ indexedDB: options.indexedDB
427
+ });
424
428
  if (options.path) {
425
- await (0, _utils.mkdirIfNeeded)(options.path);
426
- await _fs.default.promises.writeFile(options.path, JSON.stringify(state, undefined, 2), 'utf8');
429
+ await (0, _fileUtils.mkdirIfNeeded)(this._platform, options.path);
430
+ await this._platform.fs().promises.writeFile(options.path, JSON.stringify(state, undefined, 2), 'utf8');
427
431
  }
428
432
  return state;
429
433
  }
@@ -451,7 +455,7 @@ class BrowserContext extends _channelOwner.ChannelOwner {
451
455
  this.tracing._resetStackCounter();
452
456
  this.emit(_events.Events.BrowserContext.Close, this);
453
457
  }
454
- async [_Symbol$asyncDispose]() {
458
+ async [Symbol.asyncDispose]() {
455
459
  await this.close();
456
460
  }
457
461
  async close(options = {}) {
@@ -473,8 +477,10 @@ class BrowserContext extends _channelOwner.ChannelOwner {
473
477
  const isCompressed = harParams.content === 'attach' || harParams.path.endsWith('.zip');
474
478
  const needCompressed = harParams.path.endsWith('.zip');
475
479
  if (isCompressed && !needCompressed) {
480
+ const localUtils = this._connection.localUtils();
481
+ if (!localUtils) throw new Error('Uncompressed har is not supported in thin clients');
476
482
  await artifact.saveAs(harParams.path + '.tmp');
477
- await this._connection.localUtils()._channel.harUnzip({
483
+ await localUtils.harUnzip({
478
484
  zipFile: harParams.path + '.tmp',
479
485
  harFile: harParams.path
480
486
  });
@@ -492,10 +498,10 @@ class BrowserContext extends _channelOwner.ChannelOwner {
492
498
  }
493
499
  }
494
500
  exports.BrowserContext = BrowserContext;
495
- async function prepareStorageState(options) {
501
+ async function prepareStorageState(platform, options) {
496
502
  if (typeof options.storageState !== 'string') return options.storageState;
497
503
  try {
498
- return JSON.parse(await _fs.default.promises.readFile(options.storageState, 'utf8'));
504
+ return JSON.parse(await platform.fs().promises.readFile(options.storageState, 'utf8'));
499
505
  } catch (e) {
500
506
  (0, _stackTrace.rewriteErrorMessage)(e, `Error reading storage state from ${options.storageState}:\n` + e.message);
501
507
  throw e;
@@ -506,28 +512,29 @@ function prepareRecordHarOptions(options) {
506
512
  return {
507
513
  path: options.path,
508
514
  content: options.content || (options.omitContent ? 'omit' : undefined),
509
- urlGlob: (0, _utils.isString)(options.urlFilter) ? options.urlFilter : undefined,
510
- urlRegexSource: (0, _utils.isRegExp)(options.urlFilter) ? options.urlFilter.source : undefined,
511
- urlRegexFlags: (0, _utils.isRegExp)(options.urlFilter) ? options.urlFilter.flags : undefined,
515
+ urlGlob: (0, _rtti.isString)(options.urlFilter) ? options.urlFilter : undefined,
516
+ urlRegexSource: (0, _rtti.isRegExp)(options.urlFilter) ? options.urlFilter.source : undefined,
517
+ urlRegexFlags: (0, _rtti.isRegExp)(options.urlFilter) ? options.urlFilter.flags : undefined,
512
518
  mode: options.mode
513
519
  };
514
520
  }
515
- async function prepareBrowserContextParams(options) {
521
+ async function prepareBrowserContextParams(platform, options) {
516
522
  if (options.videoSize && !options.videosPath) throw new Error(`"videoSize" option requires "videosPath" to be specified`);
517
523
  if (options.extraHTTPHeaders) network.validateHeaders(options.extraHTTPHeaders);
518
524
  const contextParams = {
519
525
  ...options,
520
526
  viewport: options.viewport === null ? undefined : options.viewport,
521
527
  noDefaultViewport: options.viewport === null,
522
- extraHTTPHeaders: options.extraHTTPHeaders ? (0, _utils.headersObjectToArray)(options.extraHTTPHeaders) : undefined,
523
- storageState: await prepareStorageState(options),
528
+ extraHTTPHeaders: options.extraHTTPHeaders ? (0, _headers.headersObjectToArray)(options.extraHTTPHeaders) : undefined,
529
+ storageState: await prepareStorageState(platform, options),
524
530
  serviceWorkers: options.serviceWorkers,
525
531
  recordHar: prepareRecordHarOptions(options.recordHar),
526
532
  colorScheme: options.colorScheme === null ? 'no-override' : options.colorScheme,
527
533
  reducedMotion: options.reducedMotion === null ? 'no-override' : options.reducedMotion,
528
534
  forcedColors: options.forcedColors === null ? 'no-override' : options.forcedColors,
535
+ contrast: options.contrast === null ? 'no-override' : options.contrast,
529
536
  acceptDownloads: toAcceptDownloadsProtocol(options.acceptDownloads),
530
- clientCertificates: await toClientCertificatesProtocol(options.clientCertificates)
537
+ clientCertificates: await toClientCertificatesProtocol(platform, options.clientCertificates)
531
538
  };
532
539
  if (!contextParams.recordVideo && options.videosPath) {
533
540
  contextParams.recordVideo = {
@@ -535,7 +542,7 @@ async function prepareBrowserContextParams(options) {
535
542
  size: options.videoSize
536
543
  };
537
544
  }
538
- if (contextParams.recordVideo && contextParams.recordVideo.dir) contextParams.recordVideo.dir = _path.default.resolve(process.cwd(), contextParams.recordVideo.dir);
545
+ if (contextParams.recordVideo && contextParams.recordVideo.dir) contextParams.recordVideo.dir = platform.path().resolve(contextParams.recordVideo.dir);
539
546
  return contextParams;
540
547
  }
541
548
  function toAcceptDownloadsProtocol(acceptDownloads) {
@@ -543,11 +550,11 @@ function toAcceptDownloadsProtocol(acceptDownloads) {
543
550
  if (acceptDownloads) return 'accept';
544
551
  return 'deny';
545
552
  }
546
- async function toClientCertificatesProtocol(certs) {
553
+ async function toClientCertificatesProtocol(platform, certs) {
547
554
  if (!certs) return undefined;
548
555
  const bufferizeContent = async (value, path) => {
549
556
  if (value) return value;
550
- if (path) return await _fs.default.promises.readFile(path);
557
+ if (path) return await platform.fs().promises.readFile(path);
551
558
  };
552
559
  return await Promise.all(certs.map(async cert => ({
553
560
  origin: cert.origin,
@@ -7,11 +7,13 @@ exports.BrowserType = void 0;
7
7
  var _browser3 = require("./browser");
8
8
  var _browserContext = require("./browserContext");
9
9
  var _channelOwner = require("./channelOwner");
10
- var _connection = require("./connection");
11
- var _events = require("./events");
12
10
  var _clientHelper = require("./clientHelper");
13
- var _utils = require("../utils");
14
- var _timeoutRunner = require("../utils/timeoutRunner");
11
+ var _events = require("./events");
12
+ var _assert = require("../utils/isomorphic/assert");
13
+ var _headers = require("../utils/isomorphic/headers");
14
+ var _time = require("../utils/isomorphic/time");
15
+ var _timeoutRunner = require("../utils/isomorphic/timeoutRunner");
16
+ var _webSocket = require("./webSocket");
15
17
  /**
16
18
  * Copyright (c) Microsoft Corporation.
17
19
  *
@@ -36,11 +38,6 @@ class BrowserType extends _channelOwner.ChannelOwner {
36
38
  this._serverLauncher = void 0;
37
39
  this._contexts = new Set();
38
40
  this._playwright = void 0;
39
- // Instrumentation.
40
- this._defaultContextOptions = void 0;
41
- this._defaultContextTimeout = void 0;
42
- this._defaultContextNavigationTimeout = void 0;
43
- this._defaultLaunchOptions = void 0;
44
41
  }
45
42
  static from(browserType) {
46
43
  return browserType._object;
@@ -53,12 +50,12 @@ class BrowserType extends _channelOwner.ChannelOwner {
53
50
  return this._initializer.name;
54
51
  }
55
52
  async launch(options = {}) {
56
- var _this$_defaultLaunchO;
57
- (0, _utils.assert)(!options.userDataDir, 'userDataDir option is not supported in `browserType.launch`. Use `browserType.launchPersistentContext` instead');
58
- (0, _utils.assert)(!options.port, 'Cannot specify a port without launching as a server.');
59
- const logger = options.logger || ((_this$_defaultLaunchO = this._defaultLaunchOptions) === null || _this$_defaultLaunchO === void 0 ? void 0 : _this$_defaultLaunchO.logger);
53
+ var _this$_playwright$_de;
54
+ (0, _assert.assert)(!options.userDataDir, 'userDataDir option is not supported in `browserType.launch`. Use `browserType.launchPersistentContext` instead');
55
+ (0, _assert.assert)(!options.port, 'Cannot specify a port without launching as a server.');
56
+ const logger = options.logger || ((_this$_playwright$_de = this._playwright._defaultLaunchOptions) === null || _this$_playwright$_de === void 0 ? void 0 : _this$_playwright$_de.logger);
60
57
  options = {
61
- ...this._defaultLaunchOptions,
58
+ ...this._playwright._defaultLaunchOptions,
62
59
  ...options
63
60
  };
64
61
  const launchOptions = {
@@ -76,28 +73,28 @@ class BrowserType extends _channelOwner.ChannelOwner {
76
73
  async launchServer(options = {}) {
77
74
  if (!this._serverLauncher) throw new Error('Launching server is not supported');
78
75
  options = {
79
- ...this._defaultLaunchOptions,
76
+ ...this._playwright._defaultLaunchOptions,
80
77
  ...options
81
78
  };
82
79
  return await this._serverLauncher.launchServer(options);
83
80
  }
84
81
  async launchPersistentContext(userDataDir, options = {}) {
85
- var _this$_defaultLaunchO2;
86
- const logger = options.logger || ((_this$_defaultLaunchO2 = this._defaultLaunchOptions) === null || _this$_defaultLaunchO2 === void 0 ? void 0 : _this$_defaultLaunchO2.logger);
87
- (0, _utils.assert)(!options.port, 'Cannot specify a port without launching as a server.');
82
+ var _this$_playwright$_de2;
83
+ const logger = options.logger || ((_this$_playwright$_de2 = this._playwright._defaultLaunchOptions) === null || _this$_playwright$_de2 === void 0 ? void 0 : _this$_playwright$_de2.logger);
84
+ (0, _assert.assert)(!options.port, 'Cannot specify a port without launching as a server.');
88
85
  options = {
89
- ...this._defaultLaunchOptions,
90
- ...this._defaultContextOptions,
86
+ ...this._playwright._defaultLaunchOptions,
87
+ ...this._playwright._defaultContextOptions,
91
88
  ...options
92
89
  };
93
- const contextParams = await (0, _browserContext.prepareBrowserContextParams)(options);
90
+ const contextParams = await (0, _browserContext.prepareBrowserContextParams)(this._platform, options);
94
91
  const persistentParams = {
95
92
  ...contextParams,
96
93
  ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : undefined,
97
94
  ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
98
95
  env: options.env ? (0, _clientHelper.envObjectToArray)(options.env) : undefined,
99
96
  channel: options.channel,
100
- userDataDir
97
+ userDataDir: this._platform.path().isAbsolute(userDataDir) || !userDataDir ? userDataDir : this._platform.path().resolve(userDataDir)
101
98
  };
102
99
  return await this._wrapApiCall(async () => {
103
100
  const result = await this._channel.launchPersistentContext(persistentParams);
@@ -111,19 +108,18 @@ class BrowserType extends _channelOwner.ChannelOwner {
111
108
  ...options,
112
109
  wsEndpoint: optionsOrWsEndpoint
113
110
  });
114
- (0, _utils.assert)(optionsOrWsEndpoint.wsEndpoint, 'options.wsEndpoint is required');
111
+ (0, _assert.assert)(optionsOrWsEndpoint.wsEndpoint, 'options.wsEndpoint is required');
115
112
  return await this._connect(optionsOrWsEndpoint);
116
113
  }
117
114
  async _connect(params) {
118
115
  const logger = params.logger;
119
116
  return await this._wrapApiCall(async () => {
120
117
  var _params$exposeNetwork;
121
- const deadline = params.timeout ? (0, _utils.monotonicTime)() + params.timeout : 0;
118
+ const deadline = params.timeout ? (0, _time.monotonicTime)() + params.timeout : 0;
122
119
  const headers = {
123
120
  'x-playwright-browser': this.name(),
124
121
  ...params.headers
125
122
  };
126
- const localUtils = this._connection.localUtils();
127
123
  const connectParams = {
128
124
  wsEndpoint: params.wsEndpoint,
129
125
  headers,
@@ -132,69 +128,39 @@ class BrowserType extends _channelOwner.ChannelOwner {
132
128
  timeout: params.timeout
133
129
  };
134
130
  if (params.__testHookRedirectPortForwarding) connectParams.socksProxyRedirectPortForTest = params.__testHookRedirectPortForwarding;
135
- const {
136
- pipe,
137
- headers: connectHeaders
138
- } = await localUtils._channel.connect(connectParams);
139
- const closePipe = () => pipe.close().catch(() => {});
140
- const connection = new _connection.Connection(localUtils, this._instrumentation);
141
- connection.markAsRemote();
142
- connection.on('close', closePipe);
131
+ const connection = await (0, _webSocket.connectOverWebSocket)(this._connection, connectParams);
143
132
  let browser;
144
- let closeError;
145
- const onPipeClosed = reason => {
133
+ connection.on('close', () => {
146
134
  // Emulate all pages, contexts and the browser closing upon disconnect.
147
135
  for (const context of ((_browser = browser) === null || _browser === void 0 ? void 0 : _browser.contexts()) || []) {
148
136
  var _browser;
149
137
  for (const page of context.pages()) page._onClose();
150
138
  context._onClose();
151
139
  }
152
- connection.close(reason || closeError);
153
- // Give a chance to any API call promises to reject upon page/context closure.
154
- // This happens naturally when we receive page.onClose and browser.onClose from the server
155
- // in separate tasks. However, upon pipe closure we used to dispatch them all synchronously
156
- // here and promises did not have a chance to reject.
157
- // The order of rejects vs closure is a part of the API contract and our test runner
158
- // relies on it to attribute rejections to the right test.
159
140
  setTimeout(() => {
160
141
  var _browser2;
161
142
  return (_browser2 = browser) === null || _browser2 === void 0 ? void 0 : _browser2._didClose();
162
143
  }, 0);
163
- };
164
- pipe.on('closed', params => onPipeClosed(params.reason));
165
- connection.onmessage = message => this._wrapApiCall(() => pipe.send({
166
- message
167
- }).catch(() => onPipeClosed()), /* isInternal */true);
168
- pipe.on('message', ({
169
- message
170
- }) => {
171
- try {
172
- connection.dispatch(message);
173
- } catch (e) {
174
- closeError = String(e);
175
- closePipe();
176
- }
177
144
  });
178
145
  const result = await (0, _timeoutRunner.raceAgainstDeadline)(async () => {
179
146
  // For tests.
180
147
  if (params.__testHookBeforeCreateBrowser) await params.__testHookBeforeCreateBrowser();
181
148
  const playwright = await connection.initializePlaywright();
182
149
  if (!playwright._initializer.preLaunchedBrowser) {
183
- closePipe();
150
+ connection.close();
184
151
  throw new Error('Malformed endpoint. Did you use BrowserType.launchServer method?');
185
152
  }
186
153
  playwright._setSelectors(this._playwright.selectors);
187
154
  browser = _browser3.Browser.from(playwright._initializer.preLaunchedBrowser);
188
155
  this._didLaunchBrowser(browser, {}, logger);
189
156
  browser._shouldCloseConnectionOnClose = true;
190
- browser._connectHeaders = connectHeaders;
191
- browser.on(_events.Events.Browser.Disconnected, () => this._wrapApiCall(() => closePipe(), /* isInternal */true));
157
+ browser.on(_events.Events.Browser.Disconnected, () => connection.close());
192
158
  return browser;
193
159
  }, deadline);
194
160
  if (!result.timedOut) {
195
161
  return result.result;
196
162
  } else {
197
- closePipe();
163
+ connection.close();
198
164
  throw new Error(`Timeout ${params.timeout}ms exceeded`);
199
165
  }
200
166
  });
@@ -202,12 +168,12 @@ class BrowserType extends _channelOwner.ChannelOwner {
202
168
  async connectOverCDP(endpointURLOrOptions, options) {
203
169
  if (typeof endpointURLOrOptions === 'string') return await this._connectOverCDP(endpointURLOrOptions, options);
204
170
  const endpointURL = 'endpointURL' in endpointURLOrOptions ? endpointURLOrOptions.endpointURL : endpointURLOrOptions.wsEndpoint;
205
- (0, _utils.assert)(endpointURL, 'Cannot connect over CDP without wsEndpoint.');
171
+ (0, _assert.assert)(endpointURL, 'Cannot connect over CDP without wsEndpoint.');
206
172
  return await this.connectOverCDP(endpointURL, endpointURLOrOptions);
207
173
  }
208
174
  async _connectOverCDP(endpointURL, params = {}) {
209
175
  if (this.name() !== 'chromium') throw new Error('Connecting over CDP is only supported in Chromium.');
210
- const headers = params.headers ? (0, _utils.headersObjectToArray)(params.headers) : undefined;
176
+ const headers = params.headers ? (0, _headers.headersObjectToArray)(params.headers) : undefined;
211
177
  const result = await this._channel.connectOverCDP({
212
178
  endpointURL,
213
179
  headers,
@@ -229,8 +195,8 @@ class BrowserType extends _channelOwner.ChannelOwner {
229
195
  context._browserType = this;
230
196
  this._contexts.add(context);
231
197
  context._setOptions(contextOptions, browserOptions);
232
- if (this._defaultContextTimeout !== undefined) context.setDefaultTimeout(this._defaultContextTimeout);
233
- if (this._defaultContextNavigationTimeout !== undefined) context.setDefaultNavigationTimeout(this._defaultContextNavigationTimeout);
198
+ if (this._playwright._defaultContextTimeout !== undefined) context.setDefaultTimeout(this._playwright._defaultContextTimeout);
199
+ if (this._playwright._defaultContextNavigationTimeout !== undefined) context.setDefaultNavigationTimeout(this._playwright._defaultContextNavigationTimeout);
234
200
  await this._instrumentation.runAfterCreateBrowserContext(context);
235
201
  }
236
202
  async _willCloseContext(context) {