@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
@@ -5,14 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.WKPage = void 0;
7
7
  var _path = _interopRequireDefault(require("path"));
8
- var _os = _interopRequireDefault(require("os"));
9
- var _utilsBundle = require("../../utilsBundle");
10
- var _stackTrace = require("../../utils/stackTrace");
11
8
  var _utils = require("../../utils");
12
- var _hostPlatform = require("../../utils/hostPlatform");
9
+ var _headers = require("../../utils/isomorphic/headers");
10
+ var _crypto = require("../utils/crypto");
11
+ var _eventsHelper = require("../utils/eventsHelper");
12
+ var _hostPlatform = require("../utils/hostPlatform");
13
+ var _stackTrace = require("../../utils/isomorphic/stackTrace");
14
+ var _utilsBundle = require("../../utilsBundle");
15
+ var _browserContext = require("../browserContext");
13
16
  var dialog = _interopRequireWildcard(require("../dialog"));
14
17
  var dom = _interopRequireWildcard(require("../dom"));
15
- var _eventsHelper = require("../../utils/eventsHelper");
18
+ var _errors = require("../errors");
16
19
  var _helper = require("../helper");
17
20
  var network = _interopRequireWildcard(require("../network"));
18
21
  var _page = require("../page");
@@ -23,13 +26,10 @@ var _wkInput = require("./wkInput");
23
26
  var _wkInterceptableRequest = require("./wkInterceptableRequest");
24
27
  var _wkProvisionalPage = require("./wkProvisionalPage");
25
28
  var _wkWorkers = require("./wkWorkers");
26
- var _debugLogger = require("../../utils/debugLogger");
27
- var _manualPromise = require("../../utils/manualPromise");
28
- var _browserContext = require("../browserContext");
29
- var _errors = require("../errors");
29
+ var _debugLogger = require("../utils/debugLogger");
30
30
  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); }
