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
package/types/types.d.ts CHANGED
@@ -3974,9 +3974,9 @@ export interface Page {
3974
3974
  *
3975
3975
  * **NOTE** Enabling routing disables http cache.
3976
3976
  *
3977
- * @param url A glob pattern, regex pattern or predicate receiving [URL] to match while routing. When a
3978
- * [`baseURL`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-base-url) via the context
3979
- * options was provided and the passed URL is a path, it gets merged via the
3977
+ * @param url A glob pattern, regex pattern, or predicate that receives a [URL] to match during routing. If
3978
+ * [`baseURL`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-base-url) is set in the
3979
+ * context options and the provided URL is a string that does not start with `*`, it is resolved using the
3980
3980
  * [`new URL()`](https://developer.mozilla.org/en-US/docs/Web/API/URL/URL) constructor.
3981
3981
  * @param handler handler function to route the request.
3982
3982
  * @param options
@@ -9068,9 +9068,9 @@ export interface BrowserContext {
9068
9068
  *
9069
9069
  * **NOTE** Enabling routing disables http cache.
9070
9070
  *
9071
- * @param url A glob pattern, regex pattern or predicate receiving [URL] to match while routing. When a
9072
- * [`baseURL`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-base-url) via the context
9073
- * options was provided and the passed URL is a path, it gets merged via the
9071
+ * @param url A glob pattern, regex pattern, or predicate that receives a [URL] to match during routing. If
9072
+ * [`baseURL`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-base-url) is set in the
9073
+ * context options and the provided URL is a string that does not start with `*`, it is resolved using the
9074
9074
  * [`new URL()`](https://developer.mozilla.org/en-US/docs/Web/API/URL/URL) constructor.
9075
9075
  * @param handler handler function to route the request.
9076
9076
  * @param options
@@ -9274,9 +9274,6 @@ export interface BrowserContext {
9274
9274
  * Set to `true` to include [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) in the storage
9275
9275
  * state snapshot. If your application uses IndexedDB to store authentication tokens, like Firebase Authentication,
9276
9276
  * enable this.
9277
- *
9278
- * **NOTE** IndexedDBs with typed arrays are currently not supported.
9279
- *
9280
9277
  */
9281
9278
  indexedDB?: boolean;
9282
9279
 
@@ -12481,6 +12478,12 @@ export interface Locator {
12481
12478
  * @param options
12482
12479
  */
12483
12480
  ariaSnapshot(options?: {
12481
+ /**
12482
+ * Generate symbolic reference for each element. One can use `aria-ref=<ref>` locator immediately after capturing the
12483
+ * snapshot to perform actions on the element.
12484
+ */
12485
+ ref?: boolean;
12486
+
12484
12487
  /**
12485
12488
  * Maximum time in milliseconds. Defaults to `0` - no timeout. The default value can be changed via `actionTimeout`
12486
12489
  * option in the config, or by using the
@@ -14704,11 +14707,15 @@ export interface BrowserType<Unused = {}> {
14704
14707
  * Launches browser that uses persistent storage located at
14705
14708
  * [`userDataDir`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context-option-user-data-dir)
14706
14709
  * and returns the only context. Closing this context will automatically close the browser.
14707
- * @param userDataDir Path to a User Data Directory, which stores browser session data like cookies and local storage. More details for
14710
+ * @param userDataDir Path to a User Data Directory, which stores browser session data like cookies and local storage. Pass an empty
14711
+ * string to create a temporary directory.
14712
+ *
14713
+ * More details for
14708
14714
  * [Chromium](https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md#introduction) and
14709
- * [Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options#User_Profile). Note that Chromium's
14710
- * user data directory is the **parent** directory of the "Profile Path" seen at `chrome://version`. Pass an empty
14711
- * string to use a temporary directory instead.
14715
+ * [Firefox](https://wiki.mozilla.org/Firefox/CommandLineOptions#User_profile). Chromium's user data directory is the
14716
+ * **parent** directory of the "Profile Path" seen at `chrome://version`.
14717
+ *
14718
+ * Note that browsers do not allow launching multiple instances with the same User Data Directory.
14712
14719
  * @param options
14713
14720
  */
14714
14721
  launchPersistentContext(userDataDir: string, options?: {
@@ -14927,7 +14934,7 @@ export interface BrowserType<Unused = {}> {
14927
14934
  /**
14928
14935
  * Whether to run browser in headless mode. More details for
14929
14936
  * [Chromium](https://developers.google.com/web/updates/2017/04/headless-chrome) and
14930
- * [Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode). Defaults to `true` unless the
14937
+ * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true` unless the
14931
14938
  * [`devtools`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-devtools) option is
14932
14939
  * `true`.
14933
14940
  */
@@ -15321,7 +15328,7 @@ export interface BrowserType<Unused = {}> {
15321
15328
  /**
15322
15329
  * Whether to run browser in headless mode. More details for
15323
15330
  * [Chromium](https://developers.google.com/web/updates/2017/04/headless-chrome) and
15324
- * [Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode). Defaults to `true` unless the
15331
+ * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true` unless the
15325
15332
  * [`devtools`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-devtools) option is
15326
15333
  * `true`.
15327
15334
  */
@@ -17563,6 +17570,13 @@ export interface APIRequest {
17563
17570
  */
17564
17571
  ignoreHTTPSErrors?: boolean;
17565
17572
 
17573
+ /**
17574
+ * Maximum number of request redirects that will be followed automatically. An error will be thrown if the number is
17575
+ * exceeded. Defaults to `20`. Pass `0` to not follow redirects. This can be overwritten for each request
17576
+ * individually.
17577
+ */
17578
+ maxRedirects?: number;
17579
+
17566
17580
  /**
17567
17581
  * Network proxy settings.
17568
17582
  */
@@ -20769,6 +20783,11 @@ export interface Route {
20769
20783
  * request to the network, other matching handlers won't be invoked. Use
20770
20784
  * [route.fallback([options])](https://playwright.dev/docs/api/class-route#route-fallback) If you want next matching
20771
20785
  * handler in the chain to be invoked.
20786
+ *
20787
+ * **NOTE** The `Cookie` header cannot be overridden using this method. If a value is provided, it will be ignored,
20788
+ * and the cookie will be loaded from the browser's cookie store. To set custom cookies, use
20789
+ * [browserContext.addCookies(cookies)](https://playwright.dev/docs/api/class-browsercontext#browser-context-add-cookies).
20790
+ *
20772
20791
  * @param options
20773
20792
  */
20774
20793
  continue(options?: {
@@ -21696,7 +21715,7 @@ export interface LaunchOptions {
21696
21715
  /**
21697
21716
  * Whether to run browser in headless mode. More details for
21698
21717
  * [Chromium](https://developers.google.com/web/updates/2017/04/headless-chrome) and
21699
- * [Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Headless_mode). Defaults to `true` unless the
21718
+ * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true` unless the
21700
21719
  * [`devtools`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-devtools) option is
21701
21720
  * `true`.
21702
21721
  */
@@ -1,229 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.serializeAsCallArgument = exports.parseEvaluationResultValue = void 0;
7
- exports.source = source;
8
- /**
9
- * Copyright (c) Microsoft Corporation.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
22
- */
23
-
24
- function source() {
25
- function isRegExp(obj) {
26
- try {
27
- return obj instanceof RegExp || Object.prototype.toString.call(obj) === '[object RegExp]';
28
- } catch (error) {
29
- return false;
30
- }
31
- }
32
- function isDate(obj) {
33
- try {
34
- return obj instanceof Date || Object.prototype.toString.call(obj) === '[object Date]';
35
- } catch (error) {
36
- return false;
37
- }
38
- }
39
- function isURL(obj) {
40
- try {
41
- return obj instanceof URL || Object.prototype.toString.call(obj) === '[object URL]';
42
- } catch (error) {
43
- return false;
44
- }
45
- }
46
- function isError(obj) {
47
- try {
48
- var _Object$getPrototypeO;
49
- return obj instanceof Error || obj && ((_Object$getPrototypeO = Object.getPrototypeOf(obj)) === null || _Object$getPrototypeO === void 0 ? void 0 : _Object$getPrototypeO.name) === 'Error';
50
- } catch (error) {
51
- return false;
52
- }
53
- }
54
- function parseEvaluationResultValue(value, handles = [], refs = new Map()) {
55
- if (Object.is(value, undefined)) return undefined;
56
- if (typeof value === 'object' && value) {
57
- if ('ref' in value) return refs.get(value.ref);
58
- if ('v' in value) {
59
- if (value.v === 'undefined') return undefined;
60
- if (value.v === 'null') return null;
61
- if (value.v === 'NaN') return NaN;
62
- if (value.v === 'Infinity') return Infinity;
63
- if (value.v === '-Infinity') return -Infinity;
64
- if (value.v === '-0') return -0;
65
- return undefined;
66
- }
67
- if ('d' in value) return new Date(value.d);
68
- if ('u' in value) return new URL(value.u);
69
- if ('bi' in value) return BigInt(value.bi);
70
- if ('e' in value) {
71
- const error = new Error(value.e.m);
72
- error.name = value.e.n;
73
- error.stack = value.e.s;
74
- return error;
75
- }
76
- if ('r' in value) return new RegExp(value.r.p, value.r.f);
77
- if ('a' in value) {
78
- const result = [];
79
- refs.set(value.id, result);
80
- for (const a of value.a) result.push(parseEvaluationResultValue(a, handles, refs));
81
- return result;
82
- }
83
- if ('o' in value) {
84
- const result = {};
85
- refs.set(value.id, result);
86
- for (const {
87
- k,
88
- v
89
- } of value.o) result[k] = parseEvaluationResultValue(v, handles, refs);
90
- return result;
91
- }
92
- if ('h' in value) return handles[value.h];
93
- }
94
- return value;
95
- }
96
- function serializeAsCallArgument(value, handleSerializer) {
97
- return serialize(value, handleSerializer, {
98
- visited: new Map(),
99
- lastId: 0
100
- });
101
- }
102
- function serialize(value, handleSerializer, visitorInfo) {
103
- if (value && typeof value === 'object') {
104
- // eslint-disable-next-line no-restricted-globals
105
- if (typeof globalThis.Window === 'function' && value instanceof globalThis.Window) return 'ref: <Window>';
106
- // eslint-disable-next-line no-restricted-globals
107
- if (typeof globalThis.Document === 'function' && value instanceof globalThis.Document) return 'ref: <Document>';
108
- // eslint-disable-next-line no-restricted-globals
109
- if (typeof globalThis.Node === 'function' && value instanceof globalThis.Node) return 'ref: <Node>';
110
- }
111
- return innerSerialize(value, handleSerializer, visitorInfo);
112
- }
113
- function innerSerialize(value, handleSerializer, visitorInfo) {
114
- const result = handleSerializer(value);
115
- if ('fallThrough' in result) value = result.fallThrough;else return result;
116
- if (typeof value === 'symbol') return {
117
- v: 'undefined'
118
- };
119
- if (Object.is(value, undefined)) return {
120
- v: 'undefined'
121
- };
122
- if (Object.is(value, null)) return {
123
- v: 'null'
124
- };
125
- if (Object.is(value, NaN)) return {
126
- v: 'NaN'
127
- };
128
- if (Object.is(value, Infinity)) return {
129
- v: 'Infinity'
130
- };
131
- if (Object.is(value, -Infinity)) return {
132
- v: '-Infinity'
133
- };
134
- if (Object.is(value, -0)) return {
135
- v: '-0'
136
- };
137
- if (typeof value === 'boolean') return value;
138
- if (typeof value === 'number') return value;
139
- if (typeof value === 'string') return value;
140
- if (typeof value === 'bigint') return {
141
- bi: value.toString()
142
- };
143
- if (isError(value)) {
144
- var _value$stack;
145
- let stack;
146
- if ((_value$stack = value.stack) !== null && _value$stack !== void 0 && _value$stack.startsWith(value.name + ': ' + value.message)) {
147
- // v8
148
- stack = value.stack;
149
- } else {
150
- stack = `${value.name}: ${value.message}\n${value.stack}`;
151
- }
152
- return {
153
- e: {
154
- n: value.name,
155
- m: value.message,
156
- s: stack
157
- }
158
- };
159
- }
160
- if (isDate(value)) return {
161
- d: value.toJSON()
162
- };
163
- if (isURL(value)) return {
164
- u: value.toJSON()
165
- };
166
- if (isRegExp(value)) return {
167
- r: {
168
- p: value.source,
169
- f: value.flags
170
- }
171
- };
172
- const id = visitorInfo.visited.get(value);
173
- if (id) return {
174
- ref: id
175
- };
176
- if (Array.isArray(value)) {
177
- const a = [];
178
- const id = ++visitorInfo.lastId;
179
- visitorInfo.visited.set(value, id);
180
- for (let i = 0; i < value.length; ++i) a.push(serialize(value[i], handleSerializer, visitorInfo));
181
- return {
182
- a,
183
- id
184
- };
185
- }
186
- if (typeof value === 'object') {
187
- const o = [];
188
- const id = ++visitorInfo.lastId;
189
- visitorInfo.visited.set(value, id);
190
- for (const name of Object.keys(value)) {
191
- let item;
192
- try {
193
- item = value[name];
194
- } catch (e) {
195
- continue; // native bindings will throw sometimes
196
- }
197
- if (name === 'toJSON' && typeof item === 'function') o.push({
198
- k: name,
199
- v: {
200
- o: [],
201
- id: 0
202
- }
203
- });else o.push({
204
- k: name,
205
- v: serialize(item, handleSerializer, visitorInfo)
206
- });
207
- }
208
- let jsonWrapper;
209
- try {
210
- // If Object.keys().length === 0 we fall back to toJSON if it exists
211
- if (o.length === 0 && value.toJSON && typeof value.toJSON === 'function') jsonWrapper = {
212
- value: value.toJSON()
213
- };
214
- } catch (e) {}
215
- if (jsonWrapper) return innerSerialize(jsonWrapper.value, handleSerializer, visitorInfo);
216
- return {
217
- o,
218
- id
219
- };
220
- }
221
- }
222
- return {
223
- parseEvaluationResultValue,
224
- serializeAsCallArgument
225
- };
226
- }
227
- const result = source();
228
- const parseEvaluationResultValue = exports.parseEvaluationResultValue = result.parseEvaluationResultValue;
229
- const serializeAsCallArgument = exports.serializeAsCallArgument = result.serializeAsCallArgument;