-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: everyNthFrame
should only be applied for Chrome 89+
#18392
Conversation
Thanks for taking the time to open a PR!
|
@@ -273,7 +274,7 @@ const _maybeRecordVideo = async function (client, options) { | |||
client.send('Page.screencastFrameAck', { sessionId: meta.sessionId }) | |||
}) | |||
|
|||
await client.send('Page.startScreencast', screencastOpts) | |||
await client.send('Page.startScreencast', browserMajorVersion >= CHROME_VERSION_WITH_FPS_INCREASE ? screencastOpts() : screencastOpts(1)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: In general, I try to avoid creating function overloads for stuff like this or doing boolean logic in the function declaration (like in screencastOpts()
). But I get why you wrote it the way you did, and it passes lint, so I won't nit-pick too hard.
Test summaryRun details
View run in Cypress Dashboard ➡️ Flakiness
This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Dashboard |
* develop: (31 commits) fix: `everyNthFrame` should only be applied for Chrome 89+ (#18392) docs: General updates to contributing guide (#18283) chore: Update Chrome (beta) to 95.0.4638.40 (#18389) chore: use circleci timings split for e2e tests (#18367) fix: fixed title (#18370) chore(deps): update dependency electron to v14 🌟 (#18384) chore(server): share client route (#18215) fix: Prevent Cypress from crashing when argument parsing "spec: {}" (#18312) chore: update husky dev dependency to v7 (#18345) feat: add defineConfig function to help type config (#18302) chore: Update Chrome (stable) to 94.0.4606.71 (#18324) feat: allow to use TypeScript in the config file (#18300) allow select to be called with empty array (#18329) fix(vite-dev-server): windows `supportFile` + preserve optimize entries (#18286) chore: fix semantic-release dry run (#18332) fix(driver): improve status_code_flags_invalid error message (#18316) chore(deps): update dependency electron to v13.5.0 🌟 (#18318) chore: Update Chrome (stable) to 94.0.4606.61 and Chrome (beta) to 95.0.4638.32 (#18229) fix(proxy-logging): use constant consoleProps object (#18207) feat(driver): Add "overwrite" option to cy.screenshot() (#18280) ...
* develop: (33 commits) fix: remove .json check from require_async, prevent child_process spawn (#18416) percy snapshot the tooltip visually, prevent it from being hidden fix: `everyNthFrame` should only be applied for Chrome 89+ (#18392) docs: General updates to contributing guide (#18283) chore: Update Chrome (beta) to 95.0.4638.40 (#18389) chore: use circleci timings split for e2e tests (#18367) fix: fixed title (#18370) chore(deps): update dependency electron to v14 🌟 (#18384) chore(server): share client route (#18215) fix: Prevent Cypress from crashing when argument parsing "spec: {}" (#18312) chore: update husky dev dependency to v7 (#18345) feat: add defineConfig function to help type config (#18302) chore: Update Chrome (stable) to 94.0.4606.71 (#18324) feat: allow to use TypeScript in the config file (#18300) allow select to be called with empty array (#18329) fix(vite-dev-server): windows `supportFile` + preserve optimize entries (#18286) chore: fix semantic-release dry run (#18332) fix(driver): improve status_code_flags_invalid error message (#18316) chore(deps): update dependency electron to v13.5.0 🌟 (#18318) chore: Update Chrome (stable) to 94.0.4606.61 and Chrome (beta) to 95.0.4638.32 (#18229) ...
* unified-desktop-gui: (40 commits) feat: index.html configurability and storybook support (#18242) fix: remove .json check from require_async, prevent child_process spawn (#18416) percy snapshot the tooltip visually, prevent it from being hidden fix: failing tests from #18372 (#18414) fix: `everyNthFrame` should only be applied for Chrome 89+ (#18392) feat(app): render spec list, command log, iframe (#18372) fix: drag and drop to be correct directory (#18400) refactor: Add GitDataSource, FileDataSource, toast for errors (#18385) docs: General updates to contributing guide (#18283) Add shorter --ct alias for --component Add --e2e and --component CLI options chore: Update Chrome (beta) to 95.0.4638.40 (#18389) chore: use circleci timings split for e2e tests (#18367) fix: fixed title (#18370) chore(deps): update dependency electron to v14 🌟 (#18384) chore(server): share client route (#18215) fix: Prevent Cypress from crashing when argument parsing "spec: {}" (#18312) chore: update husky dev dependency to v7 (#18345) feat: add defineConfig function to help type config (#18302) chore: Update Chrome (stable) to 94.0.4606.71 (#18324) ...
Co-authored-by: Zach Bloomquist <[email protected]>
User facing changelog
Capturing videos in Chrome versions earlier than 89 will no longer result in choppy video and skipped frames.
Additional details
We introduced capturing everyNthFrame to reduce the number of frames captured since Chrome began capturing more frames in Chrome 89+ (to help with performance). But the fix was applied broadly across all Chrome versions so that when running Cypress in Chrome 87, for example, the video will have a lot less frames and look choppy.
This PR removes using
everyNthFrame
if the Chrome version is less than 89, so the videos will have the correct number of frames and no longer be choppy.Previous behavior (everyNthFrame applied to older Chrome versions, frames are skipped so the user cannot even see the end of the test):
spec.js.mp4
Current behavior (everyNthFrame not applied for older Chrome versions, frames are not skipped):
spec.js.mp4
PR Tasks
cypress-documentation
?type definitions
?cypress.schema.json
?