Cacie Prins 62d189b7a3 perf: experimental "fast mode" for visibility checks (#32801)
* migrate visibility tests to static fixtures

* clean up the html a little bit, remove ref to experimentalFastVisibility

* Delete packages/driver/cypress/e2e/dom/visibility-migration.md

* Update visibility.ts

* fix assertion

* fix incomplete

* stress test for visibility

* splits up visibility into multiple files for easier grokking

* middle of refactoring to un-hide the recursion

* notes to help with visibility efficiencyn

* revert splitting - these fns are too interconnected to split without resolving circular dependencies

* impl new experimental visibility algo

* new experimental useFastVisibility config option

* check four corners of rect instead of just center

* num-tests-in-memory=0

* rm ref virtuoso

* rename file to be in line with its export

* clean up jquery unwrapping

* some more cleanup

* Delete visibility-algorithm.dot

* Delete visibility-algorithm.svg

* rm unused export

* Update fastIsHidden.ts

* edit

* enable fast visibility mode in visibility related e2e tests

* enable clip-path test for fast visibility

* memoize visibleAtPoint

* fix config option typedef

* fix select option/optgroup delegation

* add note re: shadow dom

* add migration guide, additional edge cases, behavior table

* add note that the virtual scroll stress test causes browser to crash when experimentalFastVisibility is not enabled

* fix types

* add best practices note re: shadow dom

* better performance tests

* extract assert/assertDom to separate file

* fix merge

* update tests

* update algo diff

* correct entries

* revert jquery typechanges

* more ts fix

* various fix

* note firefox inconsistency vs chromium with 0-dim els

* add cfg key to system test snapshot

* ts

* more ff discrepancy

* quick fix memo

* fix regression with chained assertions

* fix jqueried ref, fix obj key in memoization

* manual chck for primitives instead of checking for "object" typeof

* changelog

* add i18n copy for experimentalFastVisibility, documented as a step to take in cfg/options.ts

* code review

* wsp cleanup

* debug lib
2025-12-16 11:09:16 -05:00

Cypress Logo

Documentation | Changelog | Roadmap

The web has evolved. Finally, testing has too.

Fast, easy and reliable testing for anything that runs in a browser.

Join us, we're hiring.

npm Discord chat StackShare

What is Cypress?

Why Cypress Video

Installing

npm version

Install Cypress for Mac, Linux, or Windows, then get started.

npm install cypress --save-dev

or

yarn add cypress --dev

or

pnpm add cypress --save-dev

installing-cli e1693232

Contributing

cypress CircleCI - develop branch

Please see our Contributing Guideline which explains repo organization, linting, testing, and other steps.

License

license

This project is licensed under the terms of the MIT license.

Badges

Configure a badge for your project's README to show your test status or test count in the Cypress Cloud.

cypress

cypress

Or let the world know your project is using Cypress with the badge below.

Cypress.io

[![Cypress.io](https://img.shields.io/badge/tested%20with-Cypress-04C38E.svg)](https://www.cypress.io/)
Description
Fast, easy and reliable testing for anything that runs in a browser.
Readme MIT 976 MiB
Languages
TypeScript 54%
JavaScript 38.2%
Vue 4.1%
HTML 3.1%
SCSS 0.4%
Other 0.1%