@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
@@ -8,10 +8,10 @@ var _fs = _interopRequireDefault(require("fs"));
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
  var _artifact = require("../artifact");
10
10
  var _harTracer = require("./harTracer");
11
+ var _crypto = require("../utils/crypto");
12
+ var _manualPromise = require("../../utils/isomorphic/manualPromise");
11
13
  var _zipBundle = require("../../zipBundle");
12
- var _manualPromise = require("../../utils/manualPromise");
13
- var _utils = require("../../utils");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  /**
16
16
  * Copyright (c) Microsoft Corporation.
17
17
  *
@@ -36,7 +36,7 @@ class HarRecorder {
36
36
  this._entries = [];
37
37
  this._zipFile = null;
38
38
  this._writtenZipEntries = new Set();
39
- this._artifact = new _artifact.Artifact(context, _path.default.join(context._browser.options.artifactsDir, `${(0, _utils.createGuid)()}.har`));
39
+ this._artifact = new _artifact.Artifact(context, _path.default.join(context._browser.options.artifactsDir, `${(0, _crypto.createGuid)()}.har`));
40
40
  const urlFilterRe = options.urlRegexSource !== undefined && options.urlRegexFlags !== undefined ? new RegExp(options.urlRegexSource, options.urlRegexFlags) : undefined;
41
41
  const expectsZip = options.path.endsWith('.zip');
42
42
  const content = options.content || (expectsZip ? 'attach' : 'embed');
@@ -4,17 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HarTracer = void 0;
7
+ var _utils = require("../../utils");
8
+ var _eventsHelper = require("../utils/eventsHelper");
9
+ var _manualPromise = require("../../utils/isomorphic/manualPromise");
10
+ var _utilsBundle = require("../../utilsBundle");
7
11
  var _browserContext = require("../browserContext");
8
12
  var _fetch = require("../fetch");
13
+ var _frames = require("../frames");
9
14
  var _helper = require("../helper");
10
15
  var network = _interopRequireWildcard(require("../network"));
11
- var _utils = require("../../utils");
12
- var _eventsHelper = require("../../utils/eventsHelper");
13
- var _utilsBundle = require("../../utilsBundle");
14
- var _manualPromise = require("../../utils/manualPromise");
15
- var _frames = require("../frames");
16
16
  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); }
17
- 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; }
17
+ 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; }
18
18
  /**
19
19
  * Copyright (c) Microsoft Corporation.
20
20
  *
@@ -196,7 +196,7 @@ class HarTracer {
196
196
  if (!this._shouldIncludeEntryWithUrl(request.url())) return;
197
197
  const page = (_request$frame = request.frame()) === null || _request$frame === void 0 ? void 0 : _request$frame._page;
198
198
  if (this._page && page !== this._page) return;
199
- const url = network.parsedURL(request.url());
199
+ const url = network.parseURL(request.url());
200
200
  if (!url) return;
201
201
  const pageEntry = this._createPageEntryIfNeeded(page);
202
202
  const harEntry = createHarEntry(request.method(), url, (_request$frame2 = request.frame()) === null || _request$frame2 === void 0 ? void 0 : _request$frame2.guid, this._options);
@@ -440,9 +440,8 @@ class HarTracer {
440
440
  return this._postDataForBuffer(postData, contentType, content);
441
441
  }
442
442
  _postDataForBuffer(postData, contentType, content) {
443
- var _contentType;
444
443
  if (!postData) return;
445
- (_contentType = contentType) !== null && _contentType !== void 0 ? _contentType : contentType = 'application/octet-stream';
444
+ contentType !== null && contentType !== void 0 ? contentType : contentType = 'application/octet-stream';
446
445
  const result = {
447
446
  mimeType: contentType,
448
447
  text: '',
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HarBackend = void 0;
7
+ var _fs = _interopRequireDefault(require("fs"));
8
+ var _path = _interopRequireDefault(require("path"));
9
+ var _crypto = require("./utils/crypto");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ /**
12
+ * Copyright (c) Microsoft Corporation.
13
+ *
14
+ * Licensed under the Apache License, Version 2.0 (the 'License");
15
+ * you may not use this file except in compliance with the License.
16
+ * You may obtain a copy of the License at
17
+ *
18
+ * http://www.apache.org/licenses/LICENSE-2.0
19
+ *
20
+ * Unless required by applicable law or agreed to in writing, software
21
+ * distributed under the License is distributed on an "AS IS" BASIS,
22
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23
+ * See the License for the specific language governing permissions and
24
+ * limitations under the License.
25
+ */
26
+
27
+ const redirectStatus = [301, 302, 303, 307, 308];
28
+ class HarBackend {
29
+ constructor(harFile, baseDir, zipFile) {
30
+ this.id = void 0;
31
+ this._harFile = void 0;
32
+ this._zipFile = void 0;
33
+ this._baseDir = void 0;
34
+ this.id = (0, _crypto.createGuid)();
35
+ this._harFile = harFile;
36
+ this._baseDir = baseDir;
37
+ this._zipFile = zipFile;
38
+ }
39
+ async lookup(url, method, headers, postData, isNavigationRequest) {
40
+ let entry;
41
+ try {
42
+ entry = await this._harFindResponse(url, method, headers, postData);
43
+ } catch (e) {
44
+ return {
45
+ action: 'error',
46
+ message: 'HAR error: ' + e.message
47
+ };
48
+ }
49
+ if (!entry) return {
50
+ action: 'noentry'
51
+ };
52
+
53
+ // If navigation is being redirected, restart it with the final url to ensure the document's url changes.
54
+ if (entry.request.url !== url && isNavigationRequest) return {
55
+ action: 'redirect',
56
+ redirectURL: entry.request.url
57
+ };
58
+ const response = entry.response;
59
+ try {
60
+ const buffer = await this._loadContent(response.content);
61
+ return {
62
+ action: 'fulfill',
63
+ status: response.status,
64
+ headers: response.headers,
65
+ body: buffer
66
+ };
67
+ } catch (e) {
68
+ return {
69
+ action: 'error',
70
+ message: e.message
71
+ };
72
+ }
73
+ }
74
+ async _loadContent(content) {
75
+ const file = content._file;
76
+ let buffer;
77
+ if (file) {
78
+ if (this._zipFile) buffer = await this._zipFile.read(file);else buffer = await _fs.default.promises.readFile(_path.default.resolve(this._baseDir, file));
79
+ } else {
80
+ buffer = Buffer.from(content.text || '', content.encoding === 'base64' ? 'base64' : 'utf-8');
81
+ }
82
+ return buffer;
83
+ }
84
+ async _harFindResponse(url, method, headers, postData) {
85
+ const harLog = this._harFile.log;
86
+ const visited = new Set();
87
+ while (true) {
88
+ const entries = [];
89
+ for (const candidate of harLog.entries) {
90
+ if (candidate.request.url !== url || candidate.request.method !== method) continue;
91
+ if (method === 'POST' && postData && candidate.request.postData) {
92
+ const buffer = await this._loadContent(candidate.request.postData);
93
+ if (!buffer.equals(postData)) {
94
+ const boundary = multipartBoundary(headers);
95
+ if (!boundary) continue;
96
+ const candidataBoundary = multipartBoundary(candidate.request.headers);
97
+ if (!candidataBoundary) continue;
98
+ // Try to match multipart/form-data ignroing boundary as it changes between requests.
99
+ if (postData.toString().replaceAll(boundary, '') !== buffer.toString().replaceAll(candidataBoundary, '')) continue;
100
+ }
101
+ }
102
+ entries.push(candidate);
103
+ }
104
+ if (!entries.length) return;
105
+ let entry = entries[0];
106
+
107
+ // Disambiguate using headers - then one with most matching headers wins.
108
+ if (entries.length > 1) {
109
+ const list = [];
110
+ for (const candidate of entries) {
111
+ const matchingHeaders = countMatchingHeaders(candidate.request.headers, headers);
112
+ list.push({
113
+ candidate,
114
+ matchingHeaders
115
+ });
116
+ }
117
+ list.sort((a, b) => b.matchingHeaders - a.matchingHeaders);
118
+ entry = list[0].candidate;
119
+ }
120
+ if (visited.has(entry)) throw new Error(`Found redirect cycle for ${url}`);
121
+ visited.add(entry);
122
+
123
+ // Follow redirects.
124
+ const locationHeader = entry.response.headers.find(h => h.name.toLowerCase() === 'location');
125
+ if (redirectStatus.includes(entry.response.status) && locationHeader) {
126
+ const locationURL = new URL(locationHeader.value, url);
127
+ url = locationURL.toString();
128
+ if ((entry.response.status === 301 || entry.response.status === 302) && method === 'POST' || entry.response.status === 303 && !['GET', 'HEAD'].includes(method)) {
129
+ // HTTP-redirect fetch step 13 (https://fetch.spec.whatwg.org/#http-redirect-fetch)
130
+ method = 'GET';
131
+ }
132
+ continue;
133
+ }
134
+ return entry;
135
+ }
136
+ }
137
+ dispose() {
138
+ var _this$_zipFile;
139
+ (_this$_zipFile = this._zipFile) === null || _this$_zipFile === void 0 || _this$_zipFile.close();
140
+ }
141
+ }
142
+ exports.HarBackend = HarBackend;
143
+ function countMatchingHeaders(harHeaders, headers) {
144
+ const set = new Set(headers.map(h => h.name.toLowerCase() + ':' + h.value));
145
+ let matches = 0;
146
+ for (const h of harHeaders) {
147
+ if (set.has(h.name.toLowerCase() + ':' + h.value)) ++matches;
148
+ }
149
+ return matches;
150
+ }
151
+ function multipartBoundary(headers) {
152
+ const contentType = headers.find(h => h.name.toLowerCase() === 'content-type');
153
+ if (!(contentType !== null && contentType !== void 0 && contentType.value.includes('multipart/form-data'))) return undefined;
154
+ const boundary = contentType.value.match(/boundary=(\S+)/);
155
+ if (boundary) return boundary[1];
156
+ return undefined;
157
+ }
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.helper = void 0;
7
- var _debugLogger = require("../utils/debugLogger");
8
- var _eventsHelper = require("../utils/eventsHelper");
7
+ var _debugLogger = require("./utils/debugLogger");
8
+ var _eventsHelper = require("./utils/eventsHelper");
9
9
  /**
10
10
  * Copyright 2017 Google Inc. All rights reserved.
11
11
  * Modifications copyright (c) Microsoft Corporation.
@@ -27,12 +27,6 @@ Object.defineProperty(exports, "RootDispatcher", {
27
27
  return _dispatcher.RootDispatcher;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "SocksProxy", {
31
- enumerable: true,
32
- get: function () {
33
- return _socksProxy.SocksProxy;
34
- }
35
- });
36
30
  Object.defineProperty(exports, "createPlaywright", {
37
31
  enumerable: true,
38
32
  get: function () {
@@ -45,12 +39,6 @@ Object.defineProperty(exports, "installBrowsersForNpmInstall", {
45
39
  return _registry.installBrowsersForNpmInstall;
46
40
  }
47
41
  });
48
- Object.defineProperty(exports, "installDefaultBrowsersForNpmInstall", {
49
- enumerable: true,
50
- get: function () {
51
- return _registry.installDefaultBrowsersForNpmInstall;
52
- }
53
- });
54
42
  Object.defineProperty(exports, "installRootRedirect", {
55
43
  enumerable: true,
56
44
  get: function () {
@@ -110,5 +98,4 @@ var _dispatcher = require("./dispatchers/dispatcher");
110
98
  var _playwrightDispatcher = require("./dispatchers/playwrightDispatcher");
111
99
  var _playwright = require("./playwright");
112
100
  var _traceViewer = require("./trace/viewer/traceViewer");
113
- var _instrumentation = require("./instrumentation");
114
- var _socksProxy = require("../common/socksProxy");
101
+ var _instrumentation = require("./instrumentation");
@@ -9,7 +9,7 @@ exports.resolveSmartModifierString = resolveSmartModifierString;
9
9
  var _utils = require("../utils");
10
10
  var keyboardLayout = _interopRequireWildcard(require("./usKeyboardLayout"));
11
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
13
  /**
14
14
  * Copyright (c) Microsoft Corporation.
15
15
  *
@@ -40,8 +40,7 @@ class Keyboard {
40
40
  const autoRepeat = this._pressedKeys.has(description.code);
41
41
  this._pressedKeys.add(description.code);
42
42
  if (kModifiers.includes(description.key)) this._pressedModifiers.add(description.key);
43
- const text = description.text;
44
- await this._raw.keydown(this._pressedModifiers, description.code, description.keyCode, description.keyCodeWithoutLocation, description.key, description.location, autoRepeat, text);
43
+ await this._raw.keydown(this._pressedModifiers, key, description, autoRepeat);
45
44
  }
46
45
  _keyDescriptionForString(str) {
47
46
  const keyString = resolveSmartModifierString(str);
@@ -61,7 +60,7 @@ class Keyboard {
61
60
  const description = this._keyDescriptionForString(key);
62
61
  if (kModifiers.includes(description.key)) this._pressedModifiers.delete(description.key);
63
62
  this._pressedKeys.delete(description.code);
64
- await this._raw.keyup(this._pressedModifiers, description.code, description.keyCode, description.keyCodeWithoutLocation, description.key, description.location);
63
+ await this._raw.keyup(this._pressedModifiers, key, description);
65
64
  }
66
65
  async insertText(text) {
67
66
  await this._raw.sendText(text);
@@ -7,7 +7,7 @@ exports.SdkObject = void 0;
7
7
  exports.createInstrumentation = createInstrumentation;
8
8
  exports.serverSideCallMetadata = serverSideCallMetadata;
9
9
  var _events = require("events");
10
- var _utils = require("../utils");
10
+ var _crypto = require("./utils/crypto");
11
11
  /**
12
12
  * Copyright (c) Microsoft Corporation. All rights reserved.
13
13
  *
@@ -30,7 +30,7 @@ class SdkObject extends _events.EventEmitter {
30
30
  this.guid = void 0;
31
31
  this.attribution = void 0;
32
32
  this.instrumentation = void 0;
33
- this.guid = guid || `${guidPrefix || ''}@${(0, _utils.createGuid)()}`;
33
+ this.guid = guid || `${guidPrefix || ''}@${(0, _crypto.createGuid)()}`;
34
34
  this.setMaxListeners(0);
35
35
  this.attribution = {
36
36
  ...parent.attribution
@@ -101,8 +101,11 @@ function source() {
101
101
  }
102
102
  function serialize(value, handleSerializer, visitorInfo) {
103
103
  if (value && typeof value === 'object') {
104
+ // eslint-disable-next-line no-restricted-globals
104
105
  if (typeof globalThis.Window === 'function' && value instanceof globalThis.Window) return 'ref: <Window>';
106
+ // eslint-disable-next-line no-restricted-globals
105
107
  if (typeof globalThis.Document === 'function' && value instanceof globalThis.Document) return 'ref: <Document>';
108
+ // eslint-disable-next-line no-restricted-globals
106
109
  if (typeof globalThis.Node === 'function' && value instanceof globalThis.Node) return 'ref: <Node>';
107
110
  }
108
111
  return innerSerialize(value, handleSerializer, visitorInfo);
@@ -10,13 +10,13 @@ exports.isJavaScriptErrorInEvaluate = isJavaScriptErrorInEvaluate;
10
10
  exports.normalizeEvaluationExpression = normalizeEvaluationExpression;
11
11
  exports.parseUnserializableValue = parseUnserializableValue;
12
12
  exports.sparseArrayToString = sparseArrayToString;
13
- var utilityScriptSource = _interopRequireWildcard(require("../generated/utilityScriptSource"));
14
- var _utilityScriptSerializers = require("./isomorphic/utilityScriptSerializers");
15
13
  var _instrumentation = require("./instrumentation");
16
- var _manualPromise = require("../utils/manualPromise");
14
+ var utilityScriptSource = _interopRequireWildcard(require("../generated/utilityScriptSource"));
17
15
  var _utils = require("../utils");
16
+ var _utilityScriptSerializers = require("./isomorphic/utilityScriptSerializers");
17
+ var _manualPromise = require("../utils/isomorphic/manualPromise");
18
18
  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); }
19
- 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; }
19
+ 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; }
20
20
  /**
21
21
  * Copyright (c) Microsoft Corporation.
22
22
  *
@@ -36,12 +36,12 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
36
36
  class ExecutionContext extends _instrumentation.SdkObject {
37
37
  constructor(parent, delegate, worldNameForTest) {
38
38
  super(parent, 'execution-context');
39
- this._delegate = void 0;
39
+ this.delegate = void 0;
40
40
  this._utilityScriptPromise = void 0;
41
41
  this._contextDestroyedScope = new _manualPromise.LongStandingScope();
42
42
  this.worldNameForTest = void 0;
43
43
  this.worldNameForTest = worldNameForTest;
44
- this._delegate = delegate;
44
+ this.delegate = delegate;
45
45
  }
46
46
  contextDestroyed(reason) {
47
47
  this._contextDestroyedScope.close(new Error(reason));
@@ -50,30 +50,25 @@ class ExecutionContext extends _instrumentation.SdkObject {
50
50
  return this._contextDestroyedScope.race(promise);
51
51
  }
52
52
  rawEvaluateJSON(expression) {
53
- return this._raceAgainstContextDestroyed(this._delegate.rawEvaluateJSON(expression));
53
+ return this._raceAgainstContextDestroyed(this.delegate.rawEvaluateJSON(expression));
54
54
  }
55
55
  rawEvaluateHandle(expression) {
56
- return this._raceAgainstContextDestroyed(this._delegate.rawEvaluateHandle(expression));
56
+ return this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, expression));
57
57
  }
58
- rawCallFunctionNoReply(func, ...args) {
59
- this._delegate.rawCallFunctionNoReply(func, ...args);
58
+ async evaluateWithArguments(expression, returnByValue, values, handles) {
59
+ const utilityScript = await this._utilityScript();
60
+ return this._raceAgainstContextDestroyed(this.delegate.evaluateWithArguments(expression, returnByValue, utilityScript, values, handles));
60
61
  }
61
- evaluateWithArguments(expression, returnByValue, utilityScript, values, objectIds) {
62
- return this._raceAgainstContextDestroyed(this._delegate.evaluateWithArguments(expression, returnByValue, utilityScript, values, objectIds));
62
+ getProperties(object) {
63
+ return this._raceAgainstContextDestroyed(this.delegate.getProperties(object));
63
64
  }
64
- getProperties(context, objectId) {
65
- return this._raceAgainstContextDestroyed(this._delegate.getProperties(context, objectId));
66
- }
67
- createHandle(remoteObject) {
68
- return this._delegate.createHandle(this, remoteObject);
69
- }
70
- releaseHandle(objectId) {
71
- return this._delegate.releaseHandle(objectId);
65
+ releaseHandle(handle) {
66
+ return this.delegate.releaseHandle(handle);
72
67
  }
73
68
  adoptIfNeeded(handle) {
74
69
  return null;
75
70
  }
76
- utilityScript() {
71
+ _utilityScript() {
77
72
  if (!this._utilityScriptPromise) {
78
73
  const source = `
79
74
  (() => {
@@ -81,7 +76,10 @@ class ExecutionContext extends _instrumentation.SdkObject {
81
76
  ${utilityScriptSource.source}
82
77
  return new (module.exports.UtilityScript())(${(0, _utils.isUnderTest)()});
83
78
  })();`;
84
- this._utilityScriptPromise = this._raceAgainstContextDestroyed(this._delegate.rawEvaluateHandle(source).then(objectId => new JSHandle(this, 'object', 'UtilityScript', objectId)));
79
+ this._utilityScriptPromise = this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, source)).then(handle => {
80
+ handle._setPreview('UtilityScript');
81
+ return handle;
82
+ });
85
83
  }
86
84
  return this._utilityScriptPromise;
87
85
  }
@@ -108,9 +106,6 @@ class JSHandle extends _instrumentation.SdkObject {
108
106
  this._preview = this._objectId ? preview || `JSHandle@${this._objectType}` : String(value);
109
107
  if (this._objectId && globalThis.leakedJSHandles) globalThis.leakedJSHandles.set(this, new Error('Leaked JSHandle'));
110
108
  }
111
- callFunctionNoReply(func, arg) {
112
- this._context.rawCallFunctionNoReply(func, this, arg);
113
- }
114
109
  async evaluate(pageFunction, arg) {
115
110
  return evaluate(this._context, true /* returnByValue */, pageFunction, this, arg);
