@checkly/playwright-core 1.48.22 → 1.51.11-beta.2

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 +7888 -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,24 +8,26 @@ exports.createProxyAgent = createProxyAgent;
8
8
  var _http = _interopRequireDefault(require("http"));
9
9
  var _https = _interopRequireDefault(require("https"));
10
10
  var _stream = require("stream");
11
+ var _tls = require("tls");
11
12
  var _url = _interopRequireDefault(require("url"));
12
- var _zlib = _interopRequireDefault(require("zlib"));
13
- var _perf_hooks = require("perf_hooks");
14
- var _timeoutSettings = require("../common/timeoutSettings");
15
- var _userAgent = require("../utils/userAgent");
13
+ var zlib = _interopRequireWildcard(require("zlib"));
14
+ var _timeoutSettings = require("./timeoutSettings");
16
15
  var _utils = require("../utils");
16
+ var _crypto = require("./utils/crypto");
17
+ var _userAgent = require("./utils/userAgent");
17
18
  var _utilsBundle = require("../utilsBundle");
18
19
  var _browserContext = require("./browserContext");
19
20
  var _cookieStore = require("./cookieStore");
20
21
  var _formData = require("./formData");
21
- var _happyEyeballs = require("../utils/happy-eyeballs");
22
22
  var _instrumentation = require("./instrumentation");
23
23
  var _progress = require("./progress");
24
- var _tracing = require("./trace/recorder/tracing");
25
24
  var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
