Commit Graph

106 Commits

Author SHA1 Message Date
Bill Glesias
cd2fde9047 fix: misc cy origin cleanup (#23914)
* chore: remove cannot_visit_previous_origin error message as it is no longer used

* fix: wrap MaybeEndRequestWithBufferedResponse fullCrossOrigin check around feature flag
2022-09-21 16:14:19 -04:00
Bill Glesias
fd941023a2 fix: properly replace integrity tags in script resources when experimentalModifyObstructiveThirdPartyCode is true (#23820)
* test: add failing unit test for expected behavior

* fix: add regex to strip out dynamic setAttribute integrity setting when modifyObstructiveThirdPartyCode is enabled

* fix: properly replace integrity tags inside script resources when experimentalModifyObstructiveThirdPartyCode is true

* test: fix regex rewritter to handle a few other cases of rewriting
integrity. Now accurately applies to other broad strokes

* rename html integrity re to general as this replaces both html and javascript integrity tags in certain cases

* chore: rephrase comments in regex rewriter for MO third party code
2022-09-20 16:03:17 -04:00
Emily Rohrbough
344ee2145e Merge branch 'develop' into cache-sessions-server 2022-09-15 13:08:47 -05:00
Matt Henkes
6ee305ba41 feat: Allow cy.visit to visit cross origin sites. (#23297)
* Initial async changes

* Small fixes and test updates.

* updating tests

* Fixes for cookie login tests

* remove the onlys

* Most tests passing

* Fix driver tests?

* fix firefox test?

* fix unit tests

* fix tests??

* a better check

* fix integration tests

* minor cleanup

* Comment out tyler fix for 10.0 origin issue

* also fix integration tests

* remove fixmes

* Adding Retries for cookie actions. May break other error tests.

* Address (some) PR comments

* update to warn about cross origin command AUT in assertions

* Fix type errors

* Move document.cookie patch to injection

* Adding iframe patching.

* forward errors prior to attaching

* Add error message when using visit to visit a cross origin site with the onLoad or onBeforeLoad options.

* Attempt to fix test errors.

* more fixes, but not all

* use the origin policy

* Fix types

* more fixes

* consider chromeWebSecurity when checking if you can communicate with the AUT

* firefox

* prevent hangs if before unload happens after on load.

* Fix some ToDos

* code cleanup

* remove quotes

* Code review changes

* more cr changes

* fix tests possibly

* for realz this time

* roll back change

* Fix some flake

* Fix flakey xhr test hopefully.

* oops, forgot communicator changes. need those.

* modify error message to not lose the original error

* read config right derp

* simpler check

* no unused vars

* don't put config on window

* Make isRunnerAbleToCommunicateWithTheAUT a util function instead of attaching it to cypress.

* fix a race condition maybe

* clear document when window is cross origin... we'll see if this breaks anything.

* Retry if querying against the wrong AUT

* use timeout

* Don't print the retrying string unless you're retrying due to command aut origin mismatch

* try handling undefined document

* Code review updates. What could go wrong??

* Apply suggestions from code review

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

* minor fixes

* try aut location and move the async state collection.

* fix flake around the loading message, probably

* Fix system tests and some flake around redirect counts.

* Improve error handler prior to attaching.

* Code review suggestions

* use a generated ID when promisifying post message

* clean up promise helper

* skip xhr test until issue is resolved.

* Apply suggestions from code review

Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>

* use state directly

* Apply suggestions from code review

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

* Update packages/driver/src/cypress/error_messages.ts

Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>

Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2022-09-15 12:28:27 -05:00
Emily Rohrbough
821150517d Merge branch 'develop' into cache-sessions-server
# Conflicts:
#	packages/app/src/runner/event-manager.ts
#	packages/runner/src/studio/studio-recorder.js
#	packages/types/src/driver.ts
2022-09-14 11:49:59 -05:00
Bill Glesias
b28bbcf56f feat: add MaybeSimulateSecHeaders code to prevent 403 issues with google (#23720) 2022-09-09 16:38:02 -04:00
Bill Glesias
9cdb33b4c6 fix: same site cookie context and duplicate cookies (#23438)
* test: refactor and add tests in the cors package

* fix: add areUrlsSameSite method to cookies package and fix
sameSiteContext calculation method and add tests

* fix: always use Set-Cookie optimistically whether or not we keep track of the cookie or not in the server side cookie jar

* chore: add failing unit tests for postpending cookies

* chore: add tough cookie integration tests to verify we append cookies appropriately to request header Cookie

* fix: do not duplicate cookies in request if existing in the cookie jar. Add additional tests to verify expected behavior

* test: add cookie behavior tests that document current expected behavior vs what spec behavior should/will be

* test: add misc tests that check for cookie order

* chore: update debug logs in request to discern cookies

* test: fix assertions in firefox as same-site cookies are actually set correctly

* fix test incorrect assertions. cookies currently exist in primary that are same-site regardless of browser

* skip SameSite=none test in firefox as we currently low insecure samesite none cookies in firefox

* chore: apply suggestions from code review

* chore: change expects to expect

* chore: add documentation for why we need an additional HTTPS port

* remove X-Set-Cookie fixmes
2022-09-07 23:19:52 -04:00
Emily Rohrbough
835d337103 round 1 2022-08-29 13:31:09 -05:00
Zachary Williams
7ddcc96388 chore: update typescript (#23523)
* chore: update typescript

* use String()

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>

* use String()

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>

* use String()

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
2022-08-25 09:31:02 +10:00
Zach Bloomquist
9bc3715c05 fix(proxy/prerequests): fix duplicate key behavior, fallthrough (#23227)
Co-authored-by: Blue F <blue@cypress.io>
2022-08-10 19:16:56 +00:00
Matt Schile
45ec63dbcd fix: Remove isAUTFrame qualification from cross origin cookie check (#22963) 2022-07-29 16:22:30 -06:00
Bill Glesias
5ff15046e2 feat: add experimentalModifyObstructiveThirdPartyCode flag for regex rewriter (#22568) 2022-07-22 08:30:20 -06:00
Chris Breiding
5573fe50b0 fix: Make cross-origin document.cookie work (#22594) 2022-06-30 14:03:21 -04:00
Blue F
172c364021 fix: Time out unmatched prerequests in proxy to avoid leaking memory (#22462)
* fix: Time out unmatched prerequests in proxy to avoid leaking memory (and generally improve proxy performance)

* Fix types, whoops

* More type fixes? Plz?

* One more TS attempt.

* Revert GQL changes that break TS

* Revert accidental config change

* Rewrote debug messages for clarity

* One more logging change

* Add test around pre-request garbage collection

* Add test around pre-request garbage collection

* Typo

* Typo again

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Clean up interval in prerequest tests

Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2022-06-23 10:12:49 -07:00
Chris Breiding
a21c942ee4 fix: Improve cross-origin cookie handling (#22320) 2022-06-23 11:00:52 -04:00
kshastri
4319daa7f4 fix: cypress removes custom status text/reason phrase from http response (#22061) 2022-06-16 14:19:05 -04:00
Zach Bloomquist
86b277799d chore(proxy): improve debug log experience (#21489) 2022-05-16 21:35:31 +00:00
Bill Glesias
373ed05298 Merge branch 'develop' into md-10.0-merge 2022-05-02 12:26:58 -04:00
Bill Glesias
bbd9e7f1b2 Merge branch 'develop' into md-10.0-merge 2022-04-29 10:39:54 -04:00
Bill Glesias
bc01e44338 chore: rename multi-domain to origin paradigm (#21231) 2022-04-28 15:19:40 -04:00
Chris Breiding
3e6d6bfe15 chore: Updates based on PR feedback (#21137)
* add generic to cy.origin type

* fix log type, update/add comments

* fix comment indentation

* specific generic

* move RemoteState to internal types

* add on links to experimental flag descriptions

* chore: reduce nesting by flipping condition

* fix test title

* simplify failing log

* rename variable

* delete error property

* fix types

* fix type

* remove unnecessary todo

* update wait test

* jquery -> this

* update comment

* remove vestigial autoRun

* use finally

* re-throw non-security errors

* move back getting index

* add new state types

* remove unnecessary export

* startsWith -> includes

* it -> them

* update system test

* remove use of promise constructor

* Revert "remove use of promise constructor"

This reverts commit 35ccc28b6f.

* log errors from Page.getFrameTree

* test if anything breaks when removing optional chaining operator

* remove vestigial file

* handle queue ending in cross-origin driver

* fix coordinates spec

* improve chrome/firefox check in extension

* improve secure cookie regex

* use production mode for cross-origin driver bundle

* adding remoteStates.getPrimary

* catch and ignore queue errors

* remove optional chaining in postMessage handler

* removed unnecessary async

* update frame tree on cri client reconnect

* fix formatting

* renaming remoteStates variable

* prevent requests from being paused if experimentalSessionAndOrigin flag is off

Co-authored-by: Matt Schile <mschile@cypress.io>
2022-04-22 14:58:02 -05:00
Matt Schile
d7ce86541d chore: (cross-origin) add support for redirecting back to primary (#21144) 2022-04-20 23:03:08 -06:00
Matt Schile
27e1afbdd7 chore: (multi-domain) renaming flag to experimentalSessionAndOrigin (#21053) 2022-04-13 10:50:17 -06:00
Matt Henkes
25af92134a chore: [Multi-domain] Rename isMultiDomain for the driver and the server (#20947)
* chore: [Multi-domain] Rename isMultiDomain for the driver and the server

* A couple more changes

* Update packages/driver/src/cy/commands/navigation.ts

Co-authored-by: Matt Schile <mschile@gmail.com>

Co-authored-by: Matt Schile <mschile@gmail.com>
2022-04-07 09:22:49 -05:00
Matt Schile
dcbc68b8e7 chore: (multi-domain) updating experimental flag to experimentalLoginFlows (#20942) 2022-04-06 15:08:18 -06:00
Matt Henkes
b65db7b81f chore: [Multi-domain] Rename domain events (#20945)
* chore: [Multi-domain] Rename domain events

* finish index.ts

* missed one!

* rename error message

* Update packages/driver/src/cy/commands/navigation.ts

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

Co-authored-by: Emily Rohrbough  <emilyrohrbough@users.noreply.github.com>
2022-04-06 14:26:10 -05:00
Matt Schile
4c1c18dd83 fix: (multi-domain) fix injection issue (#20816) 2022-03-30 08:26:21 -06:00
Matt Schile
fedb65c97c chore: (multi-domain) support multiple remote states (#20752) 2022-03-28 15:26:51 -06:00
Chris Breiding
22b35be276 fix(multi-domain): Handle SameSite cookies (#20450) 2022-03-22 09:57:12 -04:00
Chris Breiding
bc30c6868e Merge branch 'develop' into feature-multidomain 2022-03-16 11:23:30 -04:00
Matt Henkes
7f3a649902 chore: [Multi-domain] Enable tests, stability and fail appropriately (#20561)
* chore: Lots of stability Fixes

* define done

* pre-pr fixes

* clean up test comments

* Some test fixes

* Whoops, the right event is kind of important

* nav error handling

* Try to be less invasive with error handling.

* actually clean up

* moar test fixes

* set is stable on primary load

* new new way of handling errors

* not pending

* testing in ci

* more detail

* add www

* Test a couple more errors, add TODOS

* comment test, fix typo

* Apply suggestions from code review

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

* Add back missing full page test

* Apply suggestions from code review

Co-authored-by: Matt Schile <mschile@gmail.com>

* Pull request updates

* Fill edge case.

* ignore error for now

* clean up window logic

* Apply suggestions from code review

Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>

* Clean up commenting

* prevent another test from running on firefox...

* more firefox

* clean up code

* Update packages/driver/cypress/integration/e2e/multi-domain/commands/multi_domain_viewport.spec.ts

Co-authored-by: Matt Schile <mschile@gmail.com>

Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Matt Schile <mschile@gmail.com>
Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com>
2022-03-15 12:29:32 -07:00
Matt Schile
74dea8921e feat: (multi-domain) adding support for cy.visit in multi-domain (#20467) 2022-03-08 13:50:39 -07:00
Lachlan Miller
76129e26af merge in develop to 10.0-release 2022-03-07 10:44:26 +10:00
Tyler Biethman
5a30e76819 fix: Prepare for Chrome's update for immutable document.domain (#20405)
* Setting response header for origin-agent-cluster for runner, iframes, and proxied requests that have domain injection

* Adding comments around header injection

* Adding unit tests
2022-03-04 10:46:23 -06:00
Bill Glesias
ae65ae6e3e fix: ensure multi domain passivity (#20442)
* add experimentalMultiDomain config flag check on middleware. Add
SetInjectionLevel tests

* Move navigation spec that was skipped to validate cross origin errors to
system test

* fix issues with web security spec having a false negative

* remove unecessary config values / assertions from system tests
2022-03-03 22:40:37 -05:00
Brian Mann
73c7631816 fix all the tests that escape "doesn\'t" to use string templates 2022-02-18 16:23:20 -05:00
Brian Mann
f076a64f3b rename clone -> cloneErr 2022-02-15 02:15:15 -05:00
Tim Griesser
bfc032a2d4 fix: open browser at correct time during lifecycle (#19572) 2022-01-12 13:41:25 -05:00
Chris Breiding
2ee98938cd chore: Remove hardcoded domain for multi-domain (#19323)
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2022-01-12 07:23:34 -05:00
Tim Griesser
223d5fa7e6 Merge branch 'develop' into 10.0-release
* develop:
  chore(deps): update dependency ssri to 6.0.2 [security] (#19351)
  chore: Fix server unit tests running on mac by using actual tmp dir (#19350)
  fix: Add more precise types to Cypress.Commands (#19003)
  fix: Do not screenshot or trigger the failed event when tests are skipped (#19331)
  fix (#19262)
  fix: throw when writing to 'read only' properties of `config` (#18896)
  fix: close chrome when closing electron (#19322)
  fix: disable automatic request retries (#19161)
  chore: refactor cy funcs (#19080)
  chore(deps): update dependency @ffmpeg-installer/ffmpeg to v1.1.0 🌟 (#19300)
2021-12-15 14:00:36 -05:00
Chris Breiding
f716178573 chore: Remove need for anticipateMultidomain (#18360) 2021-12-09 14:26:40 -05:00
Chris Breiding
b5a135d102 Merge branch 'develop' into feature-multidomain 2021-12-09 10:48:55 -05:00
Zach Bloomquist
65cf6e899d fix: disable automatic request retries (#19161) 2021-12-08 22:27:19 +00:00
Chris Breiding
8ac1ff0275 Merge branch 'develop' into feature-multidomain 2021-12-07 14:17:31 -05:00
Jessica Sachs
0975fec79b chore: merging in from develop into 10.0-release (#19148) 2021-11-30 14:32:08 -05:00
renovate[bot]
9bf8bf2212 fix(deps): update dependency @cypress/request to v2.88.10 🌟 (#19099)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
2021-11-29 13:59:18 -05:00
Tim Griesser
7c339d41c8 Merge branch 'develop' into 10.0-release
* develop: (52 commits)
  feat: use hoisted yarn install in binary build (#17285)
  fix: compile npm packages for node 12 (#18989)
  fix: show call count even if `cy.stub().log(false)`. (#18907)
  chore: Update TypeScript to 4.4.4 (#18930)
  fix: wrap playground selectors in double quotes if not included (#18442)
  fix: flaky settings_spec test (#18979)
  chore: Update Chrome (stable) to 96.0.4664.45 (#18931)
  fix: Loading of specs with % in the filename (#18877)
  chore: refactor `create` into class `$Cy` (#18715)
  chore: Update Chrome (beta) to 96.0.4664.45 (#18891)
  fix: flaky `system-tests-firefox` job (#18848)
  chore: release @cypress/webpack-preprocessor-v5.10.0
  chore: release @cypress/vue-v3.0.5
  chore: release @cypress/schematic-v1.6.0
  chore: release create-cypress-tests-v1.2.0
  release 9.0.0
  feat: ensure major release
  have conduit app wait on localhost:3000
  fix install-required-node
  use --legacy-peer-deps
  ...
2021-11-20 16:03:53 -05:00
Tim Griesser
e4f5b106d4 feat: use hoisted yarn install in binary build (#17285) 2021-11-20 14:19:51 -05:00
Kukhyeon Heo
2a6ded2352 chore: Update TypeScript to 4.4.4 (#18930) 2021-11-19 10:01:23 -05:00
renovate[bot]
3095d733e9 feat(deps): update dependency electron to v15 🌟 (#18317)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
Co-authored-by: David Munechika <davidam1203@gmail.com>
2021-11-09 20:52:17 +00:00