---
title: "0.16.0"
url: "https://www.cypress.io/releases/0-16-0"
description: "Notes: Updating through the Desktop App in Linux does not work. To update please run cypress install from the command line. We are still updating the docs to…"
---

# 0.16.0

ReleasedReleased on May 16, 2016

**Notes:**

-   Updating through the Desktop App in **Linux** does not work. To update please run [cypress install](/app/references/command-line) from the command line.
    
-   We are still updating the docs to reflect all of these changes.
    
-   All users must _LOG IN AGAIN_ and re-add their projects. Sorry, we've changed the way we store local data.
    

**Overview:**

-   `0.16.0` marks a significant change for Cypress. Before this we only issued commands using regular JavaScript and coordinated these with the back end server which is running. As of `0.16.0` we are now tapping into the underlying browser automation libraries which enable us to exceed the limitations of the JavaScript sandbox. This means we have total control over the browser for more powerful automation tooling. The downside is that we have only implemented these APIs for Chrome, and therefore running on multiple browsers will no longer work. This is a temporary setback as we'll be adding driver support for all of the other browsers over a period of time. You can read more about our browser management [here](/app/references/launching-browsers).
    

**Breaking Changes:**

-   Running tests in Cypress now requires either Chrome, Chromium, or Canary to be installed on your OS environment. We intend to expand support for more browsers in the future, but for now, only these 3 are supported.
    
-   Removed support for `Cypress.Cookies.get`, `Cypress.Cookies.set` and `Cypress.Cookies.remove`.
    
-   Changed return of [`cy.getCookies()`](/api/commands/getcookies) to return an array of cookies, each with properties include name, value, etc.
    
-   Changed return of [`cy.clearCookies()`](/api/commands/clearcookies) to return null (previously was returning Cookie that was cleared).
    
-   [`Cypress.Cookies.debug()`](/api/cypress-api/cookies#Debug) has been temporarily disabled and will be re-enabled later.
    
-   Browsers are spawned in a Cypress specific profile so that we can maintain a clean state apart of your regular browsing usage. You will notice that your extensions are no longer installed. This is on purpose. 3rd party extensions can often get in the way of Cypress and cause failures. However, developer specific extensions for Angular, Ember, and React do not cause any issues but you'll want to reinstall them. You only have to install them once and they will persist.
    
-   The `whitelist` callback function of [`Cypress.Cookies.defaults()`](/api/cypress-api/cookies#History) now receives a `cookie object` instead of just the `cookies name` as a string.
    

**Features:**

-   When a project is initially run from the desktop app, you can now choose to run Cypress in a select number of browsers including: Chrome, Chromium, or Canary (depending on what's installed on your OS).
    
-   Browser sessions are spawned independently of your existing profiles and we've disabled things like password saving / prompting, JavaScript popup blocking, and other features which get in the way of testing. Read more [here](/app/references/launching-browsers)
    
-   We automatically spawn Chrome in a **custom theme** so you can visually distinguish the difference between browser sessions spawned with Cypress vs your normal sessions. We know this may feel a little jarring because you're used to running Cypress alongside your other tabs. You will now see 2 chrome icons in your dock and you'll need to switch between them. We know this is problematic and confusing and we're looking into **changing the icon** of the Chrome running Cypress so it's easier to tell the Chrome sessions apart.
    
-   Added new commands to handle getting, setting, and clearing cookies: [`cy.clearCookie()`](/api/commands/clearcookie), [`cy.getCookie()`](/api/commands/getcookie), and [`cy.setCookie()`](/api/commands/setcookie).
    
-   All the `cy.cookie` commands have been upgraded to take new options and can do much more powerful things outside of the JavaScript sandbox.
    
-   Upgraded the Chromium version running headlessly and in CI from `47` to `49`.
    
-   There is a new [`cy.exec()`](/api/commands/exec) command that can execute any arbitrary system command. Additionally there is a new [`execTimeout`](/app/references/configuration#Timeouts) configuration option which is set to `60s` by default. Fixes [#126](https://github.com/cypress-io/cypress/issues/126).
    
-   There is a new [`numTestsKeptInMemory`](/app/references/configuration#Global) configuration option that controls how many test's snapshots and command data is kept in memory while tests are running. Reducing this number will reduce the memory used in the browser while tests are running. Whatever this number is - is how many tests you can walk back in time when inspecting their snapshots and return values. Addresses [#142](https://github.com/cypress-io/cypress/issues/142).
    

**Bugfixes:**

-   Cypress taskbar icon now displays correctly in OS X dark theme. Fixes [#132](https://github.com/cypress-io/cypress/issues/132).
    
-   Fixed issue where server error's stack traces were being truncated in the Desktop app rendering them impossible to debug. Fixes [#133](https://github.com/cypress-io/cypress/issues/133).
    
-   woff Fonts are now properly served from a local file system when using Cypress' web server. Fixes [#135](https://github.com/cypress-io/cypress/issues/135).
    
-   When an element's center is not visible the error message now includes the stringified element in question, and not `undefined`.
    
-   Typing into an `input[type=tel]` now works. Fixes [#141](https://github.com/cypress-io/cypress/issues/141).
    
-   XHR's which have their `onload` handler replaced after `XHR#send` is called is now properly accounted for. Fixes [#143](https://github.com/cypress-io/cypress/issues/143).
    

**Misc:**

-   XHR requests for `.svg` files are no longer shown in the Command Log by default. Addresses [#131](https://github.com/cypress-io/cypress/issues/131).
    
-   Improved error when [`cy.request()`](/api/commands/request) fails. The request parameters are now included in the error. Addresses [#134](https://github.com/cypress-io/cypress/issues/134).
    
-   When running a project in the new Cypress browser environment, if a new tab is opened, a message now displays discouraging the use of multiple tabs while testing. Addresses [#9](https://github.com/cypress-io/cypress/issues/9).
    
-   When navigating directly to `localhost:2020` outside of the new Cypress browser environment, a message now displays discouraging running tests outside of the new Cypress browser environment.
    
-   If, for whatever reason, Cypress cannot communicate with the automation servers, your testing session will immediately end and you'll have the ability to re-spawn the browser.
    
-   [`cy.fixture()`](/api/commands/fixture) now has a default timeout of `responseTimeout` which is `20s`.
    
-   [`cy.fixture()`](/api/commands/fixture) can now properly time out and accepts an `options` argument that can override its default timeout.
    
-   Improved initial Desktop Application startup performance by about `1.5s`.
    
-   We now correctly store local data in each operating system's correct `Application Data` area. This will be more resilient to upgrades in the future.
    
-   Running Cypress in a linux VM on VirtualBox no longer displays "black screens".
    
-   Our internal proxy no longer strips `HttpOnly` cookie flags.
    
-   Improved command errors and normalized many of them. Fixes [#137](https://github.com/cypress-io/cypress/issues/137).
    
-   JavaScript popup blocking is now disabled and will not interfere with running tests. Fixes [#125](https://github.com/cypress-io/cypress/issues/125).
    
-   We now capture synchronous errors from XHR `onreadystatechange` handlers.