116
111
  }
@@ -148,16 +143,15 @@ class JSHandle extends _instrumentation.SdkObject {
148
143
  }
149
144
  async getProperties() {
150
145
  if (!this._objectId) return new Map();
151
- return this._context.getProperties(this._context, this._objectId);
146
+ return this._context.getProperties(this);
152
147
  }
153
148
  rawValue() {
154
149
  return this._value;
155
150
  }
156
151
  async jsonValue() {
157
152
  if (!this._objectId) return this._value;
158
- const utilityScript = await this._context.utilityScript();
159
153
  const script = `(utilityScript, ...args) => utilityScript.jsonValue(...args)`;
160
- return this._context.evaluateWithArguments(script, true, utilityScript, [true], [this._objectId]);
154
+ return this._context.evaluateWithArguments(script, true, [true], [this]);
161
155
  }
162
156
  asElement() {
163
157
  return null;
@@ -166,7 +160,7 @@ class JSHandle extends _instrumentation.SdkObject {
166
160
  if (this._disposed) return;
167
161
  this._disposed = true;
168
162
  if (this._objectId) {
169
- this._context.releaseHandle(this._objectId).catch(e => {});
163
+ this._context.releaseHandle(this).catch(e => {});
170
164
  if (globalThis.leakedJSHandles) globalThis.leakedJSHandles.delete(this);
171
165
  }
172
166
  }
@@ -195,7 +189,6 @@ async function evaluate(context, returnByValue, pageFunction, ...args) {
195
189
  }, ...args);
