* fix: ensure that requests to the same resource will be properly intercepted even if they are sent in rapid succession - run ci
* add changelog
* Update packages/net-stubbing/lib/server/middleware/request.ts
* PR comments
* misc: implement webdriver npm package as the client for the webdriver specification
* misc: go back to xulstore to save browser preferences [run ci]
* add changelog [run ci]
* chore: fix screenshot resolution [run ci]
* fix check-ts issues [run ci]
* run windows ci [run ci]
* run ci
* add comments [run ci]
* build binaries for webdriver impl [run ci]
* fix Cypress namespace missing issue. see 6d7ba97c25
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* chore: updating v8 snapshot cache
* patch edgedriver and preserve dependency paths for webdriver so they are included in the binary [run ci]
* fix issues with firefox profile not being created in open mode when old profile exists from previous cypress versions where they are no longer compatible [run ci]
* address comments that came up in review [run ci]
* see if this fixes extension test [run ci]
* make sure process kill emits the exit event [run ci]
* update geckodriver to include contribution patch to types [run ci]
* fix misapplication of geckodriver package (accidentally deleted) [run ci]
* empty commit to trigger ci [run ci]
* address comments from code review [run ci]
---------
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* fix: ensure that find-process does not error out due to a bad regex
* add changelog
* fix patch
* add a test
* add comment
* update comment
* blank
* blank
* remove foxdriver and force:gc/log:memory:pressure APIs
* Add changelog entry
* remove patched foxdriver file
* define types/spec FoundSpec without ref to Cypress namespace
* args
* chore: update unit test to still throw firefox cannot connect error if CDP fails to connect instead of the rtrying socket, which is no longer used when connecting to firefox
* Remove firefox-memory system test
---------
Co-authored-by: Cacie Prins <cacie@cypress.io>
Co-authored-by: AtofStryker <bglesias@gmail.com>
* feat: pass spec to beforeSpec to support better reporting on client side protocol errors
* Update packages/types/src/protocol.ts
Co-authored-by: Matt Schile <mschile@cypress.io>
* update changelog
---------
Co-authored-by: Matt Schile <mschile@cypress.io>
* misc: replace marionette-client with geckodriver as b2g marionette client is no longer supported [run ci]
* install pump [run ci]
* refactor to have geckodriver launch the browser and split out webdriver to own class [run ci]
fix other failing tests [run ci]
fix other failing tests [run ci]
pass env variables to firefox
* fix sigkill / treekill issues on windows with firefox binary being a dangling process [run ci]
* fix issue where browser in headed mode was not starting maximized [run ci]
* stub firefox_spec added deps different to get type inference
* add comment to geckodriver patch
* move capabilities to verbose debug statement
* update changelog
* address comments from code review
* add pending for changelog
* update with suggestions from code review
* remove debug enable as the process needs to be bound to stderr and stdout
* add comment on why we need to bind
* add comments from code review
* address comments from code review
* make sure sessionId is set
* new error message for stream stall upload failures
* new unknown error msg, extract printProtocolUploadError for testing, consolidatd args for stream stall msg
* rename env more appropriately, add sampling interval param to putProtocolArtifact
* default to 5000, override with app capture protocol value, override that with env var
* update snapshots
* fix math in upload stall error msg
* changelog
* update gql schema w/ new error msg, fix protocol tscheck
* update test to use fn for app capture supplied interval
* increase default stream stall interval to 10 seconds
* typos
* snapshots
* rename env var
* do not use user-supplied interval if it parses to NaN
* use the more standard makeErr for unknown/uncategorized upload error in visual snapshots
* rearrange upload stall error message
* fix typo
* changelog
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* catch Fetch.enable errors on extra target in browser CRI
* changelog
* changelog
* changelog
* Update packages/server/test/unit/browsers/browser-cri-client_spec.ts
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* use try/catch instead of .catch for wider unit test support
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
* Add localSettings field to OpenBrowser query
* Add wasBrowserSetInCLI as OpenBrowserList prop
* Emit launch on mount if --browser was passed
* Add entry to cli changelog
* Correct typo in changelog
* Add link to issue addressed
* Add pull request title
* Check if browser is already open before launch
* Moved features section to top of file
* Add reference to PR in changelog
* Correct unintended completion
* Add features to top of changelog
* Change prop name for convention
* Add isValidBrowser
checkes whether a cliBrowser is valid or not and
returns a boolean
* Add isValidBrowser to schema
* Use isValid browser
creates a function launchIfBrowserSetInCli that
will launch the browser if a valid browser flag
was passed to the cli
* Add to changelog.md
* Add global launch count to keep track project launch
* Make global count available to the launchPad
* Add description for globalLaunchCount
* Add globalCounnt to schema
* Remove unused import and remove unused prop
* Use launch function
* Import document and use query
* Add to changelog
* Add to existing features section
* Add to changelog
* Update changelog.md
* Add setter for launchCount and add tests
* Update changelog
* Remove extra bugfix title
* Update changelog
* Update changelog
* Update changelog
* Update changelog
* Update Changelog
* Update changelog
* Update Changelog
* Update changelog
* Fix changelog for line break error
* Update changelog
* Refactor to create single field for launching browser
* Update schema
* Refactor function to make use of single field
* Change launch count in beforeEach hook instead
* Clean up await in function
* Update changelog
* Add additional optional chaining for resiliency
* Use more precise browser launching query to fix silent bug
* Assert that launchProject hasn't been called when browser not found
* Update changelog
* Update cli/CHANGELOG.md
---------
Co-authored-by: Mark Noonan <mark@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* add failing system binary test [run ci]
* fix: leverage the --no-experimental-detect-module when node 22.7.0 and above is detected [run ci]
* Update cli/CHANGELOG.md
* use environment variable to mock stubbing out of typescript install in order to unit test as mocking the module seems near impossible to do correctly given the context [run ci]
* update changelog to include mention of experimental-detect-module
* make sure node version is set before comparing versions
* Revert "update changelog to include mention of experimental-detect-module"
This reverts commit 5ef8ef0e4c.
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* correctly determine current browser family from cy config in app event manager
* changelog
* rm unnecessary ts-ignore
* add type declaration to catch improper params to isBrowserFamily
* add check for msMatchesSelector so jquery does not add unload listener in chrome
add check for msMatchesSelector in jquery patch so unload is only added in ie
* run windows workflow on this branch
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* Add changelog entry
* Update check in "_moveCursorUpOrDown" to trigger "stepUp" and "stepDown" on supported input types
* Update "validateTyping" function to validate {upArrow} and {downArrow} arguments for cy.type() for input[type=date]
* Remove "datetime" entry from valid input types
* Update chars validation for inputs that support "stepUp" and "stepDown"
* Add missing input types to dom.html
* Add tests of {upArrow} and {downArrow} for all supporting input types
* Update CHANGELOG
* Fix CHANGELOG line position
* Fix link to issue in CHANGELOG entry
* Fix typo in CHANGELOG
* Fix typo in CHANGELOG entry
* Merge develop
* Update changelog
* Add assertions for {upArrow} and {downArrow} arguments of cy.type() action that check if "change" and "input" events are triggered
* Fix changelog to include ref to issue
* Update packages/driver/cypress/e2e/commands/actions/type.cy.js
* update changelog
* Actually this is a feature release
* Fix test cases that fail on CI environment.
* Fix failing test case in type.cy.js test suite
* Refactor 'type.cy.js' test suite to skip tests for input type "month" and "week" for Webkit and Firefox browsers due to missing support
* add new release to changelog
* Prevent tests for input[type=range] from running on webkit browsers
* Update changelog
* Fix changelog
* Suppress tests for certain types of input when running on Webkit browsers
* Update use of check of webkit browser for consistency
* Update packages/driver/cypress/e2e/commands/actions/type.cy.js
* Update packages/driver/cypress/e2e/commands/actions/type.cy.js
* Update packages/driver/cypress/e2e/commands/actions/type.cy.js
* Update packages/driver/cypress/e2e/commands/actions/type.cy.js
* Update cli/CHANGELOG.md
Fix typo in CHANGELOG header
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
---------
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
* fix: resolve files outside the project directory to the bundled directory via the directory path difference [run ci]
* update common ancestor code
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* feat: implement JIT component experiment [run ci]
* don't update the dev server unnecessarily if the run is cancelled [run ci]
* fix system test flake
* Update cli/types/cypress.d.ts
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update system-tests/projects/experimental-JIT/webpack/cypress/support/component-index.html
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Update system-tests/projects/experimental-JIT/vite/cypress/support/component-index.html
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* chore: ignore node_modules for webpack dev server
* be sure to end span when throwing error
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* Refactor connection logic to cri-connection
CDPConnection class instantiates a persistent event emitter, and creates
a CDP Client instance via connect(). When this client emits a disconnect
event, the CDPConnection will automatically attempt to reconnect, if the
connection was not intentionally closed and the connection is created with
the reconnect flag. It only listens to 'event' and 'disconnect' events itself,
making it easy to unsubscribe from events in the event of a disconnection,
helping ease mental load when considering potential memory leaks.
Because it uses its own persistent event emitter, event listeners added
to the CDPConnection do not need to be re-added when the client reconnects.
The CriClient itself no longer handles reconnection logic: it only reacts to
connection state changes in order to re-send failed commands and enablements
when the CDPConnection restores the CDPClient.
* changelog
* clean up event listeners before reconnecting
* changelog
* changelog
* changelog
* unit tests
* lift out of the remote-interface dir
* complete lift from /remote-interface
* further fix imports
* import
* fix disconnect behavior to make integration test pass
* Update packages/server/test/integration/cdp_spec.ts comment
* fix snapgen
* improve debug
* further debug improvements
* do not attach crash handlers on browser level cri clients, add tests
* adds bindingCalled listeners discretely, rather than relying on 'event', which does not trigger for them
* back out of main `event` listener, use discrete listeners, add integration test for service worker bindingCalled
* Revert "back out of main `event` listener, use discrete listeners, add integration test for service worker bindingCalled"
This reverts commit 4855120d42.
* changelog
* adds integration test for various ways to add cdp event listeners
* note in changelog this is a cypress server fix
* ensure enablement promises resolve after reconnect
* Update cli/CHANGELOG.md
Co-authored-by: Matt Schile <mschile@cypress.io>
---------
Co-authored-by: Matt Schile <mschile@cypress.io>