26
- var _tls = require("tls");
25
+ var _happyEyeballs = require("./utils/happyEyeballs");
26
+ var _tracing = require("./trace/recorder/tracing");
27
27
  var _fetch = require("../checkly/fetch");
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
+ 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); }
29
+ 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; }
30
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
31
  /**
30
32
  * Copyright (c) Microsoft Corporation.
31
33
  *
@@ -69,7 +71,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
69
71
  this.fetchLog.delete(fetchUid);
70
72
  }
71
73
  _storeResponseBody(body) {
72
- const uid = (0, _utils.createGuid)();
74
+ const uid = (0, _crypto.createGuid)();
73
75
  this.fetchResponses.set(uid, body);
74
76
  return uid;
75
77
  }
@@ -93,7 +95,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
93
95
  value
94
96
  } of params.headers) setHeader(headers, name, value);
95
97
  }
96
- const requestUrl = new URL(params.url, defaults.baseURL);
98
+ const requestUrl = new URL((0, _utils.constructURLBasedOnBaseURL)(defaults.baseURL, params.url));
97
99
  if (params.encodedParams) {
98
100
  requestUrl.search = params.encodedParams;
99
101
  } else if (params.params) {
@@ -134,7 +136,8 @@ class APIRequestContext extends _instrumentation.SdkObject {
134
136
  });
135
137
  const fetchUid = this._storeResponseBody(fetchResponse.body);
136
138
  this.fetchLog.set(fetchUid, controller.metadata.log);
137
- if (params.failOnStatusCode && (fetchResponse.status < 200 || fetchResponse.status >= 400)) {
139
+ const failOnStatusCode = params.failOnStatusCode !== undefined ? params.failOnStatusCode : !!defaults.failOnStatusCode;
140
+ if (failOnStatusCode && (fetchResponse.status < 200 || fetchResponse.status >= 400)) {
138
141
  let responseText = '';
139
142
  if (fetchResponse.body.byteLength) {
140
143
  let text = fetchResponse.body.toString('utf8');
@@ -184,8 +187,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
184
187
  }
185
188
  }
186
189
  async _sendRequestWithRetries(progress, url, options, postData, maxRetries) {
187
- var _maxRetries;
188
- (_maxRetries = maxRetries) !== null && _maxRetries !== void 0 ? _maxRetries : maxRetries = 0;
190
+ maxRetries !== null && maxRetries !== void 0 ? maxRetries : maxRetries = 0;
189
191
  let backoff = 250;
190
192
  for (let i = 0; i <= maxRetries; i++) {
191
193
  try {
@@ -231,6 +233,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
231
233
  };
232
234
  const checklyTimings = (0, _fetch.initializeTimings)();
233
235
  const startAt = (0, _utils.monotonicTime)();
236
+ let reusedSocketAt;
234
237
  let dnsLookupAt;
235
238
  let tcpConnectionAt;
236
239
  let tlsHandshakeAt;
@@ -241,20 +244,20 @@ class APIRequestContext extends _instrumentation.SdkObject {
241
244
  const listeners = [];
242
245
  const request = requestConstructor(url, requestOptions, async response => {
243
246
  const responseAt = (0, _utils.monotonicTime)();
244
- checklyTimings.values.response = _perf_hooks.performance.now() - checklyTimings.values.startTimeNow;
247
+ checklyTimings.values.response = performance.now() - checklyTimings.values.startTimeNow;
245
248
  const notifyRequestFinished = body => {
246
- var _tlsHandshakeAt;
247
249
  const endAt = (0, _utils.monotonicTime)();
248
250
  // spec: http://www.softwareishard.com/blog/har-12-spec/#timings
251
+ const connectEnd = tlsHandshakeAt !== null && tlsHandshakeAt !== void 0 ? tlsHandshakeAt : tcpConnectionAt;
249
252
  const timings = {
250
253
  send: requestFinishAt - startAt,
251
254
  wait: responseAt - requestFinishAt,
252
255
  receive: endAt - responseAt,
253
256
  dns: dnsLookupAt ? dnsLookupAt - startAt : -1,
254
- connect: ((_tlsHandshakeAt = tlsHandshakeAt) !== null && _tlsHandshakeAt !== void 0 ? _tlsHandshakeAt : tcpConnectionAt) - startAt,
257
+ connect: connectEnd ? connectEnd - startAt : -1,
255
258
  // "If [ssl] is defined then the time is also included in the connect field "
256
259
  ssl: tlsHandshakeAt ? tlsHandshakeAt - tcpConnectionAt : -1,
257
- blocked: -1
260
+ blocked: reusedSocketAt ? reusedSocketAt - startAt : -1
258
261
  };
259
262
  const requestFinishedEvent = {
260
263
  requestEvent,
@@ -355,7 +358,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
355
358
  response.on('aborted', () => reject(new Error('aborted')));
356
359
  const chunks = [];
357
360
  const notifyBodyFinished = () => {
358
- checklyTimings.values.endAt = _perf_hooks.performance.now();
361
+ checklyTimings.values.endAt = performance.now();
359
362
  const body = Buffer.concat(chunks);
360
363
  notifyRequestFinished(body);
361
364
  fulfill({
@@ -367,10 +370,9 @@ class APIRequestContext extends _instrumentation.SdkObject {
367
370
  timings: {
368
371
  //@ts-ignore
369
372
  values: {
370
- ...checklyTimings.values,
371
- ..._happyEyeballs.httpHappyEyeballsTimings.values
373
+ ...checklyTimings.values
372
374
  },
373
- agent: _happyEyeballs.httpHappyEyeballsTimings.agent || checklyTimings.agent
375
+ agent: checklyTimings.agent
374
376
  }
375
377
  });
376
378
  };
@@ -378,17 +380,17 @@ class APIRequestContext extends _instrumentation.SdkObject {
378
380
  let transform;
379
381
  const encoding = response.headers['content-encoding'];
380
382
  if (encoding === 'gzip' || encoding === 'x-gzip') {
381
- transform = _zlib.default.createGunzip({
382
- flush: _zlib.default.constants.Z_SYNC_FLUSH,
383
- finishFlush: _zlib.default.constants.Z_SYNC_FLUSH
383
+ transform = zlib.createGunzip({
384
+ flush: zlib.constants.Z_SYNC_FLUSH,
385
+ finishFlush: zlib.constants.Z_SYNC_FLUSH
384
386
  });
385
387
  } else if (encoding === 'br') {
386
- transform = _zlib.default.createBrotliDecompress({
387
- flush: _zlib.default.constants.BROTLI_OPERATION_FLUSH,
388
- finishFlush: _zlib.default.constants.BROTLI_OPERATION_FLUSH
388
+ transform = zlib.createBrotliDecompress({
389
+ flush: zlib.constants.BROTLI_OPERATION_FLUSH,
390
+ finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH
389
391
  });
390
392
  } else if (encoding === 'deflate') {
391
- transform = _zlib.default.createInflate();
393
+ transform = zlib.createInflate();
392
394
  }
393
395
  if (transform) {
394
396
  // Brotli and deflate decompressors throw if the input stream is empty.
@@ -411,6 +413,11 @@ class APIRequestContext extends _instrumentation.SdkObject {
411
413
  }));
412
414
  request.on('close', () => _utils.eventsHelper.removeEventListeners(listeners));
413
415
  request.on('socket', socket => {
416
+ if (request.reusedSocket) {
417
+ reusedSocketAt = (0, _utils.monotonicTime)();
418
+ return;
419
+ }
420
+
414
421
  // happy eyeballs don't emit lookup and connect events, so we use our custom ones
415
422
  const happyEyeBallsTimings = (0, _happyEyeballs.timingForSocket)(socket);
416
423
  dnsLookupAt = happyEyeBallsTimings.dnsLookupAt;
@@ -507,6 +514,7 @@ class BrowserContextAPIRequestContext extends APIRequestContext {
507
514
  return {
508
515
  userAgent: this._context._options.userAgent || this._context._browser.userAgent(),
509
516
  extraHTTPHeaders: this._context._options.extraHTTPHeaders,
517
+ failOnStatusCode: undefined,
510
518
  httpCredentials: this._context._options.httpCredentials,
511
519
  proxy: this._context._options.proxy || this._context._browser.options.proxy,
512
520
  timeoutSettings: this._context._timeoutSettings,
@@ -521,8 +529,8 @@ class BrowserContextAPIRequestContext extends APIRequestContext {
521
529
  async _cookies(url) {
522
530
  return await this._context.cookies(url.toString());
523
531
  }
524
- async storageState() {
525
- return this._context.storageState();
532
+ async storageState(indexedDB) {
533
+ return this._context.storageState(indexedDB);
526
534
  }
527
535
  }
528
536
  exports.BrowserContextAPIRequestContext = BrowserContextAPIRequestContext;
@@ -544,7 +552,11 @@ class GlobalAPIRequestContext extends APIRequestContext {
544
552
  if (options.clientCertificates) throw new Error('Cannot specify both proxy and clientCertificates');
545
553
  }
546
554
  if (options.storageState) {
547
- this._origins = options.storageState.origins;
555
+ var _options$storageState;
556
+ this._origins = (_options$storageState = options.storageState.origins) === null || _options$storageState === void 0 ? void 0 : _options$storageState.map(origin => ({
557
+ indexedDB: [],
558
+ ...origin
559
+ }));
548
560
  this._cookieStore.addCookies(options.storageState.cookies || []);
549
561
  }
550
562
  (0, _browserContext.verifyClientCertificates)(options.clientCertificates);
@@ -552,6 +564,7 @@ class GlobalAPIRequestContext extends APIRequestContext {
552
564
  baseURL: options.baseURL,
553
565
  userAgent: options.userAgent || (0, _userAgent.getUserAgent)(),
554
566
  extraHTTPHeaders: options.extraHTTPHeaders,
567
+ failOnStatusCode: !!options.failOnStatusCode,
555
568
  ignoreHTTPSErrors: !!options.ignoreHTTPSErrors,
556
569
  httpCredentials: options.httpCredentials,
557
570
  clientCertificates: options.clientCertificates,
@@ -578,10 +591,13 @@ class GlobalAPIRequestContext extends APIRequestContext {
578
591
  async _cookies(url) {
579
592
  return this._cookieStore.cookies(url);
580
593
  }
581
- async storageState() {
594
+ async storageState(indexedDB = false) {
582
595
  return {
583
596
  cookies: this._cookieStore.allCookies(),
584
- origins: this._origins || []
597
+ origins: (this._origins || []).map(origin => ({
598
+ ...origin,
599
+ indexedDB: indexedDB ? origin.indexedDB : []
600
+ }))
585
601
  };
586
602
  }
587
603
  }
@@ -3,12 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.fileUploadSizeLimit = void 0;
6
7
  exports.prepareFilesForUpload = prepareFilesForUpload;
7
8
  var _fs = _interopRequireDefault(require("fs"));
8
9
  var _path = _interopRequireDefault(require("path"));
9
- var _utils = require("../utils");
10
+ var _assert = require("../utils/isomorphic/assert");
10
11
  var _utilsBundle = require("../utilsBundle");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
13
  /**
13
14
  * Copyright (c) Microsoft Corporation.
14
15
  *
@@ -25,9 +26,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
25
26
  * limitations under the License.
26
27
  */
