patchright-core 1.51.3 → 1.52.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 (303) hide show
  1. package/browsers.json +15 -13
  2. package/lib/androidServerImpl.js +42 -48
  3. package/lib/browserServerImpl.js +54 -67
  4. package/lib/cli/driver.js +71 -69
  5. package/lib/cli/program.js +312 -328
  6. package/lib/cli/programWithTestStub.js +51 -45
  7. package/lib/client/accessibility.js +31 -32
  8. package/lib/client/android.js +141 -228
  9. package/lib/client/api.js +135 -283
  10. package/lib/client/artifact.js +39 -36
  11. package/lib/client/browser.js +57 -61
  12. package/lib/client/browserContext.js +297 -326
  13. package/lib/client/browserType.js +92 -106
  14. package/lib/client/cdpSession.js +29 -31
  15. package/lib/client/channelOwner.js +82 -95
  16. package/lib/client/clientHelper.js +46 -38
  17. package/lib/client/clientInstrumentation.js +40 -37
  18. package/lib/client/clientStackTrace.js +41 -37
  19. package/lib/client/clock.js +36 -36
  20. package/lib/client/connection.js +190 -212
  21. package/lib/client/consoleMessage.js +31 -28
  22. package/lib/client/coverage.js +25 -22
  23. package/lib/client/dialog.js +30 -31
  24. package/lib/client/download.js +25 -25
  25. package/lib/client/electron.js +73 -75
  26. package/lib/client/elementHandle.js +111 -147
  27. package/lib/client/errors.js +53 -53
  28. package/lib/client/eventEmitter.js +124 -121
  29. package/lib/client/events.js +72 -68
  30. package/lib/client/fetch.js +135 -158
  31. package/lib/client/fileChooser.js +25 -24
  32. package/lib/client/fileUtils.js +31 -28
  33. package/lib/client/frame.js +187 -306
  34. package/lib/client/harRouter.js +42 -52
  35. package/lib/client/input.js +40 -69
  36. package/lib/client/jsHandle.js +56 -71
  37. package/lib/client/jsonPipe.js +27 -23
  38. package/lib/client/localUtils.js +29 -28
  39. package/lib/client/locator.js +161 -245
  40. package/lib/client/network.js +277 -295
  41. package/lib/client/page.js +270 -318
  42. package/lib/client/platform.js +46 -43
  43. package/lib/client/playwright.js +51 -66
  44. package/lib/client/selectors.js +48 -46
  45. package/lib/client/stream.js +29 -25
  46. package/lib/client/timeoutSettings.js +49 -39
  47. package/lib/client/tracing.js +48 -84
  48. package/lib/client/types.js +26 -22
  49. package/lib/client/video.js +35 -27
  50. package/lib/client/waiter.js +69 -88
  51. package/lib/client/webError.js +25 -23
  52. package/lib/client/webSocket.js +61 -56
  53. package/lib/client/worker.js +48 -58
  54. package/lib/client/writableStream.js +27 -23
  55. package/lib/generated/clockSource.js +26 -5
  56. package/lib/generated/consoleApiSource.js +26 -5
  57. package/lib/generated/injectedScriptSource.js +26 -5
  58. package/lib/generated/pollingRecorderSource.js +26 -5
  59. package/lib/generated/utilityScriptSource.js +26 -5
  60. package/lib/generated/webSocketMockSource.js +371 -4
  61. package/lib/inProcessFactory.js +53 -53
  62. package/lib/inprocess.js +2 -19
  63. package/lib/outofprocess.js +53 -46
  64. package/lib/protocol/debug.js +209 -25
  65. package/lib/protocol/serializers.js +153 -134
  66. package/lib/protocol/validator.js +2714 -2714
  67. package/lib/protocol/validatorPrimitives.js +114 -73
  68. package/lib/remote/playwrightConnection.js +140 -157
  69. package/lib/remote/playwrightServer.js +99 -84
  70. package/lib/server/accessibility.js +44 -37
  71. package/lib/server/android/android.js +216 -209
  72. package/lib/server/android/backendAdb.js +89 -82
  73. package/lib/server/artifact.js +78 -55
  74. package/lib/server/bidi/bidiBrowser.js +221 -155
  75. package/lib/server/bidi/bidiChromium.js +106 -79
  76. package/lib/server/bidi/bidiConnection.js +66 -83
  77. package/lib/server/bidi/bidiExecutionContext.js +128 -113
  78. package/lib/server/bidi/bidiFirefox.js +76 -69
  79. package/lib/server/bidi/bidiInput.js +86 -97
  80. package/lib/server/bidi/bidiNetworkManager.js +137 -154
  81. package/lib/server/bidi/bidiOverCdp.js +57 -58
  82. package/lib/server/bidi/bidiPage.js +247 -219
  83. package/lib/server/bidi/bidiPdf.js +52 -86
  84. package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
  85. package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
  86. package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
  87. package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
  88. package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
  89. package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
  90. package/lib/server/browser.js +76 -84
  91. package/lib/server/browserContext.js +321 -346
  92. package/lib/server/browserType.js +169 -182
  93. package/lib/server/callLog.js +47 -44
  94. package/lib/server/chromium/chromium.js +212 -190
  95. package/lib/server/chromium/chromiumSwitches.js +86 -64
  96. package/lib/server/chromium/crAccessibility.js +157 -131
  97. package/lib/server/chromium/crBrowser.js +253 -273
  98. package/lib/server/chromium/crConnection.js +91 -116
  99. package/lib/server/chromium/crCoverage.js +113 -127
  100. package/lib/server/chromium/crDevTools.js +59 -51
  101. package/lib/server/chromium/crDragDrop.js +62 -79
  102. package/lib/server/chromium/crExecutionContext.js +88 -83
  103. package/lib/server/chromium/crInput.js +97 -95
  104. package/lib/server/chromium/crNetworkManager.js +284 -404
  105. package/lib/server/chromium/crPage.js +522 -608
  106. package/lib/server/chromium/crPdf.js +54 -86
  107. package/lib/server/chromium/crProtocolHelper.js +92 -80
  108. package/lib/server/chromium/crServiceWorker.js +82 -67
  109. package/lib/server/chromium/defaultFontFamilies.js +152 -135
  110. package/lib/server/chromium/protocol.d.js +16 -0
  111. package/lib/server/chromium/videoRecorder.js +65 -99
  112. package/lib/server/clock.js +62 -50
  113. package/lib/server/codegen/csharp.js +185 -160
  114. package/lib/server/codegen/java.js +155 -128
  115. package/lib/server/codegen/javascript.js +163 -148
  116. package/lib/server/codegen/jsonl.js +32 -28
  117. package/lib/server/codegen/language.js +75 -52
  118. package/lib/server/codegen/languages.js +65 -27
  119. package/lib/server/codegen/python.js +140 -125
  120. package/lib/server/codegen/types.js +15 -4
  121. package/lib/server/console.js +28 -32
  122. package/lib/server/cookieStore.js +105 -86
  123. package/lib/server/debugController.js +97 -124
  124. package/lib/server/debugger.js +82 -78
  125. package/lib/server/deviceDescriptors.js +37 -24
  126. package/lib/server/deviceDescriptorsSource.json +50 -50
  127. package/lib/server/dialog.js +36 -35
  128. package/lib/server/dispatchers/androidDispatcher.js +196 -107
  129. package/lib/server/dispatchers/artifactDispatcher.js +62 -62
  130. package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
  131. package/lib/server/dispatchers/browserDispatcher.js +78 -97
  132. package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
  133. package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
  134. package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
  135. package/lib/server/dispatchers/dialogDispatcher.js +30 -27
  136. package/lib/server/dispatchers/dispatcher.js +169 -220
  137. package/lib/server/dispatchers/electronDispatcher.js +54 -57
  138. package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
  139. package/lib/server/dispatchers/frameDispatcher.js +99 -163
  140. package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
  141. package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
  142. package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
  143. package/lib/server/dispatchers/networkDispatchers.js +90 -107
  144. package/lib/server/dispatchers/pageDispatcher.js +128 -169
  145. package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
  146. package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
  147. package/lib/server/dispatchers/streamDispatcher.js +42 -45
  148. package/lib/server/dispatchers/tracingDispatcher.js +36 -41
  149. package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
  150. package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
  151. package/lib/server/dom.js +413 -443
  152. package/lib/server/download.js +45 -35
  153. package/lib/server/electron/electron.js +156 -176
  154. package/lib/server/electron/loader.js +8 -36
  155. package/lib/server/errors.js +47 -46
  156. package/lib/server/fetch.js +289 -323
  157. package/lib/server/fileChooser.js +25 -24
  158. package/lib/server/fileUploadUtils.js +65 -59
  159. package/lib/server/firefox/ffAccessibility.js +153 -131
  160. package/lib/server/firefox/ffBrowser.js +213 -277
  161. package/lib/server/firefox/ffConnection.js +63 -84
  162. package/lib/server/firefox/ffExecutionContext.js +91 -73
  163. package/lib/server/firefox/ffInput.js +67 -69
  164. package/lib/server/firefox/ffNetworkManager.js +131 -110
  165. package/lib/server/firefox/ffPage.js +236 -273
  166. package/lib/server/firefox/firefox.js +76 -67
  167. package/lib/server/firefox/protocol.d.js +16 -0
  168. package/lib/server/formData.js +107 -35
  169. package/lib/server/frameSelectors.js +221 -112
  170. package/lib/server/frames.js +731 -894
  171. package/lib/server/har/harRecorder.js +85 -77
  172. package/lib/server/har/harTracer.js +287 -222
  173. package/lib/server/harBackend.js +80 -80
  174. package/lib/server/helper.js +56 -59
  175. package/lib/server/index.js +59 -99
  176. package/lib/server/input.js +134 -163
  177. package/lib/server/instrumentation.js +49 -44
  178. package/lib/server/javascript.js +143 -134
  179. package/lib/server/launchApp.js +92 -73
  180. package/lib/server/localUtils.js +130 -122
  181. package/lib/server/macEditingCommands.js +141 -137
  182. package/lib/server/network.js +262 -296
  183. package/lib/server/page.js +326 -423
  184. package/lib/server/pageBinding.js +88 -0
  185. package/lib/server/pipeTransport.js +49 -45
  186. package/lib/server/playwright.js +60 -67
  187. package/lib/server/progress.js +56 -51
  188. package/lib/server/protocolError.js +34 -31
  189. package/lib/server/recorder/chat.js +70 -86
  190. package/lib/server/recorder/contextRecorder.js +134 -138
  191. package/lib/server/recorder/recorderApp.js +127 -136
  192. package/lib/server/recorder/recorderCollection.js +56 -44
  193. package/lib/server/recorder/recorderFrontend.js +15 -4
  194. package/lib/server/recorder/recorderRunner.js +79 -103
  195. package/lib/server/recorder/recorderUtils.js +56 -45
  196. package/lib/server/recorder/throttledFile.js +42 -30
  197. package/lib/server/recorder.js +177 -186
  198. package/lib/server/registry/browserFetcher.js +106 -101
  199. package/lib/server/registry/dependencies.js +245 -196
  200. package/lib/server/registry/index.js +904 -792
  201. package/lib/server/registry/nativeDeps.js +1073 -464
  202. package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
  203. package/lib/server/screenshotter.js +166 -182
  204. package/lib/server/selectors.js +85 -46
  205. package/lib/server/socksClientCertificatesInterceptor.js +166 -185
  206. package/lib/server/socksInterceptor.js +62 -70
  207. package/lib/server/storageScript.js +94 -100
  208. package/lib/server/timeoutSettings.js +58 -43
  209. package/lib/server/trace/recorder/snapshotter.js +70 -89
  210. package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
  211. package/lib/server/trace/recorder/tracing.js +321 -333
  212. package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
  213. package/lib/server/trace/viewer/traceViewer.js +168 -146
  214. package/lib/server/transport.js +124 -133
  215. package/lib/server/types.js +26 -22
  216. package/lib/server/usKeyboardLayout.js +135 -545
  217. package/lib/server/utils/ascii.js +39 -26
  218. package/lib/server/utils/comparators.js +105 -103
  219. package/lib/server/utils/crypto.js +157 -112
  220. package/lib/server/utils/debug.js +37 -28
  221. package/lib/server/utils/debugLogger.js +69 -48
  222. package/lib/server/utils/env.js +52 -37
  223. package/lib/server/utils/eventsHelper.js +29 -28
  224. package/lib/server/utils/expectUtils.js +31 -26
  225. package/lib/server/utils/fileUtils.js +123 -136
  226. package/lib/server/utils/happyEyeballs.js +138 -123
  227. package/lib/server/utils/hostPlatform.js +84 -120
  228. package/lib/server/utils/httpServer.js +106 -121
  229. package/lib/server/utils/image_tools/colorUtils.js +42 -51
  230. package/lib/server/utils/image_tools/compare.js +44 -43
  231. package/lib/server/utils/image_tools/imageChannel.js +38 -30
  232. package/lib/server/utils/image_tools/stats.js +40 -40
  233. package/lib/server/utils/linuxUtils.js +50 -37
  234. package/lib/server/utils/network.js +143 -86
  235. package/lib/server/utils/nodePlatform.js +87 -79
  236. package/lib/server/utils/pipeTransport.js +44 -42
  237. package/lib/server/utils/processLauncher.js +111 -121
  238. package/lib/server/utils/profiler.js +52 -39
  239. package/lib/server/utils/socksProxy.js +280 -339
  240. package/lib/server/utils/spawnAsync.js +37 -41
  241. package/lib/server/utils/task.js +31 -38
  242. package/lib/server/utils/userAgent.js +73 -66
  243. package/lib/server/utils/wsServer.js +73 -69
  244. package/lib/server/utils/zipFile.js +36 -37
  245. package/lib/server/utils/zones.js +37 -34
  246. package/lib/server/webkit/protocol.d.js +16 -0
  247. package/lib/server/webkit/webkit.js +76 -63
  248. package/lib/server/webkit/wkAccessibility.js +161 -118
  249. package/lib/server/webkit/wkBrowser.js +159 -176
  250. package/lib/server/webkit/wkConnection.js +59 -83
  251. package/lib/server/webkit/wkExecutionContext.js +84 -70
  252. package/lib/server/webkit/wkInput.js +82 -80
  253. package/lib/server/webkit/wkInterceptableRequest.js +102 -95
  254. package/lib/server/webkit/wkPage.js +525 -619
  255. package/lib/server/webkit/wkProvisionalPage.js +45 -56
  256. package/lib/server/webkit/wkWorkers.js +77 -77
  257. package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
  258. package/lib/utils/isomorphic/assert.js +28 -22
  259. package/lib/utils/isomorphic/builtins.js +86 -0
  260. package/lib/utils/isomorphic/colors.js +66 -59
  261. package/lib/utils/isomorphic/cssParser.js +121 -125
  262. package/lib/utils/isomorphic/cssTokenizer.js +436 -364
  263. package/lib/utils/isomorphic/headers.js +38 -37
  264. package/lib/utils/isomorphic/locatorGenerators.js +340 -357
  265. package/lib/utils/isomorphic/locatorParser.js +96 -105
  266. package/lib/utils/isomorphic/locatorUtils.js +63 -44
  267. package/lib/utils/isomorphic/manualPromise.js +47 -39
  268. package/lib/utils/isomorphic/mimeType.js +448 -25
  269. package/lib/utils/isomorphic/multimap.js +35 -27
  270. package/lib/utils/isomorphic/rtti.js +35 -33
  271. package/lib/utils/isomorphic/selectorParser.js +183 -193
  272. package/lib/utils/isomorphic/semaphore.js +27 -24
  273. package/lib/utils/isomorphic/stackTrace.js +87 -98
  274. package/lib/utils/isomorphic/stringUtils.js +113 -106
  275. package/lib/utils/isomorphic/time.js +41 -22
  276. package/lib/utils/isomorphic/timeoutRunner.js +55 -54
  277. package/lib/utils/isomorphic/traceUtils.js +38 -41
  278. package/lib/utils/isomorphic/types.js +15 -4
  279. package/lib/utils/isomorphic/urlMatch.js +112 -67
  280. package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
  281. package/lib/utils.js +97 -443
  282. package/lib/utilsBundle.js +101 -52
  283. package/lib/vite/htmlReport/index.html +21 -15
  284. package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-CXVeovup.js} +1 -1
  285. package/lib/vite/recorder/assets/index-BsWQsSGl.js +184 -0
  286. package/lib/vite/recorder/index.html +1 -1
  287. package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-_GLjJL-7.js} +1 -1
  288. package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +265 -0
  289. package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
  290. package/lib/vite/traceViewer/index.cFZzK9RN.js +2 -0
  291. package/lib/vite/traceViewer/index.html +3 -3
  292. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  293. package/lib/vite/traceViewer/uiMode.XVPIqBeS.js +5 -0
  294. package/lib/vite/traceViewer/uiMode.html +3 -3
  295. package/lib/zipBundle.js +32 -23
  296. package/package.json +1 -1
  297. package/types/protocol.d.ts +436 -17
  298. package/types/types.d.ts +35 -16
  299. package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
  300. package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
  301. package/lib/vite/traceViewer/assets/defaultSettingsView-l0TyP_G8.js +0 -259
  302. package/lib/vite/traceViewer/index.BqUZLSro.js +0 -2
  303. package/lib/vite/traceViewer/uiMode.C1d2m5sF.js +0 -5
