diff --git a/dotnet/docs/api/class-tracing.mdx b/dotnet/docs/api/class-tracing.mdx
index 9dabaa67b8..04c08b4b12 100644
--- a/dotnet/docs/api/class-tracing.mdx
+++ b/dotnet/docs/api/class-tracing.mdx
@@ -80,7 +80,7 @@ await Page.Context.Tracing.GroupEndAsync();
Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the [Tracing.GroupAsync()](/api/class-tracing.mdx#tracing-group) call.
**Returns**
-- [void]#
+- [Disposable]#
---
diff --git a/dotnet/docs/api/class-video.mdx b/dotnet/docs/api/class-video.mdx
index d2bf16aeb1..dc6f9e88b4 100644
--- a/dotnet/docs/api/class-video.mdx
+++ b/dotnet/docs/api/class-video.mdx
@@ -16,9 +16,9 @@ Console.WriteLine(await page.Video.GetPathAsync());
Alternatively, you can use [Video.StartAsync()](/api/class-video.mdx#video-start) and [Video.StopAsync()](/api/class-video.mdx#video-stop) to record video manually. This approach is mutually exclusive with the `recordVideo` option.
```csharp
-await page.Video.StartAsync();
+await page.Video.StartAsync(new() { Path = "video.webm" });
// ... perform actions ...
-await page.Video.StopAsync(new() { Path = "video.webm" });
+await page.Video.StopAsync();
```
@@ -91,13 +91,16 @@ Starts video recording. This method is mutually exclusive with the `recordVideo`
**Usage**
```csharp
-await page.Video.StartAsync();
+await page.Video.StartAsync(new() { Path = "video.webm" });
// ... perform actions ...
-await page.Video.StopAsync(new() { Path = "video.webm" });
+await page.Video.StopAsync();
```
**Arguments**
- `options` `VideoStartOptions?` *(optional)*
+ - `Path` [string]? *(optional)*#
+
+ Path where the video should be saved when the recording is stopped.
- `Size` Size? *(optional)*#
- `Width` [int]
@@ -109,7 +112,7 @@ await page.Video.StopAsync(new() { Path = "video.webm" });
Optional dimensions of the recorded video. If not specified the size will be equal to page viewport scaled down to fit into 800x800. Actual picture of the page will be scaled down if necessary to fit the specified size.
**Returns**
-- [void]#
+- [Disposable]#
---
@@ -122,15 +125,9 @@ Stops video recording started with [Video.StartAsync()](/api/class-video.mdx#vid
**Usage**
```csharp
-await Video.StopAsync(options);
+await Video.StopAsync();
```
-**Arguments**
-- `options` `VideoStopOptions?` *(optional)*
- - `Path` [string]? *(optional)*#
-
- Path where the video should be saved.
-
**Returns**
- [void]#
diff --git a/java/docs/api/class-tracing.mdx b/java/docs/api/class-tracing.mdx
index 2bf0b4524f..53ce50caad 100644
--- a/java/docs/api/class-tracing.mdx
+++ b/java/docs/api/class-tracing.mdx
@@ -75,7 +75,7 @@ page.context().tracing().groupEnd();
Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the [Tracing.group()](/api/class-tracing.mdx#tracing-group) call.
**Returns**
-- [void]#
+- [Disposable]#
---
diff --git a/java/docs/api/class-video.mdx b/java/docs/api/class-video.mdx
index 2febf2a5e5..a596384870 100644
--- a/java/docs/api/class-video.mdx
+++ b/java/docs/api/class-video.mdx
@@ -16,9 +16,9 @@ System.out.println(page.video().path());
Alternatively, you can use [Video.start()](/api/class-video.mdx#video-start) and [Video.stop()](/api/class-video.mdx#video-stop) to record video manually. This approach is mutually exclusive with the `recordVideo` option.
```java
-page.video().start();
+page.video().start(new Video.StartOptions().setPath(Paths.get("video.webm")));
// ... perform actions ...
-page.video().stop(new Video.StopOptions().setPath(Paths.get("video.webm")));
+page.video().stop();
```
@@ -91,13 +91,16 @@ Starts video recording. This method is mutually exclusive with the `recordVideo`
**Usage**
```java
-page.video().start();
+page.video().start(new Video.StartOptions().setPath(Paths.get("video.webm")));
// ... perform actions ...
-page.video().stop(new Video.StopOptions().setPath(Paths.get("video.webm")));
+page.video().stop();
```
**Arguments**
- `options` `Video.StartOptions` *(optional)*
+ - `setPath` [Path] *(optional)*#
+
+ Path where the video should be saved when the recording is stopped.
- `setSize` Size *(optional)*#
- `setWidth` [int]
@@ -109,7 +112,7 @@ page.video().stop(new Video.StopOptions().setPath(Paths.get("video.webm")));
Optional dimensions of the recorded video. If not specified the size will be equal to page viewport scaled down to fit into 800x800. Actual picture of the page will be scaled down if necessary to fit the specified size.
**Returns**
-- [void]#
+- [Disposable]#
---
@@ -123,15 +126,8 @@ Stops video recording started with [Video.start()](/api/class-video.mdx#video-st
```java
Video.stop();
-Video.stop(options);
```
-**Arguments**
-- `options` `Video.StopOptions` *(optional)*
- - `setPath` [Path] *(optional)*#
-
- Path where the video should be saved.
-
**Returns**
- [void]#
diff --git a/nodejs/docs/api/class-browsercontext.mdx b/nodejs/docs/api/class-browsercontext.mdx
index c1b4a34cec..826076ee31 100644
--- a/nodejs/docs/api/class-browsercontext.mdx
+++ b/nodejs/docs/api/class-browsercontext.mdx
@@ -227,6 +227,23 @@ await browserContext.close(options);
---
+### contextOptions {#browser-context-context-options}
+
+Added in: v1.59browserContext.contextOptions
+
+Returns the context options that were used to create this browser context. The return type matches the options accepted by [browser.newContext()](/api/class-browser.mdx#browser-new-context).
+
+**Usage**
+
+```js
+browserContext.contextOptions();
+```
+
+**Returns**
+- [Object]#
+
+---
+
### cookies {#browser-context-cookies}
Added before v1.9browserContext.cookies
diff --git a/nodejs/docs/api/class-page.mdx b/nodejs/docs/api/class-page.mdx
index 08b1fc4492..95d984afbb 100644
--- a/nodejs/docs/api/class-page.mdx
+++ b/nodejs/docs/api/class-page.mdx
@@ -1861,29 +1861,6 @@ await page.routeWebSocket('/ws', ws => {
---
-### screencast {#page-screencast}
-
-Added in: v1.59page.screencast
-
-Returns the [Screencast] object associated with this page.
-
-**Usage**
-
-```js
-const screencast = page.screencast();
-screencast.on('screencastFrame', data => {
- console.log('received frame, jpeg size:', data.length);
-});
-await screencast.start();
-// ... perform actions ...
-await screencast.stop();
-```
-
-**Returns**
-- [Screencast]#
-
----
-
### screenshot {#page-screenshot}
Added before v1.9page.screenshot
@@ -2617,6 +2594,28 @@ page.request
---
+### screencast {#page-screencast}
+
+Added in: v1.59page.screencast
+
+[Screencast] object associated with this page.
+
+**Usage**
+
+```js
+page.screencast.on('screencastFrame', data => {
+ console.log('received frame, jpeg size:', data.length);
+});
+await page.screencast.start();
+// ... perform actions ...
+await page.screencast.stop();
+```
+
+**Type**
+- [Screencast]
+
+---
+
### touchscreen {#page-touchscreen}
Added before v1.9page.touchscreen
diff --git a/nodejs/docs/api/class-screencast.mdx b/nodejs/docs/api/class-screencast.mdx
index 72f6669e38..afdec878b6 100644
--- a/nodejs/docs/api/class-screencast.mdx
+++ b/nodejs/docs/api/class-screencast.mdx
@@ -23,7 +23,7 @@ Starts capturing screencast frames. Frames are emitted as [screencast.on('screen
**Usage**
```js
-const screencast = page.screencast();
+const screencast = page.screencast;
screencast.on('screencastframe', ({ data, width, height }) => {
console.log(`frame ${width}x${height}, size: ${data.length}`);
});
@@ -45,7 +45,7 @@ await screencast.stop();
Maximum screencast frame dimensions. The output frame may be smaller to preserve the page aspect ratio. Defaults to 800×800.
**Returns**
-- [Promise]<[void]>#
+- [Promise]<[Disposable]>#
---
@@ -79,7 +79,7 @@ Emitted for each captured JPEG screencast frame while the screencast is running.
**Usage**
```js
-const screencast = page.screencast();
+const screencast = page.screencast;
screencast.on('screencastframe', ({ data, width, height }) => {
console.log(`frame ${width}x${height}, jpeg size: ${data.length}`);
require('fs').writeFileSync('frame.jpg', data);
diff --git a/nodejs/docs/api/class-tracing.mdx b/nodejs/docs/api/class-tracing.mdx
index b6c20c4803..ae3b6105de 100644
--- a/nodejs/docs/api/class-tracing.mdx
+++ b/nodejs/docs/api/class-tracing.mdx
@@ -71,7 +71,7 @@ await test.step('Log in', async () => {
Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the [tracing.group()](/api/class-tracing.mdx#tracing-group) call.
**Returns**
-- [Promise]<[void]>#
+- [Promise]<[Disposable]>#
---
diff --git a/nodejs/docs/api/class-video.mdx b/nodejs/docs/api/class-video.mdx
index f6d6c51ae5..129fb80275 100644
--- a/nodejs/docs/api/class-video.mdx
+++ b/nodejs/docs/api/class-video.mdx
@@ -16,9 +16,9 @@ console.log(await page.video().path());
Alternatively, you can use [video.start()](/api/class-video.mdx#video-start) and [video.stop()](/api/class-video.mdx#video-stop) to record video manually. This approach is mutually exclusive with the `recordVideo` option.
```js
-await page.video().start();
+await page.video().start({ path: 'video.webm' });
// ... perform actions ...
-await page.video().stop({ path: 'video.webm' });
+await page.video().stop();
```
@@ -91,13 +91,16 @@ Starts video recording. This method is mutually exclusive with the `recordVideo`
**Usage**
```js
-await page.video().start();
+await page.video().start({ path: 'video.webm' });
// ... perform actions ...
-await page.video().stop({ path: 'video.webm' });
+await page.video().stop();
```
**Arguments**
- `options` [Object] *(optional)*
+ - `path` [string] *(optional)*#
+
+ Path where the video should be saved when the recording is stopped.
- `size` [Object] *(optional)*#
- `width` [number]
@@ -109,7 +112,7 @@ await page.video().stop({ path: 'video.webm' });
Optional dimensions of the recorded video. If not specified the size will be equal to page viewport scaled down to fit into 800x800. Actual picture of the page will be scaled down if necessary to fit the specified size.
**Returns**
-- [Promise]<[void]>#
+- [Promise]<[Disposable]>#
---
@@ -123,15 +126,8 @@ Stops video recording started with [video.start()](/api/class-video.mdx#video-st
```js
await video.stop();
-await video.stop(options);
```
-**Arguments**
-- `options` [Object] *(optional)*
- - `path` [string] *(optional)*#
-
- Path where the video should be saved.
-
**Returns**
- [Promise]<[void]>#
diff --git a/nodejs/docs/ci.mdx b/nodejs/docs/ci.mdx
index c98f764735..3682f06faa 100644
--- a/nodejs/docs/ci.mdx
+++ b/nodejs/docs/ci.mdx
@@ -171,7 +171,7 @@ jobs:
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run changed Playwright tests
- run: npx playwright test --only-changed=$GITHUB_BASE_REF
+ run: npx playwright test --only-changed=origin/$GITHUB_BASE_REF
if: github.event_name == 'pull_request'
- name: Run Playwright tests
run: npx playwright test
diff --git a/python/docs/api/class-tracing.mdx b/python/docs/api/class-tracing.mdx
index d4c8b1cfaf..066a4da568 100644
--- a/python/docs/api/class-tracing.mdx
+++ b/python/docs/api/class-tracing.mdx
@@ -121,7 +121,7 @@ await page.context.tracing.group_end()
Specifies a custom location for the group to be shown in the trace viewer. Defaults to the location of the [tracing.group()](/api/class-tracing.mdx#tracing-group) call.
**Returns**
-- [NoneType]#
+- [Disposable]#
---
diff --git a/python/docs/api/class-video.mdx b/python/docs/api/class-video.mdx
index 0f22d0507e..bd5f3e50a8 100644
--- a/python/docs/api/class-video.mdx
+++ b/python/docs/api/class-video.mdx
@@ -46,18 +46,18 @@ Alternatively, you can use [video.start()](/api/class-video.mdx#video-start) and
```py
-page.video.start()
+page.video.start(path="video.webm")
# ... perform actions ...
-page.video.stop(path="video.webm")
+page.video.stop()
```
```py
-await page.video.start()
+await page.video.start(path="video.webm")
# ... perform actions ...
-await page.video.stop(path="video.webm")
+await page.video.stop()
```
@@ -143,24 +143,27 @@ Starts video recording. This method is mutually exclusive with the `recordVideo`
```py
-page.video.start()
+page.video.start(path="video.webm")
# ... perform actions ...
-page.video.stop(path="video.webm")
+page.video.stop()
```
```py
-await page.video.start()
+await page.video.start(path="video.webm")
# ... perform actions ...
-await page.video.stop(path="video.webm")
+await page.video.stop()
```
**Arguments**
+- `path` [Union]\[[str], [pathlib.Path]\] *(optional)*#
+
+ Path where the video should be saved when the recording is stopped.
- `size` [Dict] *(optional)*#
- `width` [int]
@@ -172,7 +175,7 @@ await page.video.stop(path="video.webm")
Optional dimensions of the recorded video. If not specified the size will be equal to page viewport scaled down to fit into 800x800. Actual picture of the page will be scaled down if necessary to fit the specified size.
**Returns**
-- [NoneType]#
+- [Disposable]#
---
@@ -186,14 +189,8 @@ Stops video recording started with [video.start()](/api/class-video.mdx#video-st
```python
video.stop()
-video.stop(**kwargs)
```
-**Arguments**
-- `path` [Union]\[[str], [pathlib.Path]\] *(optional)*#
-
- Path where the video should be saved.
-
**Returns**
- [NoneType]#