Remove redundant overwrite and file access from ScreenRecorder (#15352) - #3560
Merged
Conversation
Open the screencast output file in Page.ScreencastAsync before starting ffmpeg so overwrite policy is applied at file-create time (FileMode.Create vs CreateNew) rather than via unused ffmpeg -y/-n flags. Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
kblok
marked this pull request as ready for review
August 17, 2026 12:41
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
cursor Bot
pushed a commit
that referenced
this pull request
Aug 17, 2026
Page.ScreencastAsync already opens the output stream via AsyncFileHelper before constructing ScreenRecorder, so symlink and overwrite checks happen there. Re-opening the path in ScreenRecorder would double-open the file. Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
4 tasks
kblok
added a commit
that referenced
this pull request
Aug 17, 2026
* New Feature: Support FollowSymlinks option (#15335) Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com> * Add followSymlinks screencast symlink rejection test from #15352 Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com> * Fix Linux symlink detection and screencast followSymlinks errors File.GetAttributes follows symlinks on Unix, so ReparsePoint was never set and reject-symlink tests could no-op. Detect links with ResolveLinkTarget (and readlink on netstandard2.0). Open the screencast output file before launching ffmpeg so symlink rejection is thrown even when ffmpeg is not installed in CI. Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com> * Remove redundant ScreenRecorder file open after rebase onto #3560 Page.ScreencastAsync already opens the output stream via AsyncFileHelper before constructing ScreenRecorder, so symlink and overwrite checks happen there. Re-opening the path in ScreenRecorder would double-open the file. Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
This was referenced Aug 18, 2026
This was referenced Aug 26, 2026
sondresjolyst
pushed a commit
to sondresjolyst/garge-api
that referenced
this pull request
Aug 30, 2026
Updated [PuppeteerSharp](https://github.com/hardkoded/puppeteer-sharp) from 25.7.0 to 25.8.0. <details> <summary>Release notes</summary> _Sourced from [PuppeteerSharp's releases](https://github.com/hardkoded/puppeteer-sharp/releases)._ ## 25.8.0 ## What's Changed * chore: bump version to 25.8.0 by @kblok in hardkoded/puppeteer-sharp#3561 * Fix: launch browsers in detached mode on Windows to fix flakiness (#15339) by @kblok in hardkoded/puppeteer-sharp#3559 * Fix: computeSystemExecutablePath support validatePath (#15340) by @kblok in hardkoded/puppeteer-sharp#3557 * Remove redundant overwrite and file access from ScreenRecorder (#15352) by @kblok in hardkoded/puppeteer-sharp#3560 * New Feature: Support FollowSymlinks option (#15335) by @kblok in hardkoded/puppeteer-sharp#3558 **Full Changelog**: hardkoded/puppeteer-sharp@v25.7.0...v25.8.0 Commits viewable in [compare view](hardkoded/puppeteer-sharp@v25.7.0...v25.8.0). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Aug 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements changes from puppeteer/puppeteer#15352 (puppeteer-core v25.8.0).
Upstream
File creation and overwrite policy move out of
ScreenRecorder. The output stream is opened before ffmpeg starts. Redundant ffmpeg-y/-nflags and in-recordermkdir/pathhandling are removed.PuppeteerSharp
Page.ScreencastAsynccreates the parent directory and opens the output file before constructingScreenRecorderoverwrite: falseusesFileMode.CreateNew(fails if the file exists)ScreenRecorderonly writes ffmpeg stdout (pipe:1) to the provided stream and disposes it on stop"should reject screencast when overwrite is false and file exists"The symlink screencast test from this upstream PR needs
SetFollowSymlinksfrom #15335 and is not included here.