196
190
  }
197
191
  async function evaluateExpression(context, expression, options, ...args) {
198
- const utilityScript = await context.utilityScript();
199
192
  expression = normalizeEvaluationExpression(expression, options.isFunction);
200
193
  const handles = [];
201
194
  const toDispose = [];
@@ -222,17 +215,17 @@ async function evaluateExpression(context, expression, options, ...args) {
222
215
  fallThrough: handle
223
216
  };
224
217
  }));
225
- const utilityScriptObjectIds = [];
218
+ const utilityScriptObjects = [];
226
219
  for (const handle of await Promise.all(handles)) {
227
220
  if (handle._context !== context) throw new JavaScriptErrorInEvaluate('JSHandles can be evaluated only in the context they were created!');
228
- utilityScriptObjectIds.push(handle._objectId);
221
+ utilityScriptObjects.push(handle);
229
222
  }
230
223
 
231
224
  // See UtilityScript for arguments.
232
225
  const utilityScriptValues = [options.isFunction, options.returnByValue, expression, args.length, ...args];
233
226
  const script = `(utilityScript, ...args) => utilityScript.evaluate(...args)`;
234
227
  try {
235
- return await context.evaluateWithArguments(script, options.returnByValue || false, utilityScript, utilityScriptValues, utilityScriptObjectIds);
228
+ return await context.evaluateWithArguments(script, options.returnByValue || false, utilityScriptValues, utilityScriptObjects);
236
229
  } finally {
237
230
  toDispose.map(handlePromise => handlePromise.then(handle => handle.dispose()));
238
231
  }