@@ -1,42 +1,47 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var bidiExecutionContext_exports = {};
30
+ __export(bidiExecutionContext_exports, {
31
+ BidiExecutionContext: () => BidiExecutionContext,
32
+ createHandle: () => createHandle
5
33
  });
6
- exports.BidiExecutionContext = void 0;
7
- exports.createHandle = createHandle;
8
- var _utils = require("../../utils");
9
- var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
10
- var js = _interopRequireWildcard(require("../javascript"));
11
- var dom = _interopRequireWildcard(require("../dom"));
12
- var _bidiDeserializer = require("./third_party/bidiDeserializer");
13
- var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
14
- var _bidiSerializer = require("./third_party/bidiSerializer");
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 && {}.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
- /**
18
- * Copyright (c) Microsoft Corporation.
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the 'License');
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an 'AS IS' BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
31
- */
32
-
34
+ module.exports = __toCommonJS(bidiExecutionContext_exports);
35
+ var import_utils = require("../../utils");
36
+ var js = __toESM(require("../javascript"));
37
+ var dom = __toESM(require("../dom"));
38
+ var import_bidiDeserializer = require("./third_party/bidiDeserializer");
39
+ var bidi = __toESM(require("./third_party/bidiProtocol"));
40
+ var import_bidiSerializer = require("./third_party/bidiSerializer");
33
41
  class BidiExecutionContext {
34
42
  constructor(session, realmInfo) {
35
- this._session = void 0;
36
- this._target = void 0;
37
43
  this._session = session;
38
- if (realmInfo.type === 'window') {
39
- // Simple realm does not seem to work for Window contexts.
44
+ if (realmInfo.type === "window") {
40
45
  this._target = {
41
46
  context: realmInfo.context,
42
47
  sandbox: realmInfo.sandbox
@@ -48,7 +53,7 @@ class BidiExecutionContext {
48
53
  }
49
54
  }
50
55
  async rawEvaluateJSON(expression) {
51
- const response = await this._session.send('script.evaluate', {
56
+ const response = await this._session.send("script.evaluate", {
52
57
  expression,
53
58
  target: this._target,
54
59
  serializationOptions: {
@@ -58,148 +63,158 @@ class BidiExecutionContext {
58
63
  awaitPromise: true,
59
64
  userActivation: true
60
65
  });
61
- if (response.type === 'success') return _bidiDeserializer.BidiDeserializer.deserialize(response.result);
62
- if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
63
- throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
66
+ if (response.type === "success")
67
+ return import_bidiDeserializer.BidiDeserializer.deserialize(response.result);
68
+ if (response.type === "exception")
69
+ throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + "\nFull val: " + JSON.stringify(response.exceptionDetails));
70
+ throw new js.JavaScriptErrorInEvaluate("Unexpected response type: " + JSON.stringify(response));
64
71
  }
65
72
  async rawEvaluateHandle(context, expression) {
66
- const response = await this._session.send('script.evaluate', {
73
+ const response = await this._session.send("script.evaluate", {
67
74
  expression,
68
75
  target: this._target,
69
76
  resultOwnership: bidi.Script.ResultOwnership.Root,
70
77
  // Necessary for the handle to be returned.
71
- serializationOptions: {
72
- maxObjectDepth: 0,
73
- maxDomDepth: 0
74
- },
78
+ serializationOptions: { maxObjectDepth: 0, maxDomDepth: 0 },
75
79
  awaitPromise: true,
76
80
  userActivation: true
77
81
  });
78
- if (response.type === 'success') {
79
- if ('handle' in response.result) return createHandle(context, response.result);
80
- throw new js.JavaScriptErrorInEvaluate('Cannot get handle: ' + JSON.stringify(response.result));
82
+ if (response.type === "success") {
83
+ if ("handle" in response.result)
84
+ return createHandle(context, response.result);
85
+ throw new js.JavaScriptErrorInEvaluate("Cannot get handle: " + JSON.stringify(response.result));
81
86
  }
82
- if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
83
- throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
87
+ if (response.type === "exception")
88
+ throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + "\nFull val: " + JSON.stringify(response.exceptionDetails));
89
+ throw new js.JavaScriptErrorInEvaluate("Unexpected response type: " + JSON.stringify(response));
84
90
  }
85
91
  async evaluateWithArguments(functionDeclaration, returnByValue, utilityScript, values, handles) {
86
- const response = await this._session.send('script.callFunction', {
92
+ const response = await this._session.send("script.callFunction", {
87
93
  functionDeclaration,
88
94
  target: this._target,
89
- arguments: [{
90
- handle: utilityScript._objectId
91
- }, ...values.map(_bidiSerializer.BidiSerializer.serialize), ...handles.map(handle => ({
92
- handle: handle._objectId
93
- }))],
94
- resultOwnership: returnByValue ? undefined : bidi.Script.ResultOwnership.Root,
95
+ arguments: [
96
+ { handle: utilityScript._objectId },
97
+ ...values.map(import_bidiSerializer.BidiSerializer.serialize),
98
+ ...handles.map((handle) => ({ handle: handle._objectId }))
99
+ ],
100
+ resultOwnership: returnByValue ? void 0 : bidi.Script.ResultOwnership.Root,
95
101
  // Necessary for the handle to be returned.
96
- serializationOptions: returnByValue ? {} : {
97
- maxObjectDepth: 0,
98
- maxDomDepth: 0
99
- },
102
+ serializationOptions: returnByValue ? {} : { maxObjectDepth: 0, maxDomDepth: 0 },
100
103
  awaitPromise: true,
101
104
  userActivation: true
102
105
  });
103
- if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
104
- if (response.type === 'success') {
105
- if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(_bidiDeserializer.BidiDeserializer.deserialize(response.result));
106
+ if (response.type === "exception")
107
+ throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + "\nFull val: " + JSON.stringify(response.exceptionDetails));
108
+ if (response.type === "success") {
109
+ if (returnByValue)
110
+ return js.parseEvaluationResultValue(import_bidiDeserializer.BidiDeserializer.deserialize(response.result));
106
111
  return createHandle(utilityScript._context, response.result);
107
112
  }
108
- throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
113
+ throw new js.JavaScriptErrorInEvaluate("Unexpected response type: " + JSON.stringify(response));
109
114
  }
110
115
  async getProperties(handle) {
111
- const names = await handle.evaluate(object => {
112
- const names = [];
116
+ const names = await handle.evaluate((object) => {
117
+ const names2 = [];
113
118
  const descriptors = Object.getOwnPropertyDescriptors(object);
114
119
  for (const name in descriptors) {
115
- var _descriptors$name;
116
- if ((_descriptors$name = descriptors[name]) !== null && _descriptors$name !== void 0 && _descriptors$name.enumerable) names.push(name);
120
+ if (descriptors[name]?.enumerable)
121
+ names2.push(name);
117
122
  }
118
- return names;
123
+ return names2;
119
124
  });
120
- const values = await Promise.all(names.map(name => handle.evaluateHandle((object, name) => object[name], name)));
121
- const map = new Map();
122
- for (let i = 0; i < names.length; i++) map.set(names[i], values[i]);
125
+ const values = await Promise.all(names.map((name) => handle.evaluateHandle((object, name2) => object[name2], name)));
126
+ const map = /* @__PURE__ */ new Map();
127
+ for (let i = 0; i < names.length; i++)
128
+ map.set(names[i], values[i]);
123
129
  return map;
124
130
  }
125
131
  async releaseHandle(handle) {
126
- if (!handle._objectId) return;
127
- await this._session.send('script.disown', {
132
+ if (!handle._objectId)
133
+ return;
134
+ await this._session.send("script.disown", {
128
135
  target: this._target,
129
136
  handles: [handle._objectId]
130
137
  });
131
138
  }
132
139
  async nodeIdForElementHandle(handle) {
133
- const shared = await this._remoteValueForReference({
134
- handle: handle._objectId
135
- });
136
- // TODO: store sharedId in the handle.
137
- if (!('sharedId' in shared)) throw new Error('Element is not a node');
140
+ const shared = await this._remoteValueForReference({ handle: handle._objectId });
141
+ if (!("sharedId" in shared))
142
+ throw new Error("Element is not a node");
138
143
  return {
139
144
  sharedId: shared.sharedId
140
145
  };
141
146
  }
142
147
  async remoteObjectForNodeId(context, nodeId) {
143
148
  const result = await this._remoteValueForReference(nodeId, true);
144
- if (!('handle' in result)) throw new Error('Can\'t get remote object for nodeId');
149
+ if (!("handle" in result))
150
+ throw new Error("Can't get remote object for nodeId");
145
151
  return createHandle(context, result);
146
152
  }
147
153
  async contentFrameIdForFrame(handle) {
148
- const contentWindow = await this._rawCallFunction('e => e.contentWindow', {
149
- handle: handle._objectId
150
- });
151
- if ((contentWindow === null || contentWindow === void 0 ? void 0 : contentWindow.type) === 'window') return contentWindow.value.context;
154
+ const contentWindow = await this._rawCallFunction("e => e.contentWindow", { handle: handle._objectId });
155
+ if (contentWindow?.type === "window")
156
+ return contentWindow.value.context;
152
157
  return null;
153
158
  }
154
159
  async frameIdForWindowHandle(handle) {
155
- if (!handle._objectId) throw new Error('JSHandle is not a DOM node handle');
156
- const contentWindow = await this._remoteValueForReference({
157
- handle: handle._objectId
158
- });
159
- if (contentWindow.type === 'window') return contentWindow.value.context;
160
+ if (!handle._objectId)
161
+ throw new Error("JSHandle is not a DOM node handle");
162
+ const contentWindow = await this._remoteValueForReference({ handle: handle._objectId });
163
+ if (contentWindow.type === "window")
164
+ return contentWindow.value.context;
160
165
  return null;
161
166
  }
162
- async _remoteValueForReference(reference, createHandle) {
163
- return await this._rawCallFunction('e => e', reference, createHandle);
167
+ async _remoteValueForReference(reference, createHandle2) {
168
+ return await this._rawCallFunction("e => e", reference, createHandle2);
164
169
  }
165
- async _rawCallFunction(functionDeclaration, arg, createHandle) {
166
- const response = await this._session.send('script.callFunction', {
170
+ async _rawCallFunction(functionDeclaration, arg, createHandle2) {
171
+ const response = await this._session.send("script.callFunction", {
167
172
  functionDeclaration,
168
173
  target: this._target,
169
174
  arguments: [arg],
170
175
  // "Root" is necessary for the handle to be returned.
171
- resultOwnership: createHandle ? bidi.Script.ResultOwnership.Root : bidi.Script.ResultOwnership.None,
172
- serializationOptions: {
173
- maxObjectDepth: 0,
174
- maxDomDepth: 0
175
- },
176
+ resultOwnership: createHandle2 ? bidi.Script.ResultOwnership.Root : bidi.Script.ResultOwnership.None,
177
+ serializationOptions: { maxObjectDepth: 0, maxDomDepth: 0 },
176
178
  awaitPromise: true,
177
179
  userActivation: true
178
180
  });
179
- if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
180
- if (response.type === 'success') return response.result;
181
- throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
181
+ if (response.type === "exception")
182
+ throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + "\nFull val: " + JSON.stringify(response.exceptionDetails));
183
+ if (response.type === "success")
184
+ return response.result;
185
+ throw new js.JavaScriptErrorInEvaluate("Unexpected response type: " + JSON.stringify(response));
182
186
  }
183
187
  }
184
- exports.BidiExecutionContext = BidiExecutionContext;
185
188
  function renderPreview(remoteObject) {
186
- if (remoteObject.type === 'undefined') return 'undefined';
187
- if (remoteObject.type === 'null') return 'null';
188
- if ('value' in remoteObject) return String(remoteObject.value);
189
+ if (remoteObject.type === "undefined")
190
+ return "undefined";
191
+ if (remoteObject.type === "null")
192
+ return "null";
193
+ if ("value" in remoteObject)
194
+ return String(remoteObject.value);
189
195
  return `<${remoteObject.type}>`;
190
196
  }
191
197
  function remoteObjectValue(remoteObject) {
192
- if (remoteObject.type === 'undefined') return undefined;
193
- if (remoteObject.type === 'null') return null;
194
- if (remoteObject.type === 'number' && typeof remoteObject.value === 'string') return js.parseUnserializableValue(remoteObject.value);
195
- if ('value' in remoteObject) return remoteObject.value;
196
- return undefined;
198
+ if (remoteObject.type === "undefined")
199
+ return void 0;
200
+ if (remoteObject.type === "null")
201
+ return null;
202
+ if (remoteObject.type === "number" && typeof remoteObject.value === "string")
203
+ return js.parseUnserializableValue(remoteObject.value);
204
+ if ("value" in remoteObject)
205
+ return remoteObject.value;
206
+ return void 0;
197
207
  }
198
208
  function createHandle(context, remoteObject) {
199
- if (remoteObject.type === 'node') {
200
- (0, _utils.assert)(context instanceof dom.FrameExecutionContext);
209
+ if (remoteObject.type === "node") {
210
+ (0, import_utils.assert)(context instanceof dom.FrameExecutionContext);
201
211
  return new dom.ElementHandle(context, remoteObject.handle);
202
212
  }
203
- const objectId = 'handle' in remoteObject ? remoteObject.handle : undefined;
213
+ const objectId = "handle" in remoteObject ? remoteObject.handle : void 0;
204
214
  return new js.JSHandle(context, remoteObject.type, renderPreview(remoteObject), objectId, remoteObjectValue(remoteObject));
205
- }
215
+ }
216
+ // Annotate the CommonJS export names for ESM import in node:
217
+ 0 && (module.exports = {
218
+ BidiExecutionContext,
219
+ createHandle
220
+ });
@@ -1,105 +1,112 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var bidiFirefox_exports = {};
30
+ __export(bidiFirefox_exports, {
31
+ BidiFirefox: () => BidiFirefox
5
32
  });
6
- exports.BidiFirefox = void 0;
7
- var _os = _interopRequireDefault(require("os"));
8
- var _path = _interopRequireDefault(require("path"));
9
- var _utils = require("../../utils");
10
- var _ascii = require("../utils/ascii");
11
- var _browserType = require("../browserType");
12
- var _bidiBrowser = require("./bidiBrowser");
13
- var _bidiConnection = require("./bidiConnection");
14
- var _firefoxPrefs = require("./third_party/firefoxPrefs");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- /**
17
- * Copyright (c) Microsoft Corporation.
18
- *
19
- * Licensed under the Apache License, Version 2.0 (the 'License');
20
- * you may not use this file except in compliance with the License.
21
- * You may obtain a copy of the License at
22
- *
23
- * http://www.apache.org/licenses/LICENSE-2.0
24
- *
25
- * Unless required by applicable law or agreed to in writing, software
26
- * distributed under the License is distributed on an 'AS IS' BASIS,
27
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
- * See the License for the specific language governing permissions and
29
- * limitations under the License.
30
- */
31
-
32
- class BidiFirefox extends _browserType.BrowserType {
33
+ module.exports = __toCommonJS(bidiFirefox_exports);
34
+ var import_os = __toESM(require("os"));
35
+ var import_path = __toESM(require("path"));
36
+ var import_utils = require("../../utils");
37
+ var import_ascii = require("../utils/ascii");
38
+ var import_browserType = require("../browserType");
39
+ var import_bidiBrowser = require("./bidiBrowser");
40
+ var import_bidiConnection = require("./bidiConnection");
41
+ var import_firefoxPrefs = require("./third_party/firefoxPrefs");
42
+ class BidiFirefox extends import_browserType.BrowserType {
33
43
  constructor(parent) {
34
- super(parent, 'bidi');
44
+ super(parent, "bidi");
35
45
  this._useBidi = true;
36
46
  }
37
47
  async connectToTransport(transport, options) {
38
- return _bidiBrowser.BidiBrowser.connect(this.attribution.playwright, transport, options);
48
+ return import_bidiBrowser.BidiBrowser.connect(this.attribution.playwright, transport, options);
39
49
  }
40
50
  doRewriteStartupLog(error) {
41
- if (!error.logs) return error;
42
- // https://github.com/microsoft/playwright/issues/6500
43
- if (error.logs.includes(`as root in a regular user's session is not supported.`)) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(`Firefox is unable to launch if the $HOME folder isn't owned by the current user.\nWorkaround: Set the HOME=/root environment variable${process.env.GITHUB_ACTION ? ' in your GitHub Actions workflow file' : ''} when running Playwright.`, 1);
44
- if (error.logs.includes('no DISPLAY environment variable specified')) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
51
+ if (!error.logs)
52
+ return error;
53
+ if (error.logs.includes(`as root in a regular user's session is not supported.`))
54
+ error.logs = "\n" + (0, import_ascii.wrapInASCIIBox)(`Firefox is unable to launch if the $HOME folder isn't owned by the current user.
55
+ Workaround: Set the HOME=/root environment variable${process.env.GITHUB_ACTION ? " in your GitHub Actions workflow file" : ""} when running Playwright.`, 1);
56
+ if (error.logs.includes("no DISPLAY environment variable specified"))
57
+ error.logs = "\n" + (0, import_ascii.wrapInASCIIBox)(import_browserType.kNoXServerRunningError, 1);
45
58
  return error;
46
59
  }
47
60
  amendEnvironment(env, userDataDir, executable, browserArguments) {
48
- if (!_path.default.isAbsolute(_os.default.homedir())) throw new Error(`Cannot launch Firefox with relative home directory. Did you set ${_os.default.platform() === 'win32' ? 'USERPROFILE' : 'HOME'} to a relative path?`);
61
+ if (!import_path.default.isAbsolute(import_os.default.homedir()))
62
+ throw new Error(`Cannot launch Firefox with relative home directory. Did you set ${import_os.default.platform() === "win32" ? "USERPROFILE" : "HOME"} to a relative path?`);
49
63
  env = {
50
64
  ...env,
51
- 'MOZ_CRASHREPORTER': '1',
52
- 'MOZ_CRASHREPORTER_NO_REPORT': '1',
53
- 'MOZ_CRASHREPORTER_SHUTDOWN': '1'
65
+ "MOZ_CRASHREPORTER": "1",
66
+ "MOZ_CRASHREPORTER_NO_REPORT": "1",
67
+ "MOZ_CRASHREPORTER_SHUTDOWN": "1"
54
68
  };
55
- if (_os.default.platform() === 'linux') {
56
- // Always remove SNAP_NAME and SNAP_INSTANCE_NAME env variables since they
57
- // confuse Firefox: in our case, builds never come from SNAP.
58
- // See https://github.com/microsoft/playwright/issues/20555
59
- return {
60
- ...env,
61
- SNAP_NAME: undefined,
62
- SNAP_INSTANCE_NAME: undefined
63
- };
69
+ if (import_os.default.platform() === "linux") {
70
+ return { ...env, SNAP_NAME: void 0, SNAP_INSTANCE_NAME: void 0 };
64
71
  }
65
72
  return env;
66
73
  }
67
74
  attemptToGracefullyCloseBrowser(transport) {
68
- transport.send({
69
- method: 'browser.close',
70
- params: {},
71
- id: _bidiConnection.kBrowserCloseMessageId
72
- });
75
+ transport.send({ method: "browser.close", params: {}, id: import_bidiConnection.kBrowserCloseMessageId });
73
76
  }
74
77
  async prepareUserDataDir(options, userDataDir) {
75
- await (0, _firefoxPrefs.createProfile)({
78
+ await (0, import_firefoxPrefs.createProfile)({
76
79
  path: userDataDir,
77
80
  preferences: options.firefoxUserPrefs || {}
78
81
  });
79
82
  }
80
83
  defaultArgs(options, isPersistent, userDataDir) {
81
- const {
82
- args = [],
83
- headless
84
- } = options;
85
- const userDataDirArg = args.find(arg => arg.startsWith('-profile') || arg.startsWith('--profile'));
86
- if (userDataDirArg) throw this._createUserDataDirArgMisuseError('--profile');
87
- const firefoxArguments = ['--remote-debugging-port=0'];
88
- if (headless) firefoxArguments.push('--headless');else firefoxArguments.push('--foreground');
84
+ const { args = [], headless } = options;
85
+ const userDataDirArg = args.find((arg) => arg.startsWith("-profile") || arg.startsWith("--profile"));
86
+ if (userDataDirArg)
87
+ throw this._createUserDataDirArgMisuseError("--profile");
88
+ const firefoxArguments = ["--remote-debugging-port=0"];
89
+ if (headless)
90
+ firefoxArguments.push("--headless");
91
+ else
92
+ firefoxArguments.push("--foreground");
89
93
  firefoxArguments.push(`--profile`, userDataDir);
90
94
  firefoxArguments.push(...args);
91
95
  return firefoxArguments;
92
96
  }
93
97
  readyState(options) {
94
- (0, _utils.assert)(options.useWebSocket);
98
+ (0, import_utils.assert)(options.useWebSocket);
95
99
  return new FirefoxReadyState();
96
100
  }
97
101
  }
98
- exports.BidiFirefox = BidiFirefox;
99
- class FirefoxReadyState extends _browserType.BrowserReadyState {
102
+ class FirefoxReadyState extends import_browserType.BrowserReadyState {
100
103
  onBrowserOutput(message) {
101
- // Bidi WebSocket in Firefox.
102
104
  const match = message.match(/WebDriver BiDi listening on (ws:\/\/.*)$/);
103
- if (match) this._wsEndpoint.resolve(match[1] + '/session');
105
+ if (match)
106
+ this._wsEndpoint.resolve(match[1] + "/session");
104
107
  }
105
- }
108
+ }
109
+ // Annotate the CommonJS export names for ESM import in node:
110
+ 0 && (module.exports = {
111
+ BidiFirefox
112
+ });