[Feature]: pass maxFramesInFlight through to Page.startScreencast
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- api
Research direction
Start at the page.screencast.start() API and the Chromium delegate that sends Page.startScreencast parameters; compare the corresponding Firefox and WebKit paths. First resolve whether the option is browser-specific or a shared throughput hint, then add the API, documentation, and coverage for passing maxFramesInFlight through and preserving behavior in the other browsers.
Written by the indexing model from the issue text.
Description
🚀 Feature Request
Chromium 154 added maxFramesInFlight to Page.startScreencast, defaulting to 3. Playwright's Chromium delegate sends format, quality, maxWidth and maxHeight, so the parameter is not reachable through page.screencast.start().
What it costs. Recording a 2560×1600 page at 60 fps, measured on stock Chrome for Testing 154.0.8037.0, three interleaved repeats of the same run: at the default of 3 we capture 86.6 % of the frames Chromium reports it presented (89.5 / 82.2 / 88.0 %); at 12 we capture 98.8 % — 338 of 342, three times out of three. The loss is not evenly spread and it is visible in the finished video, not merely countable.
Why the userland route does not cover this one. We are aware of the position in #41007 — that recording knobs belong in userland via page.screencast.start({ onFrame }), and that shipping them constrains Playwright's own implementation. That reasoning holds for everything downstream of the frame: encoding, bitrate, container. This parameter acts upstream of it — it decides whether the browser hands the frame over at all — and onFrame is on the wrong side of that line. It is also not an API of Playwright's own making: Chromium exposes it, so passing it through does not lock in any implementation choice.
The design question we cannot answer for you. page.screencast covers three browsers and this is a Chromium term; Firefox and WebKit send { width, height, quality } at the same place. We would propose a generally-worded throughput hint that the other two ignore, but a browser-specific option, or simply a better default at large capture sizes, would all work for us. Which shape do you want?
We would like to implement it, docs and test included, once an issue is assigned.
Our current workaround is to drive the screencast over context.newCDPSession(page) ourselves, which works but means giving up page.screencast entirely.
- Dominant language
- TypeScript
- Stars
- 96.4k
- Forks
- 6.5k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 170
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/playwright
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
microsoft/playwright#42804 ·
-
[CLI]: skill doesn't warn that a generated locator is only unique against the current page state Openneeds-triage-mac
Difficulty 1/5 Under an hour Newbie friendliness 91/100
microsoft/playwright#42790 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
microsoft/playwright#42782 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
microsoft/playwright#42745 · 1 comment ·
-
[Bug]: MCP idle timeout closes the browser during a tool call that outlasts it, failing that call Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
microsoft/playwright#42693 · 1 comment ·
All issues in microsoft/playwright
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·