27
28
 
29
+ // Keep in sync with the client.
30
+ const fileUploadSizeLimit = exports.fileUploadSizeLimit = 50 * 1024 * 1024;
28
31
  async function filesExceedUploadLimit(files) {
29
32
  const sizes = await Promise.all(files.map(async file => (await _fs.default.promises.stat(file)).size));
30
- return sizes.reduce((total, size) => total + size, 0) >= _utils.fileUploadSizeLimit;
33
+ return sizes.reduce((total, size) => total + size, 0) >= fileUploadSizeLimit;
31
34
  }
32
35
  async function prepareFilesForUpload(frame, params) {
33
36
  var _fileBuffers;
@@ -44,7 +47,7 @@ async function prepareFilesForUpload(frame, params) {
44
47
  if (streams) localPaths = streams.map(c => c.path());
45
48
  if (directoryStream) localDirectory = directoryStream.path();
46
49
  if (localPaths) {
47
- for (const p of localPaths) (0, _utils.assert)(_path.default.isAbsolute(p) && _path.default.resolve(p) === p, 'Paths provided to localPaths must be absolute and fully resolved.');
50
+ for (const p of localPaths) (0, _assert.assert)(_path.default.isAbsolute(p) && _path.default.resolve(p) === p, 'Paths provided to localPaths must be absolute and fully resolved.');
48
51
  }
49
52
  let fileBuffers = payloads;
50
53
  if (!frame._page._browserContext._browser._isCollocatedWithServer) {
@@ -4,16 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.FFBrowserContext = exports.FFBrowser = void 0;
7
- var _errors = require("../errors");
8
7
  var _utils = require("../../utils");
9
8
  var _browser = require("../browser");
10
9
  var _browserContext = require("../browserContext");
10
+ var _errors = require("../errors");
11
11
  var network = _interopRequireWildcard(require("../network"));
12
12
  var _page = require("../page");
13
13
  var _ffConnection = require("./ffConnection");
14
14
  var _ffPage = require("./ffPage");
15
15
  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); }
16
- 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; }
16
+ 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; }
17
17
  /**
18
18
  * Copyright 2018 Google Inc. All rights reserved.
19
19
  * Modifications copyright (c) Microsoft Corporation.
@@ -132,13 +132,13 @@ class FFBrowser extends _browser.Browser {
132
132
 
133
133
  // Abort the navigation that turned into download.
134
134
  ffPage._page._frameManager.frameAbortedNavigation(payload.frameId, 'Download is starting');
135
- let originPage = ffPage._initializedPage;
135
+ let originPage = ffPage._page.initializedOrUndefined();
136
136
  // If it's a new window download, report it on the opener page.
137
137
  if (!originPage) {
138
138
  // Resume the page creation with an error. The page will automatically close right
139
139
  // after the download begins.
140
140
  ffPage._markAsError(new Error('Starting new page download'));
141
- if (ffPage._opener) originPage = ffPage._opener._initializedPage;
141
+ if (ffPage._opener) originPage = ffPage._opener._page.initializedOrUndefined();
142
142
  }
143
143
  if (!originPage) return;
144
144
  this._downloadCreated(originPage, payload.uuid, payload.url, payload.suggestedFileName);
@@ -244,6 +244,12 @@ class FFBrowserContext extends _browserContext.BrowserContext {
244
244
  forcedColors: this._options.forcedColors !== undefined ? this._options.forcedColors : 'none'
245
245
  }));
246
246
  }
247
+ if (this._options.contrast !== 'no-override') {
248
+ promises.push(this._browser.session.send('Browser.setContrast', {
249
+ browserContextId,
250
+ contrast: this._options.contrast !== undefined ? this._options.contrast : 'no-preference'
251
+ }));
252
+ }
247
253
  if (this._options.recordVideo) {
248
254
  promises.push(this._ensureVideosPath().then(() => {
249
255
  return this._browser.session.send('Browser.setVideoRecordingOptions', {
@@ -268,10 +274,10 @@ class FFBrowserContext extends _browserContext.BrowserContext {
268
274
  _ffPages() {
269
275
  return Array.from(this._browser._ffPages.values()).filter(ffPage => ffPage._browserContext === this);
270
276
  }
271
- pages() {
272
- return this._ffPages().map(ffPage => ffPage._initializedPage).filter(pageOrNull => !!pageOrNull);
277
+ possiblyUninitializedPages() {
278
+ return this._ffPages().map(ffPage => ffPage._page);
273
279
  }
274
- async newPageDelegate() {
280
+ async doCreateNewPage() {
275
281
  (0, _browserContext.assertBrowserContextIsNotOwned)(this);
276
282
  const {
277
283
  targetId
@@ -281,7 +287,7 @@ class FFBrowserContext extends _browserContext.BrowserContext {
281
287
  if (e.message.includes('Failed to override timezone')) throw new Error(`Invalid timezone ID: ${this._options.timezoneId}`);
282
288
  throw e;
283
289
  });
284
- return this._browser._ffPages.get(targetId);
290
+ return this._browser._ffPages.get(targetId)._page;
285
291
  }
286
292
  async doGetCookies(urls) {
287
293
  const {
@@ -457,4 +463,6 @@ function toJugglerProxyOptions(proxy) {
457
463
 
458
464
  // Prefs for quick fixes that didn't make it to the build.
459
465
  // Should all be moved to `playwright.cfg`.
460
- const kBandaidFirefoxUserPrefs = {};
466
+ const kBandaidFirefoxUserPrefs = {
467
+ 'dom.fetchKeepalive.enabled': false
468
+ };
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.kBrowserCloseMessageId = exports.FFSession = exports.FFConnection = exports.ConnectionEvents = void 0;
7
7
  var _events = require("events");
8
- var _debugLogger = require("../../utils/debugLogger");
8
+ var _debugLogger = require("../utils/debugLogger");
9
9
  var _helper = require("../helper");
10
10
  var _protocolError = require("../protocolError");
11
11
  /**
@@ -4,12 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.FFExecutionContext = void 0;
7
- var js = _interopRequireWildcard(require("../javascript"));
8
- var _stackTrace = require("../../utils/stackTrace");
7
+ exports.createHandle = createHandle;
8
+ var _assert = require("../../utils/isomorphic/assert");
9
+ var _stackTrace = require("../../utils/isomorphic/stackTrace");
9
10
  var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
11
+ var js = _interopRequireWildcard(require("../javascript"));
12
+ var dom = _interopRequireWildcard(require("../dom"));
10
13
  var _protocolError = require("../protocolError");
11
14
  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; }
15
+ 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
16
  /**
14
17
  * Copyright 2019 Google Inc. All rights reserved.
15
18
  * Modifications copyright (c) Microsoft Corporation.
@@ -43,28 +46,16 @@ class FFExecutionContext {
43
46
  checkException(payload.exceptionDetails);
44
47
  return payload.result.value;
45
48
  }
46
- async rawEvaluateHandle(expression) {
49
+ async rawEvaluateHandle(context, expression) {
47
50
  const payload = await this._session.send('Runtime.evaluate', {
48
51
  expression,
49
52
  returnByValue: false,
50
53
  executionContextId: this._executionContextId
51
54
  }).catch(rewriteError);
52
55
  checkException(payload.exceptionDetails);
53
- return payload.result.objectId;
54
- }
55
- rawCallFunctionNoReply(func, ...args) {
56
- this._session.send('Runtime.callFunction', {
57
- functionDeclaration: func.toString(),
58
- args: args.map(a => a instanceof js.JSHandle ? {
59
- objectId: a._objectId
60
- } : {
61
- value: a
62
- }),
63
- returnByValue: true,
64
- executionContextId: this._executionContextId
65
- }).catch(() => {});
56
+ return createHandle(context, payload.result);
66
57
  }
67
- async evaluateWithArguments(expression, returnByValue, utilityScript, values, objectIds) {
58
+ async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
68
59
  const payload = await this._session.send('Runtime.callFunction', {
69
60
  functionDeclaration: expression,
70
61
  args: [{
@@ -72,8 +63,8 @@ class FFExecutionContext {
72
63
  value: undefined
73
64
  }, ...values.map(value => ({
74
65
  value
75
- })), ...objectIds.map(objectId => ({
76
- objectId,
66
+ })), ...handles.map(handle => ({
67
+ objectId: handle._objectId,
77
68
  value: undefined
78
69
  }))],
79
70
  returnByValue,
@@ -81,24 +72,22 @@ class FFExecutionContext {
81
72
  }).catch(rewriteError);
82
73
  checkException(payload.exceptionDetails);
83
74
  if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(payload.result.value);
84
- return utilityScript._context.createHandle(payload.result);
75
+ return createHandle(utilityScript._context, payload.result);
85
76
  }
86
- async getProperties(context, objectId) {
77
+ async getProperties(object) {
87
78
  const response = await this._session.send('Runtime.getObjectProperties', {
88
79
  executionContextId: this._executionContextId,
89
- objectId
80
+ objectId: object._objectId
90
81
  });
91
82
  const result = new Map();
92
- for (const property of response.properties) result.set(property.name, context.createHandle(property.value));
83
+ for (const property of response.properties) result.set(property.name, createHandle(object._context, property.value));
93
84
  return result;
94
85
  }
95
- createHandle(context, remoteObject) {
96
- return new js.JSHandle(context, remoteObject.subtype || remoteObject.type || '', renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
97
- }
98
- async releaseHandle(objectId) {
86
+ async releaseHandle(handle) {
87
+ if (!handle._objectId) return;
99
88
  await this._session.send('Runtime.disposeObject', {
100
89
  executionContextId: this._executionContextId,
101
- objectId
90
+ objectId: handle._objectId
102
91
  });
103
92
  }
104
93
  }
@@ -132,4 +121,11 @@ function renderPreview(object) {
132
121
  if (object.subtype === 'weakset') return 'WeakSet';
133
122
  if (object.subtype) return object.subtype[0].toUpperCase() + object.subtype.slice(1);
134
123
  if ('value' in object) return String(object.value);
124
+ }
125
+ function createHandle(context, remoteObject) {
126
+ if (remoteObject.subtype === 'node') {
127
+ (0, _assert.assert)(context instanceof dom.FrameExecutionContext);
128
+ return new dom.ElementHandle(context, remoteObject.objectId);
129
+ }
130
+ return new js.JSHandle(context, remoteObject.subtype || remoteObject.type || '', renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
135
131
  }
@@ -47,12 +47,18 @@ class RawKeyboardImpl {
47
47
  this._client = void 0;
48
48
  this._client = client;
49
49
  }
50
- async keydown(modifiers, code, keyCode, keyCodeWithoutLocation, key, location, autoRepeat, text) {
50
+ async keydown(modifiers, keyName, description, autoRepeat) {
51
+ let text = description.text;
51
52
  // Firefox will figure out Enter by itself
52
53
  if (text === '\r') text = '';
54
+ const {
55
+ code,
56
+ key,
57
+ location
58
+ } = description;
53
59
  await this._client.send('Page.dispatchKeyEvent', {
54
60
  type: 'keydown',
55
- keyCode: keyCodeWithoutLocation,
61
+ keyCode: description.keyCodeWithoutLocation,
56
62
  code,
57
63
  key,
58
64
  repeat: autoRepeat,
@@ -60,11 +66,16 @@ class RawKeyboardImpl {
60
66
  text
61
67
  });
62
68
  }
63
- async keyup(modifiers, code, keyCode, keyCodeWithoutLocation, key, location) {
69
+ async keyup(modifiers, keyName, description) {
70
+ const {
71
+ code,
72
+ key,
73
+ location
74
+ } = description;
64
75
  await this._client.send('Page.dispatchKeyEvent', {
65
76
  type: 'keyup',
66
77
  key,
67
- keyCode: keyCodeWithoutLocation,
78
+ keyCode: description.keyCodeWithoutLocation,
68
79
  code,
69
80
  location,
70
81
  repeat: false
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.FFNetworkManager = void 0;
7
- var _eventsHelper = require("../../utils/eventsHelper");
7
+ var _eventsHelper = require("../utils/eventsHelper");
8
8
  var network = _interopRequireWildcard(require("../network"));
9
9
  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); }
10
- 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; }
10
+ 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; }
11
11
  /**
12
12
  * Copyright 2019 Google Inc. All rights reserved.
13
13
  * Modifications copyright (c) Microsoft Corporation.
@@ -161,7 +161,7 @@ const causeToResourceType = {
161
161
  TYPE_XSLT: 'other',
162
162
  TYPE_BEACON: 'other',
163
163
  TYPE_FETCH: 'fetch',
164
- TYPE_IMAGESET: 'images',
164
+ TYPE_IMAGESET: 'image',
165
165
  TYPE_WEB_MANIFEST: 'manifest'
166
166
  };
167
167
  const internalCauseToResourceType = {