* chore: fix issues with AUT discovery if for any reason the name is not present
* Update packages/server/lib/browsers/cdp_automation.ts
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* chore: bump firefox version we test against to 141
* account for unspecified sameSite which is now available in firefox 140
* fix expected error string for invalid cookie
* override FORCE_FIREFOX_CDP firefox 141
* fix cdp override in ff 141+
* maybe fix cookeie system tests? seem to time out locally
* set family as well as name
* fix system tests fore ff 141
* fix ff deprecation
* rm erroneous err param
* assume firefox is modern in cookies driver e2e test
* Update system-tests/lib/system-tests.ts
* we do still run tests against firefox 134
---------
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: Cacie Prins <cacie@cypress.io>
* fix: don't automatically remove requests when cdpRequestWillBeSentReceivedTimestamp is set to 0. Also, do not ass hashes to prerequest url as the urls do not have hashes when coming through the middleware
* Update packages/server/lib/browsers/bidi_automation.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* spike: cut over cy.url(), cy.hash(), cy.location(), cy.reload(), cy.go(), and cy.title() all to use the automation client to subvert the cross-origin boundary
refactor backend client
* chore: add unit tests for cy url, hash, location, title, reload, and go changes to make it easier to test minor behavior changes
bump cache
* fix issues with cy in cy tests. refactor aut discovery code as the frame tree gets stale on reload
* update comments from code review
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* feat: replace tsnode with tsx for parsing user configuration in all cases
* bump ubuntu images from node 18 to 20 as node 18 is not supported in cypress 15 and allows us to not include the 18.19.0 workaround to use --import with tsx inside the ProjectConfigIpc
* fix: issues finding tsx on windows as it needs the file:// protocol as absolute drive paths are not recognized as a file protocol in the node context
* make sure to filter out stack code correctly for windows
* fix: fix flake from windows on reporter menu not expanding (unrelated to this PR and should be merged into develop)
* chore: update changelog with all issues tsx cutover closes
* fix merge conflicts
* chore: add regression tests for cypress projects that previously did not work but now do with tsx
* build all binaries
* chore: address issues from code review
* update changelog
* remove todo comment on testing legacy migration with tsx
* refactor codeFrame calculation into a util function and add a unit test
* updated node versions in project config ipc tests to remove 18 and test threshold / latest values. Removed redundant comments on ts-node.
* activate main window before attempting to detect aut iframe active element
* add todo about refactor
* changelog
* system test for issue 31466
* no infinite max depth
* changelog
* changelog
* simplify
* additional test, better window switching logic
* dependency: upgrade mocha to 7.2.0 (#31423)
* dependency: upgrade mocha to 7.2.0
* changelog entry
* remove the it.only from the mocha patch changelog that is triggering our stop-only check from passing
* skip patches folder with stop-only check
* remove extra bracket
* Update protocol_spec to reflect new mocha line number for error stack trace
* chore: updating v8 snapshot cache (#31424)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31425)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31426)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: migrates plugin system test to a v3 extension (#31434)
* chore: Update Chrome (stable) to 135.0.7049.52 (#31428)
* chore: Update Chrome (stable) to 135.0.7049.52
* empty commit
---------
Co-authored-by: cypress-bot[bot] <41898282+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
* chore: bump Firefox to 137 (#31431)
* chore: bump Firefox to 137
* use 137 version? weird.
* just kidding, major version only has 1 zero after it................
* dependency: update server to mocha 7.2.0 (#31432)
* dependency: update server to mocha 7.2.0
* Add PR to changelog
* chore: updating v8 snapshot cache (#31437)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31438)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31439)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: Update Chrome (beta) to 136.0.7103.17 (#31448)
* chore: Update Chrome (beta) to 136.0.7103.17
* empty commit
---------
Co-authored-by: cypress-bot[bot] <41898282+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* refactor: lifts toPosix to its own file, removes circular dependency between stack_utils and source_map_utils (#30983)
* refactor: lifts toPosix to remove circular dependency between stack_utils and source_map_utils
* camelCase to snake_case
* rm duplicated file
* internal: (studio) make the protocol database accessible to studio (#31443)
* internal: (studio) make the protocol database accessible to studio
* PR comment
* chore(deps): update dependency patch-package to v8 (#31451)
* chore(deps): update dependency patch-package to v8
* empty commit
* add types to handle json-stable-stringify dep change
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* chore: fix deprecation warnings and refactor react reporter to use functional components and hooks (#31284)
* chore: fix deprecation warnings and refactor react reporter to use functional components with hooks
* chore: update code to reflect feedback from code review
* fix issues with scrollIntoView() on updated component and refactor isOpen logic in collapsible to not attempt to sync state
* fix issues with tests after refactor
* see if event registration fixes windows flake
* chore: update snap-shot-core patch package file to match version (#31449)
* chore: update snap-shot-core patch package file to match version
* update circle cache
* experiment with removing .md from yarnclean
* add .md back to yarnclean
* bust circle cache
* remove .md files being cleaned from yarn to get around patch-package issue
* print size of cache
* try out the size of the .md
* remove md from yarnclean
* UPdate to version without removal of markdown files
* chore: updating v8 snapshot cache (#31460)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31462)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* chore: updating v8 snapshot cache (#31461)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
* feat: cy.press() (#31398)
* wip - cy.press() command
* cy command for dispatching key press/down/up events
* unit tests and failure cases for cy.press()
* Cypress.Keyboard.Keys definition; fix command log message
* add keys to the internal keyboard type
* auto-focus in cdp
* ensure aut iframe is focused before dispatching key events in bidi browsers
* update tests for cdp focus
* fixed tests for bidi
* lint
* fix type ref in .d.ts
* linting
* skip press() driver test in ff below v135
* try all contexts for frame before failing due to missing/invalid context id
* ensure error is error before accessing props
* skip press driver test in webkit
* changelog
* debug automation middleware invocation for firefox flake
* debug
* cache update
* use bidi automation middleware from connectToNewSpec rather than constructor
* more comprehensive logging
* debug socket base, additional debug in automation
* install firefox automation middleware on setup as well as connectToNewSpec
* unit tests for firefox-utils
* proper calledWith
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* docs: update contributing requirements for corepack (#31463)
* chore: remove `du` check (#31465)
* chore: use different args for `du` in win
* rm du command for build
* chore: release 14.3.0 (#31467)
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Cacie Prins <cacieprins@users.noreply.github.com>
Co-authored-by: cypress-bot[bot] <41898282+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
* wip - cy.press() command
* cy command for dispatching key press/down/up events
* unit tests and failure cases for cy.press()
* Cypress.Keyboard.Keys definition; fix command log message
* add keys to the internal keyboard type
* auto-focus in cdp
* ensure aut iframe is focused before dispatching key events in bidi browsers
* update tests for cdp focus
* fixed tests for bidi
* lint
* fix type ref in .d.ts
* linting
* skip press() driver test in ff below v135
* try all contexts for frame before failing due to missing/invalid context id
* ensure error is error before accessing props
* skip press driver test in webkit
* changelog
* debug automation middleware invocation for firefox flake
* debug
* cache update
* use bidi automation middleware from connectToNewSpec rather than constructor
* more comprehensive logging
* debug socket base, additional debug in automation
* install firefox automation middleware on setup as well as connectToNewSpec
* unit tests for firefox-utils
* proper calledWith
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* cdp command impl for tab dispatch
* misc: add automation command to cdp for forthcoming tab key
* changelog
* skip non chromium browsers for press() driver test
* fix test
* misc: bidi automation impl for key press
* amend types
* log, but do not fail, if key:press is not supported
* rm extraneous debugs
* rm more debug
* changelog
* comments
* revert to keyDown from rawKeyDown, remove delay
* expand changelog to include bidi
* changelog
---------
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
* fix: make sure to remove prerequests when bidi interceptor is removed and requests are still in flight from the previous spec/tab [run ci]
* fix changelog
* patch axios for v8 snapshots
* export httpsAgent and httpAgent discretely
* set up axios interceptors for logging and error response transformation
* use unified error transform fn
* create instance api reqs, timeouts, tests
* move axios middleware to its own dir & refactor
* refactor error handling, enable retries in createInstance
* fix invocation of createInstance - not caught by ts because record.js is js
* retry on 500 - according to system test, this is expected behavior
* resolve snapshots, report retries to stdout
* fix cdp connection usage of shouldRetry due to newly unknown error type
* axios doesnt fully follow RequestOptions shape when adding request to https agent
* note why uri is treated as optional
* hail mary on getting axios to work with v8 snapshots
* update lockfile, force no-rewrite on more axios files
* attempt to fix v8 snapshots
* add verbose debugging to api request logging
* enable verbose api debugging on server unit tests
* fix nock pattern for createInstance
* remove request logging unit test - sinon/mocha does not assert correctly
* fix a few unit tests
* use runAllAsync rather than waiting an arbitrary time for sinon fake timer
* move create_instance spec to ts file, remove redundant test
* rm debug on ci
* clarify comment on change inpackages/network
* correct .uri property on patched RequestOptions to be optional
* rm unused log_requests.ts, DRY error messages
* resolve types with record.ts migration
---------
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
* feat: implement BiDi automation client base (without full extension cutover). [run ci]
* chore: implement suggestions from code review. [run ci]
* update error text to be in line with documentation
* address comments from code review
* address comments from code review
* make bidi, cdp, and both active protocols object enumerations to make the code easier to read
* address additional comments from code review
* fix errors from refactor
* update firefox warning
* chore: gracefully handle CDP address not returning from webdriver capabilities, prompting a browser relaunch
Update packages/server/lib/browsers/firefox.ts
add inline comment to github comment thread [run ci]
strongly type errors more consistently [run ci]
* add test for firefox cdp error for visual snapshot [run ci]
* 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 https://github.com/cypress-io/cypress/pull/30331/commits/6d7ba97c2562054e11983e8bfed576f0fa3ee37b
* 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>
* 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>
* 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
* 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>