@@ -7,10 +7,10 @@ exports.launchApp = launchApp;
7
7
  exports.syncLocalStorageWithSettings = syncLocalStorageWithSettings;
8
8
  var _fs = _interopRequireDefault(require("fs"));
9
9
  var _path = _interopRequireDefault(require("path"));
10
- var _registry = require("./registry");
11
10
  var _utils = require("../utils");
12
11
  var _instrumentation = require("./instrumentation");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ var _registry = require("./registry");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  /**
15
15
  * Copyright (c) Microsoft Corporation.
16
16
  *
@@ -28,18 +28,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
28
28
  */
29
29
 
30
30
  async function launchApp(browserType, options) {
31
- var _options$persistentCo, _options$persistentCo2, _options$persistentCo3;
31
+ var _options$persistentCo, _options$persistentCo2, _options$persistentCo3, _options$persistentCo4, _options$persistentCo5, _options$persistentCo6, _options$persistentCo7, _options$persistentCo8, _options$persistentCo9, _options$persistentCo10, _options$persistentCo11;
32
32
  const args = [...((_options$persistentCo = (_options$persistentCo2 = options.persistentContextOptions) === null || _options$persistentCo2 === void 0 ? void 0 : _options$persistentCo2.args) !== null && _options$persistentCo !== void 0 ? _options$persistentCo : [])];
33
33
  if (browserType.name() === 'chromium') {
34
34
  args.push('--app=data:text/html,', `--window-size=${options.windowSize.width},${options.windowSize.height}`, ...(options.windowPosition ? [`--window-position=${options.windowPosition.x},${options.windowPosition.y}`] : []), '--test-type=');
35
35
  }
36
36
  const context = await browserType.launchPersistentContext((0, _instrumentation.serverSideCallMetadata)(), '', {
37
- channel: !((_options$persistentCo3 = options.persistentContextOptions) !== null && _options$persistentCo3 !== void 0 && _options$persistentCo3.executablePath) ? (0, _registry.findChromiumChannel)(options.sdkLanguage) : undefined,
38
- noDefaultViewport: true,
39
37
  ignoreDefaultArgs: ['--enable-automation'],
40
- colorScheme: 'no-override',
41
- acceptDownloads: (0, _utils.isUnderTest)() ? 'accept' : 'internal-browser-default',
42
38
  ...(options === null || options === void 0 ? void 0 : options.persistentContextOptions),
39
+ channel: (_options$persistentCo3 = (_options$persistentCo4 = options.persistentContextOptions) === null || _options$persistentCo4 === void 0 ? void 0 : _options$persistentCo4.channel) !== null && _options$persistentCo3 !== void 0 ? _options$persistentCo3 : !((_options$persistentCo5 = options.persistentContextOptions) !== null && _options$persistentCo5 !== void 0 && _options$persistentCo5.executablePath) ? (0, _registry.findChromiumChannel)(options.sdkLanguage) : undefined,
40
+ noDefaultViewport: (_options$persistentCo6 = (_options$persistentCo7 = options.persistentContextOptions) === null || _options$persistentCo7 === void 0 ? void 0 : _options$persistentCo7.noDefaultViewport) !== null && _options$persistentCo6 !== void 0 ? _options$persistentCo6 : true,
41
+ acceptDownloads: (_options$persistentCo8 = options === null || options === void 0 || (_options$persistentCo9 = options.persistentContextOptions) === null || _options$persistentCo9 === void 0 ? void 0 : _options$persistentCo9.acceptDownloads) !== null && _options$persistentCo8 !== void 0 ? _options$persistentCo8 : (0, _utils.isUnderTest)() ? 'accept' : 'internal-browser-default',
42
+ colorScheme: (_options$persistentCo10 = options === null || options === void 0 || (_options$persistentCo11 = options.persistentContextOptions) === null || _options$persistentCo11 === void 0 ? void 0 : _options$persistentCo11.colorScheme) !== null && _options$persistentCo10 !== void 0 ? _options$persistentCo10 : 'no-override',
43
43
  args
44
44
  });
45
45
  const [page] = context.pages();