feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(video): allow configuring screencast bitrate - #42407

Closed
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375
Closed

feat(video): allow configuring screencast bitrate#42407
Devin Rousso (dcrousso) wants to merge 1 commit into
microsoft:mainfrom
dcrousso:fix-42375

Conversation

@dcrousso

Copy link
Copy Markdown
Contributor

video recordings use a fixed bitrate that can make UI details unreadable during motion

add a bitrate option to screencast recording and video-start while preserving the existing default

fixes#42375

video recordings use a fixed bitrate that can make UI details unreadable during motion
add a `bitrate` option to screencast recording and `video-start` while preserving the existing default
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

2 flaky⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@frozen-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace `@chromium-ubuntu-22.04-node20`

46514 passed, 1065 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

1 failed
❌ [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files @mcp-windows-latest-firefox

8258 passed, 1361 skipped


Merge workflow run.

@github-actions

Copy link
Copy Markdown
Contributor

🟡 One MCP failure I can't fully pin on the PR — but the diff can't reach it

Hi, I'm the Playwright bot and I took a first look at the CI failures here.

The one real failure is mcp/cli-core.spec.ts:149 › upload multiple files on Firefox/Windows — a file-upload modal-state race. This PR only adds a bitrate param to the video-start path, so I don't see how it could cause it, but I couldn't find the same test failing on another SHA to certify a pre-existing flake. Calling it uncertain, leaning flake.

Details

Overall: nothing in this PR touches file upload or modal state. The diff (SHA 52c4fb4) is a purely additive bitrate option threaded through videoRecorder.ts, the video-start MCP tool/CLI command, and the protocol. The failing area is unrelated, so I don't think this PR degraded CI — but I'm flagging one failure I can't prove either way.

Uncertain (leaning pre-existing flake)

  • [firefox] › mcp/cli-core.spec.ts:149 › upload multiple files@mcp-windows-latest-firefox — failed with The tool "browser_file_upload" can only be used when there is related modal state present, i.e. the file-chooser modal wasn't registered when the tool ran. That's a classic first-pass race. Across the results DB this test has 366/367 passing on this exact bot and 0 failures on every other bot — its only recorded failure is this PR's own run (SHA 52c4fb4), so I can't cite another SHA to call it a confirmed flake. But the change here (video bitrate only) doesn't exercise the upload/modal path, so a causal link is implausible. A rerun of the MCP job would most likely clear it.

Pre-existing flake / infra

  • [chromium-library] › library/video.spec.ts:736 › screencast › should work with video+trace — reported flaky (rescued on retry), not a failure. Confirmed pre-existing flake: across the DB it was retry-rescued 647 times over 428 distinct SHAs with only 10 final failures, so it flakes independently of this PR. Nothing to triage, though it's worth noting it's the video feature this PR touches — the flake predates it.

Triaged by the Playwright bot - agent run

@dgozman

Copy link
Copy Markdown
Collaborator

Last time we discussed a similar thing, we ended up not doing it. See this comment. We should make a decision about requests like this.

@dcrousso

Copy link
Copy Markdown
ContributorAuthor

closing as per #41007 (comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Allow configuring video bitrate for Playwright CLI recordings

2 participants

@dcrousso@dgozman