Cypress v2.0.0stable Released Jul 19, 2018
โš ๏ธ Breaking Change Impact Score: 7/10

Cypress v2.0.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: cypress ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking Changes:** - The built in default `Electron` browser has been bumped from version `53` to `59`. This version represents the version of `Chromium` that Electron is using. In other words, running `cypress run` (or via `Electron`) will be like running your tests in `Chrome 59` now. Although it is unlikely this would actually *break* any of your tests - it is technically possible they could behave differently. Fixes [#895](https://github.com/cypress-io/cypress/issues/895) and [#891](https://github.com/cypress-io/cypress/issues/891) and [#823](https://github.com/cypress-io/cypress/issues/8
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Cypress v2.0.0. Source highlight: *Released 2/15/2018*

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • Breaking Changes:** - The built in default `Electron` browser has been bumped from version `53` to `59`. This version represents the version of `Chromium` that Electron is using. In other words, running `cypress run` (or via `Electron`) will be like running your tests in `Chrome 59` now. Although it is unlikely this would actually *break* any of your tests - it is technically possible they could behave differently. Fixes [#895](https://github.com/cypress-io/cypress/issues/895) and [#891](https://github.com/cypress-io/cypress/issues/891) and [#823](https://github.com/cypress-io/cypress/issues/8

๐Ÿ”ง Bug Fixes & Patches (6)

  • The built in default `Electron` browser has been bumped from version `53` to `59`. This version represents the version of `Chromium` that Electron is using. In other words, running `cypress run` (or via `Electron`) will be like running your tests in `Chrome 59` now. Although it is unlikely this would actually *break* any of your tests - it is technically possible they could behave differently. Fixes #895 and #891 and #823 and #860 and #1011 and #1252 and #1276.
  • We are now detecting and automatically stripping code that obstructs Cypress from being able to test your application. Specifically, we are removing JavaScript code that tries to prevent **clickjacking** and **framebusting**. We have written very conservative rules that do their best to **only** strip these specific JS snippets, but it is technically possible that it may unintentionally rewrite valid JS if they match the regexp patterns. There is a new configuration option called `modifyObstruct
  • We are now clearing the browser's disk cache each time it opens (before any tests run). This means that any files that have been cached from `Cache-Control` headers will be cleaned and removed. In the future, we will expose a new `cy.clearCache()` method to provide finer grained control of clearing the cache on a per test basis. But for now, this is an improvement. Fixes #1124.
  • The `--spec` option is now normalized against the current working directory `cwd` instead of the project that you are running Cypress in. That means passing a path from the command line to a spec file will now work even when the project path is not `cwd`. Fixes #1159.
  • `blacklistHosts` would occasionally not work if you were blacklisting a host that had previously cached a file. In this case, the browser would serve it from disk and not make an actual HTTP request. This issue has been solved by clearing the cache when the browser opens. Fixes #1154.
  • Spies and Stubs created with `cy.stub()` and `cy.spy()` will now retry their assertions when utilized from an alias. Fixes #1156.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
*Released 2/15/2018* **Breaking Changes:** - The built in default `Electron` browser has been bumped from version `53` to `59`. This version represents the version of `Chromium` that Electron is using. In other words, running `cypress run` (or via `Electron`) will be like running your tests in `Chrome 59` now. Although it is unlikely this would actually *break* any of your tests - it is technically possible they could behave differently. Fixes [#895](https://github.com/cypress-io/cypress/issues/895) and [#891](https://github.com/cypress-io/cypress/issues/891) and [#823](https://github.com/cypress-io/cypress/issues/823) and [#860](https://github.com/cypress-io/cypress/issues/860) and [#1011](https://github.com/cypress-io/cypress/issues/1011) and [#1252](https://github.com/cypress-io/cypress/issues/1252) and [#1276](https://github.com/cypress-io/cypress/issues/1276). - We are now detecting and automatically stripping code that obstructs Cypress from being able to test your application. Specifically, we are removing JavaScript code that tries to prevent **clickjacking** and **framebusting**. We have written very conservative rules that do their best to **only** strip these specific JS snippets, but it is technically possible that it may unintentionally rewrite valid JS if they match the regexp patterns. There is a new configuration option called [`modifyObstructiveCode`](https://on.cypress.io/configuration#Browser) that is `true` by default. If you are experiencing problems after upgrading, you can turn this off and this will disable modifying your JS code. If you were using Cypress and upon visiting your website you would experience seemingly "random" redirects - these problems should now be eliminated. Fixes [#886](https://github.com/cypress-io/cypress/issues/886) and [#1245](https://github.com/cypress-io/cypress/issues/1245) and [#1064](https://github.com/cypress-io/cypress/issues/1064) and [#992](https://github.com/cypress-io/cypress/issues/992) and [#692](https://github.com/cypress-io/cypress/issues/692) and [#352](https://github.com/cypress-io/cypress/issues/352). - We are now clearing the browser's disk cache each time it opens (before any tests run). This means that any files that have been cached from `Cache-Control` headers will be cleaned and removed. In the future, we will expose a new `cy.clearCache()` method to provide finer grained control of clearing the cache on a per test basis. But for now, this is an improvement. Fixes [#1124](https://github.com/cypress-io/cypress/issues/1124). - The `--spec` option is now normalized against the current working directory `cwd` instead of the project that you are running Cypress in. That means passing a path from the command line to a spec file will now work even when the project path is not `cwd`. Fixes [#1159](https://github.com/cypress-io/cypress/issues/1159). **Bugfixes:** - [`blacklistHosts`](https://on.cypress.io/configuration#Browser) would occasionally not work if you were blacklisting a host that had previously cached a file. In this case, the browser would serve it from disk and not make an actual HTTP request. This issue has been solved by clearing the cache when the browser opens. Fixes [#1154](https://github.com/cypress-io/cypress/issues/1154). - [`blacklistHosts`](https://on.cypress.io/configuration#Browser) is now correctly accepted via the `--config` CLI flag. - Spies and Stubs created with [`cy.stub()`](https://on.cypress.io/stub) and [`cy.spy()`](https://on.cypress.io/spy) will now retry their assertions when utilized from an [alias](https://on.cypress.io/as). Fixes [#1156](https://github.com/cypress-io/cypress/issues/1156). - Basic auth is working again in Chrome 63 and Chrome 64. We "for real" fixed it this time by adding auth headers automatically at the network proxy layer and bypassed the browser altogether. We automatically apply auth headers if you provide a username/password in the URL of a `cy.visit(url)`. We also added a new `auth` option to specify the `username/password` using `cy.visit(url, options)`. All of the requests that match the origin of the `url` will have the `Authorization: Basic <...>` headers added. Fixes [#1288](https://github.com/cypress-io/cypress/issues/1288). - Fixed domain parsing failures when `local` or `localhost` was not used as a `tld`. Fixes [#1292](https://github.com/cypress-io/cypress/issues/1292) and [#1278](https://github.com/cypress-io/cypress/issues/1278). - Removed the flag `--disable-background-networking` from the Chrome launch args to fix problems in CI that would throttle XHR callbacks by up to 20-30 seconds. Fixes [#1320](https://github.com/cypress-io/cypress/issues/1320). **Misc:** - We now properly display nested objects and arrays that come from `cypress.json` in the Settings tab in the Desktop Application. - There's now a proper "empty view" when you go to setup your project to record on our Dashboard and you have not created any Organizations. Fixes [#1306](https://github.com/cypress-io/cypress/issues/1306). - Removed the message about private projects requiring a paid account in the future. There will be a free tier including private projects. Fixes [#827](https://github.com/cypress-io/cypress/issues/827). - We moved the location of the browser's disk cache. That means that if you've been using Cypress for a really long time - you may have built up quite a large existing cache (in the hundreds of `mb`). Before upgrading, you should open the browser and then manually clear the Cache. Or - if you have already upgraded to `2.0.0` delete the following folders: - OSX: `~/Library/Caches/Cypress` - Linux: `~/.cache/Cypress` - Windows: `%APPDATA%\Cypress\cy\production\browsers`