Commit Graph

1335 Commits

Author SHA1 Message Date
Bill Glesias eef8cd225a chore: rename video processing events to capture/compress (#26800)
* chore: change processing nomenclature to compressing when printing the run.

* chore: rename 'capturing of' to 'capturing'
2023-05-19 13:01:59 -04:00
Matt Henkes 50ffd5ee1d chore: add telemetry to the proxy (#26695)
* chore: set up instrumentation and instrument middleware

* chore: set up console exporter

* chore: add parent span option to telemetry package

* chore: set up telemetry verbose mode

* chore: instrument the network proxy - part 1

* chore: make sure to terminate spans when request is aborted

* fix telemetry, create/end the request middle prior to sending the outbound request

* avoid telemetry ts build step, create entrypoint into packages/telemetry using TS conventions

* allow env vars to be "true" or "1"

* when creating child span, inherit their attributes directly from the parent

* create custom honeycomb exporter and span processor to log traces

* remove duplicate code that's already called in this.setRootContext

* cleanup

* more clean up

* update honeycomb network:proxy attributes, update console.log message

* yarn lock

* chore: remove performance API in middleware

* chore: end response on correct event

* recursively gather parent attributes on close

* added key and some clean up

* github action detector, move verbose into index, verbose log commands

* some tests

* clean up honeycomb exporter

* some renaming

* testing console trace link exporter

* Don't lose the top span when running in verbose.

* link to the right place for prod/dev

* changes to verbose to make sure it is read in the browser

* Apply suggestions from code review

* pass parent attributes between telemetry instances

* default to false

* 'fix' build issues

* src not dist

* add back on start span

* once more with feeling

* Fix some tests

* try this i guess

* revert auto build

* Apply suggestions from code review

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* support failed commands

* Address PR comments

* Address PR Comments

* error handling

* handle all the errors

---------

Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2023-05-17 08:32:10 -05:00
Ryan Manuel 8ed09aaf9b fix: unify cdp approach to fix devtools in electron (#26573) 2023-04-27 14:40:29 -05:00
Leight Johnson a196fb49d4 fix: Use SEMAPHORE_GIT_WORKING_BRANCH to associate Cloud recording to current branch (#26333)
* use SEMAPHORE_GIT_WORKING_BRANCH

* fix issue-26309

* fix issue-26309; update changelog

* Update cli/CHANGELOG.md

---------

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2023-04-10 14:16:33 -04:00
Matt Henkes 62f58e00ec chore: Add open telemetry to cypress to allow us to monitor the performance of the app overtime (#26305)
* initial commit, a kinda working prototype

* Ready to test in CI

* "SyntaxError: Cannot use import statement outside a module" I blame VS code for always inserting the wrong dependency

* try using built js instead of the ts file

* typescript fixes?

* get version correctly, don't use optional chaining in child process.

* trying this, idk

* try running telemetry for driver-integration-tests-chrome

* fix missing spans, add more attributes for some spans

* fix missing spans and add suite spans

* types

* Remove un-used require

* remove spans for describe blocks in favor of the full title for tests

* migrate to sync resource discovery, start new custom exporters for spans

* encrypted

* localhost

* don't do things on child process

* latest changes

* update server start span time / add v8 snapshot span & update command span names

* prepare for sync

* don't send blank key

* make telemetry work again for sending directly to honeycomb

* web-socket exporter

* Add in IPC exporter and message the child process before disconnecting

* Use the cloud api by default

* move cloud span exporter into telemetry package

* shutdown fixes

* fix enabled

* improve types

* run in ci

* yml is the worst

* type!

* add spans for timing insights for visible areas of improvement

* type errors

* lets try sending data to staging

* types

* types again

* remove problematic attributes

* clean up exporters

* i like this better even though it doesn't seem to matter much

* some self review cleanup

* Update comment

* add debug messages

* mocha tests

* actually exit with the right code... oops

* simple mistake... have to look into how to fix with ts...

* try this i guess

* don't return undefined

* read me diagram

* color?

* no rect

* moar diagram

* docs!

* formatting

* build more binaries

* Supposedly fix cypress in cypress test failures

* test 'fixes'

* try this instead

* do not transpile cypress packages dir

* lets try escaping our regex string

* Add some diagnostics to help test the built binary....

* try a more complex solution

* fix tests probably

* just ignore the specific file

* fix unit tests

* cr updates

* Apply suggestions from code review

Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Pr updates

* don't change the command queue

* move encoding and decoding telemetry context for ipc to the telemetry package

* build darn it

* plead for mercy from the testing gods, i merely wished to have named test reports, but clearly i have overreached.

* pr updates, send record key

* pr review

* optional chaining fails tests

* Apply suggestions from code review

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* tests for cloud-span-exporter

* bad merge

* adding tests for the remaining exporters

* note

* docs

* Correctly set test under the current run span for component testing

* gate sending the message.

* pr updates

* finally, fingers crossed.

---------

Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2023-04-08 21:18:02 -05:00
Alejandro Estrada a5b0cad9f0 fix: capture PR number for Azure (#26215)
* feat: capture PR number for Azure

* Update changelog

* Update changelog

* Update changelog

* Update cli/CHANGELOG.md

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>

* Remove space

* Update cli/CHANGELOG.md

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>

* Update CHANGELOG.md

---------

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2023-03-29 16:49:42 -05:00
Alejandro Estrada 98c855e462 chore: capture BUILDKITE_RETRY_COUNT (#25750)
* misc: Capture BUILDKITE_RETRY_COUNT

* Add changelog

* Update code

* Update cli/CHANGELOG.md

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>

---------

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2023-03-22 13:13:52 +10:00
Emily Rohrbough 1c5a67fa92 fix: handle async before:spec event handler (#26055)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2023-03-13 08:53:59 -05:00
Ryan Manuel 20cd105252 chore: rewrite flaky server integration test (#26070) 2023-03-10 10:20:08 +10:00
Chris Breiding ed69f0ba67 fix: Fix issues with Cypress.require() and TypeScript (#25931)
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
2023-03-08 16:25:28 -05:00
Brian Mann 2a17efac74 feat: improve stability when recording (#25837)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
2023-02-24 16:32:36 -06:00
Chris Breiding 8eb60b6ad5 fix: Ensure orphaned browser instance is killed before connecting to a new one (#25898) 2023-02-22 15:47:56 -05:00
Zach Bloomquist 4a47081c68 test: clean up skipped flaky tests (#25671) 2023-02-22 15:56:33 +00:00
Bill Glesias ab60ed4079 fix: duplicate and expired cookies (#25761)
* chore: add regression tests for duplicate cookies and bad expiry times

* avoid prepending domain with dot for cookies that are set with the server side jar. This is to avoid the cookie being duplicated if it is set or overridden in a different context (request that can actually set the cookie or via document.domain)

* feat: use cookie.toString() in the cookie patch to more accurately set cookies on the document, which should include other properties besides key=value

* fix: add logic to handle expired cookies in the document.cookie patch, as well as in CDP

* chore: build binary for cookie fixes for users to test

* chore: change name of fixture to something more accurate

* chore: comment why we are using the toughCookie toString method in the patch

* [run ci]

* chore: add changelog entry

* [run ci]

* fix: revert back to key=value when getting document.cookie as those are the only values are displayed (oversight on my end)

* [run ci]

* chore: make compatible with cypress.require

* fix: add tests for hostOnly/non hostOnly cookies to make sure property gets sent up to automation client correctly. No longer need custom cookie prop to determine destination

* [run ci]

* fix: stale unit test

* chore: adjust comments

* [run ci]

* fix: bad domain logic

* [run ci]

* chore: remove irrelevant comment

* [run ci]

* fix: adjust cookie login text to spec hostOnly cookie within the cookie patch. This should yield the same behavior as we are bound to same origin within the spec bridge

* [run ci]

* [run ci]

* fix: allow for cookies on request of same key to take precedence over cookies in the jar, regardless of how many hierachy cookies exist in the jar

* chore: fix cookie misc tests for cy.origin (dont run cy.origin)

* [run ci]

* chore: skip misc cookie tests in webkit as headless behavior doesn't clear cookies between tests correctly

* Revert "fix: allow for cookies on request of same key to take precedence over cookies in the jar, regardless of how many hierachy cookies exist in the jar"

This reverts commit 17de1883ab.

* [run ci]

* chore: split changelog entry into two parts

* chore: update logic to remove else statement and add comments

* [run ci]

* chore: readd windows snapshot branch in workflows

* [run ci]

* chore: fix workflows from bad merge

* [run ci]

* Revert "chore: split changelog entry into two parts"

This reverts commit 4352ef5f3e.

* [run ci]
2023-02-16 09:34:03 -05:00
Tim Griesser d26d877db8 chore: internal request preflight (#25772)
---------

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: cypress-bot[bot] <2f0651858c6e38e0+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
2023-02-15 08:20:57 -05:00
Alejandro Estrada 19e091d0bc feat: add --auto-cancel-after-failures flag (#25237)
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Ryan Pei <ryanppei@gmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
2023-02-10 10:32:54 -06:00
Tim Griesser 1d8d2f9787 refactor: remove unused cloud routes (#25584)
* chore: remove unused cloud routes

* remove project references in unit tests

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2023-01-26 10:54:11 -05:00
Matt Schile 8435cdc952 fix: Revert "fix: adding emergency garbage collection for chromium-based browsers" (#25546) 2023-01-23 12:09:52 -07:00
Matt Schile 83b2cc1f74 fix: adding emergency garbage collection for chromium-based browsers (#25521) 2023-01-19 14:01:18 -07:00
Matt Schile d1dc1258ea fix: improve memory management for chromium-based browsers (#25462) 2023-01-18 15:35:57 -07:00
Bill Glesias 478407ec38 fix: revert CSP header and script-src addition (#25445)
* Revert "feat: Do not strip CSP headers from HTTPResponse (#24760)"

This reverts commit 0472bb9cdb.

* run ci
2023-01-13 10:59:00 -05:00
Preston Goforth 0472bb9cdb feat: Do not strip CSP headers from HTTPResponse (#24760)
Co-authored-by: Zach Bloomquist <git@chary.us>
Closes https://github.com/cypress-io/cypress/issues/1030
2023-01-11 17:37:45 +00:00
Bill Glesias d470f59ea2 feat: experimental skip domain injection (#25307)
* feat: set up experimentalUseDefaultDocumentDomain to disallow document.domain overwritting

* use default domain around experimentalUseDefaultDocumentDomain in main iframe and spec bridge iframes. Also adapt CORS policy to use same-origin if experimental flag is set

* run ci

* fix: add insertion of experimental flag where is was needed/missing

* chore: add system test to exercise experimental flag for expected behavior

* fix: fix issues with template updates to conform to squirrelly v7

* fix: update config tests to include new experimental flag

* run ci

* fix: trailing whitespace [run ci]

* chore: update snapshot

* run ci

* fix: update proxy unit tests to account for experimentalUseDefaultDocumentDomain

* run ci

* fix: Allow component tests with special characters in filepath (#25299)

feat: cut over experimental flag to take list of known problematic domains via string/glob pattern

run ci

chore: update system test and fix broken config

* fix: fix server unit and integration tests. integration tests should no longer use google to test against injection as we do not inject document.domain on google domains

* run ci

* run ci

* fix: server integration tests where google documents are expected to receive document.domain injection. Kept test same by changing URL

* run ci

* fix: update server test with mssing unupdated assertions

* run ci

* fix: turn off experimental flag by default while recommending sane defaults to users to configure

* run ci

* chore: fix typings [run ci]

* run ci

* chore: make experiment an e2e option only

* run ci

* chore: address comments in code review

* chore: rename experimentalUseDefaultDocumentDomain to experimentalSkipDomainInjection

* fix regression in shouldInjectionDocumentDomain utility function and add unit tests

* run ci

* chore: rename documentSuperDomainIfExists to superDomain [run ci]

* chore: address comments from code review

* chore: just pass opts through to policyForDomain

* run ci

Co-authored-by: Mike Plummer <mike-plummer@users.noreply.github.com>
2023-01-09 10:00:05 -05:00
Zach Bloomquist 1b1ed9cd49 chore: improve linting (#25235) 2022-12-29 17:26:13 +00:00
David Rowe 285e2b3b74 fix: updates to ci params sent to cloud for jenkins (#25036)
* feat: updates to ci params sent to cloud for jenkins

* fix: add more context around git commits via change trigger for jenkins pipelines

* chore: test cleanup
2022-12-29 08:58:14 -06:00
Zach Bloomquist ebf57a82e6 test: change some skipped tests to use retries (#24124)
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
2022-12-20 01:56:10 +00:00
Zach Bloomquist e02f6bf905 feat: add resourceType support to cy.intercept() on req/routeMatcher (#25075)
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2022-12-14 17:40:53 +00:00
Alejandro Estrada 7154fc8dcd feat: Improve CLOUD_PARALLEL_GROUP_PARAMS_MISMATCH error message (#24799)
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
2022-12-12 11:47:57 -06:00
Chris Breiding fc43cecdad feat: Add cy.getAllCookies() and cy.clearAllCookies() (#25012) 2022-12-08 13:12:32 -05:00
Bill Glesias ca01e29ab8 fix: re include document domain injections for spec-bridge and injection and disable origin-agent-cluster (#25013)
* Revert "chore: remove document.domain usage for cross-origin testing (#24945)"

This reverts commit a3d3074e70.

* fix: set origin-agent-cluster=?0 for the spec bridge iframe

* re apply comment that was reverted in 1fa1246b5c

* Update packages/server/lib/routes-e2e.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* chore: update document.domain immutable target from chrome 106 -> chrome 109

Co-authored-by: Matt Schile <mschile@cypress.io>
2022-12-06 17:52:48 -05:00
Chris Breiding a3d3074e70 chore: remove document.domain usage for cross-origin testing (#24945) 2022-12-02 12:08:12 -05:00
Matt Schile 98efdf45b3 feat: Added experimentalOriginDependencies to gate dependencies support within cy.origin (#24931)
* adding experimentalOriginDependencies flag

* update system tests
2022-12-01 15:40:05 -06:00
Chris Breiding 27b0f2186f fix: Use hostname as default domain for cookie commands (#24692)
BREAKING CHANGE: Cookie commands now use the the hostname and not the superdomain for the domain by default. This may affect what cookies are returned/set/cleared by cookie commands.
2022-11-23 09:54:09 -05:00
Emily Rohrbough 79ea453764 chore(v12): merge develop into release/12.0.0 (#24705)
Co-authored-by: amehta265 <65267668+amehta265@users.noreply.github.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: mattvCypress <mattv@cypress.io>
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Jordan <jordan@jpdesigning.com>
Co-authored-by: Adam Stone <adams@cypress.io>
2022-11-18 16:02:31 -06:00
Chris Breiding e4be9697bd Merge branch 'develop' into merge-develop-v12-2022-11-14-take-2 2022-11-14 13:57:38 -05:00
Matt Henkes 23299acc88 fix: Disallow same-superdomain-origin cy.origin blocks (#24569)
* fix: throw error if the cy.origin origin is in the same superDomainOrigin as top.

* testing test tweaks

* 'fix' cypress in cypress tests

* Inject cross origin in google subdomains when not same-origin

* style tweaks

* Ensure strict same-origin check works for google.

* test fixes

* we don't need the location object when we just want the href.

* what is in a name?

* Address PR Comments
2022-11-09 08:29:27 -06:00
Ryan Manuel 8562cba558 feat: add reject unauthorized to api server calls and standardize CA usage (#24493) 2022-11-04 15:27:31 -05:00
Chris Breiding bf2fc3a848 feat: Add domain option to cookie commands (#24471) 2022-11-04 14:32:59 -04:00
Matt Henkes 2f18a8cbd2 fix: remove cypress.server.defaults, cy.server and cy.route (#24411)
* fix: remove server and route commands

* This won't totally pass but it's a step in the right direction.

* Should be down to only two failing tests due to abort.

* fix the alias.<thing> api for intercept to be equivalent to route.

* adjust timeouts to reduce flake, ideally

* skip xhr abort tests

* More clean up

* Increase timeout

* trick next version

* fix unit tests probably

* yeah sure

* Apply suggestions from code review

Co-authored-by: Blue F <blue@cypress.io>

* remove addXhrLog

* Remove more usage of XHR stemming from proxy-logging

* Remove a couple of files that found their way back with the merge from release/12.0.0

* remove more server types

* increase timeouts again to prevent flake

Co-authored-by: Blue F <blue@cypress.io>
Co-authored-by: Zach Bloomquist <git@chary.us>
2022-11-04 08:24:03 -05:00
Bill Glesias 6055af37b0 Merge branch 'develop' of github.com:cypress-io/cypress into release/12.0.0 2022-11-02 10:27:39 -04:00
Ryan Manuel b0c0eaa508 feat: introduce v8 snapshots to improve startup performance (#24295)
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
Co-authored-by: Tyler Biethman <tbiethman@users.noreply.github.com>
Co-authored-by: Matt Henkes <mjhenkes@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Mark Noonan <mark@cypress.io>
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
Co-authored-by: Ben M <benm@cypress.io>
Co-authored-by: Zachary Williams <zachjw34@gmail.com>
Co-authored-by: astone123 <adams@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com>
Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Adam Stone <adams@cypress.io>
Co-authored-by: Blue F <blue@cypress.io>
Co-authored-by: GitStart <1501599+gitstart@users.noreply.github.com>
Co-authored-by: Mike Plummer <mike-plummer@users.noreply.github.com>
Co-authored-by: Jordan <jordan@jpdesigning.com>
Co-authored-by: Sam Goodger <turbo@tailz.dev>
Co-authored-by: Colum Ferry <cferry09@gmail.com>
Co-authored-by: Stokes Player <stokes@cypress.io>
Co-authored-by: Vilhelm Melkstam <vilhelm.melkstam@gmail.com>
Co-authored-by: amehta265 <65267668+amehta265@users.noreply.github.com>
2022-10-31 20:20:27 -05:00
Emily Rohrbough 8547f61029 chore: remove stale scaffold code & restore proejct-base unit tests (#24027)
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
2022-10-31 10:56:43 -05:00
Magnus 945c55163a fix: Prevent crash when running on read-only FS. (#24253)
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
2022-10-26 15:44:25 +00:00
Matt Schile 851552cebd fix: Revert "chore: set rejectUnauthorized for api calls (#24087)" (#24370)
This reverts commit d9c5e57672.
2022-10-24 17:01:28 -06:00
Matt Schile 69873ae988 chore: remove experimentalSessionAndOrigin flag (#24340)
BREAKING CHANGE: removed experimentalSessionAndOrigin flag. testIsolation defaults to strict
2022-10-24 08:49:13 -06:00
Matt Schile 0e62696a0e fix: add support for checking multiple hosts when connecting to CDP (#24155) 2022-10-10 21:45:48 -06:00
Bill Glesias 695dd275bc feat: same origin spec bridges (#23885)
* chore: enforce strict origin spec bridges

chore: refactor spec bridges to strictly enforce same origin

fix: wrap fullCrossOrigin injection around feature flag inside buffered response

* fix: do NOT set the initial cypress cookie inside the spec bridge as it is sending unecessary cookies

* chore: simplify the finding cypress in the injection code

* chore: change order in which callback fn is declared

* chore: add spec bridge performance issue to validation tests
2022-10-04 18:26:04 -04:00
Emily Rohrbough 4870b7f1bb chore(server): organization of cloud-specific files (#24028) 2022-10-04 10:49:02 -05:00
Matt Schile d9c5e57672 chore: set rejectUnauthorized for api calls (#24087) 2022-10-04 08:34:48 -06:00
Bill Glesias 3208af6b29 Merge branch 'develop' into feature/simulated-top-cookie-handling 2022-10-03 10:06:16 -04:00