31
- 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; }
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+ 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; }
32
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
33
33
  /**
34
34
  * Copyright 2017 Google Inc. All rights reserved.
35
35
  * Modifications copyright (c) Microsoft Corporation.
@@ -56,7 +56,6 @@ class WKPage {
56
56
  this._session = void 0;
57
57
  this._provisionalPage = null;
58
58
  this._page = void 0;
59
- this._pagePromise = new _manualPromise.ManualPromise();
60
59
  this._pageProxySession = void 0;
61
60
  this._opener = void 0;
62
61
  this._requestIdToRequest = new Map();
@@ -66,7 +65,6 @@ class WKPage {
66
65
  this._sessionListeners = [];
67
66
  this._eventListeners = void 0;
68
67
  this._browserContext = void 0;
69
- this._initializedPage = null;
70
68
  this._firstNonInitialNavigationCommittedPromise = void 0;
71
69
  this._firstNonInitialNavigationCommittedFulfill = () => {};
72
70
  this._firstNonInitialNavigationCommittedReject = e => {};
@@ -103,9 +101,6 @@ class WKPage {
103
101
  };
104
102
  }
105
103
  }
106
- potentiallyUninitializedPage() {
107
- return this._page;
108
- }
109
104
  async _initializePageProxySession() {
110
105
  if (this._page._browserContext.isSettingStorageState()) return;
111
106
  const promises = [this._pageProxySession.send('Dialog.enable'), this._pageProxySession.send('Emulation.setActiveAndFocused', {
@@ -121,7 +116,7 @@ class WKPage {
121
116
  for (const [key, value] of this._browserContext._permissions) promises.push(this._grantPermissions(key, value));
122
117
  }
123
118
  if (this._browserContext._options.recordVideo) {
124
- const outputFile = _path.default.join(this._browserContext._options.recordVideo.dir, (0, _utils.createGuid)() + '.webm');
119
+ const outputFile = _path.default.join(this._browserContext._options.recordVideo.dir, (0, _crypto.createGuid)() + '.webm');
125
120
  promises.push(this._browserContext._ensureVideosPath().then(() => {
126
121
  return this._startVideo({
127
122
  // validateBrowserContextOptions ensures correct video size.
@@ -187,7 +182,7 @@ class WKPage {
187
182
  const contextOptions = this._browserContext._options;
188
183
  if (contextOptions.userAgent) promises.push(this.updateUserAgent());
189
184
  const emulatedMedia = this._page.emulatedMedia();
190
- if (emulatedMedia.media || emulatedMedia.colorScheme || emulatedMedia.reducedMotion || emulatedMedia.forcedColors) promises.push(WKPage._setEmulateMedia(session, emulatedMedia.media, emulatedMedia.colorScheme, emulatedMedia.reducedMotion, emulatedMedia.forcedColors));
185
+ if (emulatedMedia.media || emulatedMedia.colorScheme || emulatedMedia.reducedMotion || emulatedMedia.forcedColors || emulatedMedia.contrast) promises.push(WKPage._setEmulateMedia(session, emulatedMedia.media, emulatedMedia.colorScheme, emulatedMedia.reducedMotion, emulatedMedia.forcedColors, emulatedMedia.contrast));
191
186
  const bootstrapScript = this._calculateBootstrapScript();
192
187
  if (bootstrapScript.length) promises.push(session.send('Page.setBootstrapScript', {
193
188
  source: bootstrapScript
@@ -205,7 +200,7 @@ class WKPage {
205
200
  }
206
201
  promises.push(this.updateEmulateMedia());
207
202
  promises.push(session.send('Network.setExtraHTTPHeaders', {
208
- headers: (0, _utils.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
203
+ headers: (0, _headers.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
209
204
  }));
210
205
  if (contextOptions.offline) promises.push(session.send('Network.setEmulateOfflineState', {
211
206
  offline: true
@@ -247,6 +242,10 @@ class WKPage {
247
242
  setting: 'InputTypeWeekEnabled',
248
243
  value: contextOptions.isMobile
249
244
  }));
245
+ promises.push(session.send('Page.overrideSetting', {
246
+ setting: 'FixedBackgroundsPaintRelativeToDocument',
247
+ value: contextOptions.isMobile
248
+ }));
250
249
  await Promise.all(promises);
251
250
  }
252
251
  _onDidCommitProvisionalTarget(event) {
@@ -299,7 +298,7 @@ class WKPage {
299
298
  this._pageProxySession.dispatchMessage(message);
300
299
  }
301
300
  handleProvisionalLoadFailed(event) {
302
- if (!this._initializedPage) {
301
+ if (!this._page.initializedOrUndefined()) {
303
302
  this._firstNonInitialNavigationCommittedReject(new Error('Initial load failed'));
304
303
  return;
305
304
  }
@@ -309,12 +308,8 @@ class WKPage {
309
308
  this._page._frameManager.frameAbortedNavigation(this._page.mainFrame()._id, errorText, event.loaderId);
310
309
  }
311
310
  handleWindowOpen(event) {
312
- (0, _utils.debugAssert)(!this._nextWindowOpenPopupFeatures);
313
311
  this._nextWindowOpenPopupFeatures = event.windowFeatures;
314
312
  }
315
- async pageOrError() {
316
- return this._pagePromise;
317
- }
318
313
  async _onTargetCreated(event) {
319
314
  const {
320
315
  targetInfo
@@ -334,7 +329,8 @@ class WKPage {
334
329
  });
335
330
  (0, _utils.assert)(targetInfo.type === 'page', 'Only page targets are expected in WebKit, received: ' + targetInfo.type);
336
331
  if (!targetInfo.isProvisional) {
337
- (0, _utils.assert)(!this._initializedPage);
332
+ var _this$_opener;
333
+ (0, _utils.assert)(!this._page.initializedOrUndefined());
338
334
  let pageOrError;
339
335
  try {
340
336
  this._setSession(session);
@@ -361,12 +357,7 @@ class WKPage {
361
357
  // Avoid rejection on disconnect.
362
358
  this._firstNonInitialNavigationCommittedPromise.catch(() => {});
363
359
  }
364
- await this._page.initOpener(this._opener);
365
- // Note: it is important to call |reportAsNew| before resolving pageOrError promise,
366
- // so that anyone who awaits pageOrError got a ready and reported page.
367
- this._initializedPage = pageOrError instanceof _page.Page ? pageOrError : null;
368
- this._page.reportAsNew(pageOrError instanceof _page.Page ? undefined : pageOrError);
369
- this._pagePromise.resolve(pageOrError);
360
+ this._page.reportAsNew((_this$_opener = this._opener) === null || _this$_opener === void 0 ? void 0 : _this$_opener._page, pageOrError instanceof _page.Page ? undefined : pageOrError);
370
361
  } else {
371
362
  (0, _utils.assert)(targetInfo.isProvisional);
372
363
  (0, _utils.assert)(!this._provisionalPage);
@@ -464,12 +455,11 @@ class WKPage {
464
455
  let worldName;
465
456
  if (contextPayload.type === 'normal') worldName = 'main';else if (contextPayload.type === 'user' && contextPayload.name === UTILITY_WORLD_NAME) worldName = 'utility';else return;
466
457
  const context = new dom.FrameExecutionContext(delegate, frame, worldName);
467
- context[contextDelegateSymbol] = delegate;
468
- frame._contextCreated(worldName, context);
458
+ if (worldName) frame._contextCreated(worldName, context);
469
459
  this._contextIdToContext.set(contextPayload.id, context);
470
460
  }
471
461
  async _onBindingCalled(contextId, argument) {
472
- const pageOrError = await this.pageOrError();
462
+ const pageOrError = await this._page.waitForInitializedOrError();
473
463
  if (!(pageOrError instanceof Error)) {
474
464
  const context = this._contextIdToContext.get(contextId);
475
465
  if (context) await this._page._onBindingCalled(argument, context);
@@ -534,7 +524,7 @@ class WKPage {
534
524
  context = [...this._contextIdToContext.values()].find(c => c.frame === this._page.mainFrame());
535
525
  }
536
526
  if (!context) return;
537
- handles.push(context.createHandle(p));
527
+ handles.push((0, _wkExecutionContext.createHandle)(context, p));
538
528
  }
539
529
  this._lastConsoleMessage = {
540
530
  derivedType,
@@ -566,6 +556,8 @@ class WKPage {
566
556
  }
567
557
  _onDialog(event) {
568
558
  this._page.emitOnContext(_browserContext.BrowserContext.Events.Dialog, new dialog.Dialog(this._page, event.type, event.message, async (accept, promptText) => {
559
+ // TODO: this should actually be a RDP event that notifies about a cancelled navigation attempt.
560
+ if (event.type === 'beforeunload' && !accept) this._page._frameManager.frameAbortedNavigation(this._page.mainFrame()._id, 'navigation cancelled by beforeunload dialog');
569
561
  await this._pageProxySession.send('Dialog.handleJavaScriptDialog', {
570
562
  accept,
571
563
  promptText
@@ -576,14 +568,14 @@ class WKPage {
576
568
  let handle;
577
569
  try {
578
570
  const context = await this._page._frameManager.frame(event.frameId)._mainContext();
579
- handle = context.createHandle(event.element).asElement();
571
+ handle = (0, _wkExecutionContext.createHandle)(context, event.element).asElement();
580
572
  } catch (e) {
581
573
  // During async processing, frame/context may go away. We should not throw.
582
574
  return;
583
575
  }
584
576
  await this._page._onFileChooserOpened(handle);
585
577
  }
586
- static async _setEmulateMedia(session, mediaType, colorScheme, reducedMotion, forcedColors) {
578
+ static async _setEmulateMedia(session, mediaType, colorScheme, reducedMotion, forcedColors, contrast) {
587
579
  const promises = [];
588
580
  promises.push(session.send('Page.setEmulatedMedia', {
589
581
  media: mediaType === 'no-override' ? '' : mediaType
@@ -635,11 +627,27 @@ class WKPage {
635
627
  promises.push(session.send('Page.setForcedColors', {
636
628
  forcedColors: forcedColorsWk
637
629
  }));
630
+ let contrastWk = undefined;
631
+ switch (contrast) {
632
+ case 'more':
633
+ contrastWk = 'More';
634
+ break;
635
+ case 'no-preference':
636
+ contrastWk = 'NoPreference';
637
+ break;
638
+ case 'no-override':
639
+ contrastWk = undefined;
640
+ break;
641
+ }
642
+ promises.push(session.send('Page.overrideUserPreference', {
643
+ name: 'PrefersContrast',
644
+ value: contrastWk
645
+ }));
638
646
  await Promise.all(promises);
639
647
  }
640
648
  async updateExtraHTTPHeaders() {
641
649
  await this._updateState('Network.setExtraHTTPHeaders', {
642
- headers: (0, _utils.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
650
+ headers: (0, _headers.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
643
651
  });
644
652
  }
645
653
  _calculateExtraHTTPHeaders() {
@@ -652,7 +660,8 @@ class WKPage {
652
660
  const colorScheme = emulatedMedia.colorScheme;
653
661
  const reducedMotion = emulatedMedia.reducedMotion;
654
662
  const forcedColors = emulatedMedia.forcedColors;
655
- await this._forAllSessions(session => WKPage._setEmulateMedia(session, emulatedMedia.media, colorScheme, reducedMotion, forcedColors));
663
+ const contrast = emulatedMedia.contrast;
664
+ await this._forAllSessions(session => WKPage._setEmulateMedia(session, emulatedMedia.media, colorScheme, reducedMotion, forcedColors, contrast));
656
665
  }
657
666
  async updateEmulatedViewportSize() {
658
667
  this._browserContext._validateEmulatedViewport(this._page.viewportSize());
@@ -686,11 +695,7 @@ class WKPage {
686
695
  })];
687
696
  if (options.isMobile) {
688
697
  const angle = viewportSize.width > viewportSize.height ? 90 : 0;
689
- // Special handling for macOS 12.
690
- const useLegacySetOrientationOverrideMethod = _os.default.platform() === 'darwin' && parseInt(_os.default.release().split('.')[0], 10) <= 21;
691
- if (useLegacySetOrientationOverrideMethod) promises.push(this._session.send('Page.setOrientationOverride', {
692
- angle
693
- }));else promises.push(this._pageProxySession.send('Emulation.setOrientationOverride', {
698
+ promises.push(this._pageProxySession.send('Emulation.setOrientationOverride', {
694
699
  angle
695
700
  }));
696
701
  }
@@ -800,7 +805,7 @@ class WKPage {
800
805
  toolbarHeight: this._toolbarHeight()
801
806
  });
802
807
  this._recordingVideoFile = options.outputFile;
803
- this._browserContext._browser._videoStarted(this._browserContext, screencastId, options.outputFile, this.pageOrError());
808
+ this._browserContext._browser._videoStarted(this._browserContext, screencastId, options.outputFile, this._page.waitForInitializedOrError());
804
809
  }
805
810
  async _stopVideo() {
806
811
  if (!this._recordingVideoFile) return;
@@ -843,9 +848,6 @@ class WKPage {
843
848
  });
844
849
  return nodeInfo.ownerFrameId || null;
845
850
  }
846
- isElementHandle(remoteObject) {
847
- return remoteObject.subtype === 'node';
848
- }
849
851
  async getBoundingBox(handle) {
850
852
  const quads = await this.getContentQuads(handle);
851
853
  if (!quads || !quads.length) return null;
@@ -928,18 +930,6 @@ class WKPage {
928
930
  y: quad[7]
929
931
  }]);
930
932
  }
931
- async setInputFiles(handle, files) {
932
- const objectId = handle._objectId;
933
- const protocolFiles = files.map(file => ({
934
- name: file.name,
935
- type: file.mimeType,
936
- data: file.buffer
937
- }));
938
- await this._session.send('DOM.setInputFiles', {
939
- objectId,
940
- files: protocolFiles
941
- });
942
- }
943
933
  async setInputFilePaths(handle, paths) {
944
934
  const pageProxyId = this._pageProxySession.sessionId;
945
935
  const objectId = handle._objectId;
@@ -954,10 +944,10 @@ class WKPage {
954
944
  async adoptElementHandle(handle, to) {
955
945
  const result = await this._session.sendMayFail('DOM.resolveNode', {
956
946
  objectId: handle._objectId,
957
- executionContextId: to[contextDelegateSymbol]._contextId
947
+ executionContextId: to.delegate._contextId
958
948
  });
959
949
  if (!result || result.object.subtype === 'null') throw new Error(dom.kUnableToAdoptErrorMessage);
960
- return to.createHandle(result.object);
950
+ return (0, _wkExecutionContext.createHandle)(to, result.object);
961
951
  }
962
952
  async getAccessibilityTree(needle) {
963
953
  return (0, _wkAccessibility.getAccessibilityTree)(this._session, needle);
@@ -970,10 +960,35 @@ class WKPage {
970
960
  const context = await parent._mainContext();
971
961
  const result = await this._session.send('DOM.resolveNode', {
972
962
  frameId: frame._id,
973
- executionContextId: context[contextDelegateSymbol]._contextId
963
+ executionContextId: context.delegate._contextId
974
964
  });
975
965
  if (!result || result.object.subtype === 'null') throw new Error('Frame has been detached.');
976
- return context.createHandle(result.object);
966
+ return (0, _wkExecutionContext.createHandle)(context, result.object);
967
+ }
968
+ _maybeCancelCoopNavigationRequest(provisionalPage) {
969
+ const navigationRequest = provisionalPage.coopNavigationRequest();
970
+ for (const [requestId, request] of this._requestIdToRequest) {
971
+ if (request.request === navigationRequest) {
972
+ // Make sure the request completes if the provisional navigation is canceled.
973
+ this._onLoadingFailed(provisionalPage._session, {
974
+ requestId: requestId,
975
+ errorText: 'Provisiolal navigation canceled.',
976
+ timestamp: request._timestamp,
977
+ canceled: true
978
+ });
979
+ return;
980
+ }
981
+ }
982
+ }
983
+ _adoptRequestFromNewProcess(navigationRequest, newSession, newRequestId) {
984
+ for (const [requestId, request] of this._requestIdToRequest) {
985
+ if (request.request === navigationRequest) {
986
+ this._requestIdToRequest.delete(requestId);
987
+ request.adoptRequestFromNewProcess(newSession, newRequestId);
988
+ this._requestIdToRequest.set(newRequestId, request);
989
+ return;
990
+ }
991
+ }
977
992
  }
978
993
  _maybeCancelCoopNavigationRequest(provisionalPage) {
979
994
  const navigationRequest = provisionalPage.coopNavigationRequest();
@@ -1215,5 +1230,4 @@ function isLoadedSecurely(url, timing) {
1215
1230
  if (timing.secureConnectionStart === -1 && timing.connectStart !== -1) return false;
1216
1231
  return true;
1217
1232
  } catch (_) {}
1218
- }
1219
- const contextDelegateSymbol = Symbol('delegate');
1233
+ }
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WKProvisionalPage = void 0;
7
- var _eventsHelper = require("../../utils/eventsHelper");
8
7
  var _utils = require("../../utils");
8
+ var _eventsHelper = require("../utils/eventsHelper");
9
9
  /**
10
10
  * Copyright (c) Microsoft Corporation.
11
11
  *
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WKWorkers = void 0;
7
- var _eventsHelper = require("../../utils/eventsHelper");
7
+ var _eventsHelper = require("../utils/eventsHelper");
8
8
  var _page = require("../page");
9
9
  var _wkConnection = require("./wkConnection");
10
10
  var _wkExecutionContext = require("./wkExecutionContext");
@@ -91,7 +91,7 @@ class WKWorkers {
91
91
  let derivedType = type || '';
92
92
  if (type === 'log') derivedType = level;else if (type === 'timing') derivedType = 'timeEnd';
93
93
  const handles = (parameters || []).map(p => {
94
- return worker._existingExecutionContext.createHandle(p);
94
+ return (0, _wkExecutionContext.createHandle)(worker._existingExecutionContext, p);
95
95
  });
96
96
  const location = {
97
97
  url: url || '',
@@ -15,7 +15,7 @@ var _fs = _interopRequireDefault(require("fs"));
15
15
  var _path = _interopRequireDefault(require("path"));
16
16
  var _manualPromise = require("./manualPromise");
17
17
  var _zipBundle = require("../zipBundle");
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
19
  /**
20
20
  * Copyright (c) Microsoft Corporation.
21
21
  *
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.globToRegex = globToRegex;
7
+ /**
8
+ * Copyright (c) Microsoft Corporation.
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+
23
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping
24
+ const escapedChars = new Set(['$', '^', '+', '.', '*', '(', ')', '|', '\\', '?', '{', '}', '[', ']']);
25
+ function globToRegex(glob) {
26
+ const tokens = ['^'];
27
+ let inGroup = false;
28
+ for (let i = 0; i < glob.length; ++i) {
29
+ const c = glob[i];
30
+ if (c === '\\' && i + 1 < glob.length) {
31
+ const char = glob[++i];
32
+ tokens.push(escapedChars.has(char) ? '\\' + char : char);
33
+ continue;
34
+ }
35
+ if (c === '*') {
36
+ const beforeDeep = glob[i - 1];
37
+ let starCount = 1;
38
+ while (glob[i + 1] === '*') {
39
+ starCount++;
40
+ i++;
41
+ }
42
+ const afterDeep = glob[i + 1];
43
+ const isDeep = starCount > 1 && (beforeDeep === '/' || beforeDeep === undefined) && (afterDeep === '/' || afterDeep === undefined);
44
+ if (isDeep) {
45
+ tokens.push('((?:[^/]*(?:\/|$))*)');
46
+ i++;
47
+ } else {
48
+ tokens.push('([^/]*)');
49
+ }
50
+ continue;
51
+ }
52
+ switch (c) {
53
+ case '?':
54
+ tokens.push('.');
55
+ break;
56
+ case '[':
57
+ tokens.push('[');
58
+ break;
59
+ case ']':
60
+ tokens.push(']');
61
+ break;
62
+ case '{':
63
+ inGroup = true;
64
+ tokens.push('(');
65
+ break;
66
+ case '}':
67
+ inGroup = false;
68
+ tokens.push(')');
69
+ break;
70
+ case ',':
71
+ if (inGroup) {
72
+ tokens.push('|');
73
+ break;
74
+ }
75
+ tokens.push('\\' + c);
76
+ break;
77
+ default:
78
+ tokens.push(escapedChars.has(c) ? '\\' + c : c);
79
+ }
80
+ }
81
+ tokens.push('$');
82
+ return new RegExp(tokens.join(''));
83
+ }
84
+ //# sourceMappingURL=glob.js.map