---
title: "3.0.2"
url: "https://www.cypress.io/releases/3-0-2"
description: "Bugfixes: Screenshots taken with cy.screenshot() on 2x DPI are now taken at the correct full size. Fixes #1857 and #2018. Windows users no longer exit with…"
---

# 3.0.2

ReleasedReleased on June 27, 2018

**Bugfixes:**

-   Screenshots taken with [cy.screenshot()](/api/commands/screenshot) on 2x DPI are now taken at the correct full size. Fixes [#1857](https://github.com/cypress-io/cypress/issues/1857) and [#2018](https://github.com/cypress-io/cypress/issues/2018).
    
-   Windows users no longer exit with `EPIPE` errors when running `cypress run` in newer versions of Node. Fixes [#1841](https://github.com/cypress-io/cypress/issues/1841) and [#2044](https://github.com/cypress-io/cypress/issues/2044).
    
-   Fixed issue where applications programmatically stealing focus would lead to slow runs in Electron when running via `cypress run`. [#1909](https://github.com/cypress-io/cypress/issues/1909) and [#1892](https://github.com/cypress-io/cypress/issues/1892).
    
-   Electron no longer reports the browser as out of focus when running via `cypress run`. Fixes [#1939](https://github.com/cypress-io/cypress/issues/1939).
    
-   Modified the `document.hasFocus()` method to return `true` if the top window (Cypress window) is in focus. This should now correctly match how your application behaves outside of Cypress. Fixes [#1940](https://github.com/cypress-io/cypress/issues/1940).
    
-   Fixed issue where Cypress would unnecessarily scroll when attempting to locate elements with `position: sticky`. Fixes [#1475](https://github.com/cypress-io/cypress/issues/1475).
    
-   Fixed a bug where changing the `integrationFolder` in Windows would lead to errors with plugins. Fixes [#1704](https://github.com/cypress-io/cypress/issues/1704).
    
-   Cypress no longer crashes when a 3rd party server sends invalid `gzip` content. Also fixed issues with incorrectly gunzipping multibyte characters which would potentially lead to serving invalid HTML or JS. Fixes [#1396](https://github.com/cypress-io/cypress/issues/1396) and [#1756](https://github.com/cypress-io/cypress/issues/1756).
    
-   The `--silent` flag should now be respected during `npm install cypress` on all OSes. Fixes [#817](https://github.com/cypress-io/cypress/issues/817).
    
-   Corrected a typo in the CLI for a warning message. Fixes [#2038](https://github.com/cypress-io/cypress/issues/2038).
    
-   Fixed some areas of the Desktop GUI that did not display path names correctly in Windows. Fixes [#1830](https://github.com/cypress-io/cypress/issues/1830).
    
-   The `pluginsFile` now supports an absolute path instead of just a relative one. Fixes [#1837](https://github.com/cypress-io/cypress/issues/1837).
    
-   Fixed a regression introduced in `3.x.x` where application code that used `setTimeout` with a string argument would see the error `fn.apply is not a function`. Fixes [#1854](https://github.com/cypress-io/cypress/issues/1854).
    
-   Fixed issue where preprocessor errors were being swallowed. Fixes [#1877](https://github.com/cypress-io/cypress/issues/1877).
    
-   Fixed issue where Cypress would hang indefinitely when starting a new spec when in `cypress run` mode. Additionally we have optimized the code path to not read in the local `state.json` unnecessarily. Fixes [#2013](https://github.com/cypress-io/cypress/issues/2013) and [#1912](https://github.com/cypress-io/cypress/issues/1912) and [#1905](https://github.com/cypress-io/cypress/issues/1905) and [#1890](https://github.com/cypress-io/cypress/issues/1890).
    
-   Fixed a couple regressions in the Dashboard where timed out runs stayed "Pending" forever. Fixes [#1891](https://github.com/cypress-io/cypress/issues/1891) and [#1952](https://github.com/cypress-io/cypress/issues/1952).
    
-   Fixed another Dashboard regression where an error would throw when recording tests and sending a large list of specs. Fixes [#1901](https://github.com/cypress-io/cypress/issues/1901).
    
-   Fixed issue where videos would not be recorded when an object was returned from `before:browser:launch` when in the Electron browser. Fixes [#1992](https://github.com/cypress-io/cypress/issues/1992).
    
-   Fixed an issue where Cypress would inject content into the `<header>` tag instead of the `<head>` tag. Fixes [#2026](https://github.com/cypress-io/cypress/issues/2026).
    
-   Fixed an oversight where a specific framebusting check was not being properly stripped and removed by the default config option [modifyObstructiveCode](/app/references/configuration#Browser). Fixes [#2030](https://github.com/cypress-io/cypress/issues/2030) and [#2059](https://github.com/cypress-io/cypress/issues/2059).
    
-   Fixed icons visually shifting when tests were running in the Test Runner. Fixes [#1983](https://github.com/cypress-io/cypress/issues/1983).
    
-   Server sent events now _finally_ work correctly in Cypress. Fixes [#1440](https://github.com/cypress-io/cypress/issues/1440) and [#1111](https://github.com/cypress-io/cypress/issues/1111).
    
-   Time traveling snapshots now preserve the styles of empty `<style>` tags with programmatically inserted CSS rules. Fixes [#1226](https://github.com/cypress-io/cypress/issues/1226).
    

**Misc:**

-   There are now several new CLI commands for interacting with the binary cache: [cypress cache path](/app/references/command-line#cypress-cache-path), [cypress cache list](/app/references/command-line#cypress-cache-list), and [cypress cache clear](/app/references/command-line#cypress-cache-clear). Fixes [#1856](https://github.com/cypress-io/cypress/issues/1856).
    
-   We've added a new CLI flag: `--no-exit` for [cypress run](/app/references/command-line#cypress-run) to keep the browser open after the tests finish running. Fixes [#1871](https://github.com/cypress-io/cypress/issues/1871).
    
-   The [CLI](/app/references/command-line) now respects config values and environment variables put in your `.npmrc` file. Fixes [#1399](https://github.com/cypress-io/cypress/issues/1399) and [#1853](https://github.com/cypress-io/cypress/issues/1853).
    
-   Significantly improved the performance of taking screenshots. [#1863](https://github.com/cypress-io/cypress/issues/1863).
    
-   Node module dependencies updated. Fixes [#1674](https://github.com/cypress-io/cypress/issues/1674) and [#1942](https://github.com/cypress-io/cypress/issues/1942).
    
-   The bundled version of FFmpeg has now been bumped from `3.x.x` to `4.x.x`. This may help with some issues users were experiencing when recording videos. Fixes [#1972](https://github.com/cypress-io/cypress/issues/1972).
    
-   Added more debug logs to FFmpeg to determine why FFmpeg compression sometimes causes Cypress to crash (mostly while running in Travis CI). Fixes [#1971](https://github.com/cypress-io/cypress/issues/1971).
    
-   Several improvements to TypeScript typings. Fixes [#1881](https://github.com/cypress-io/cypress/issues/1881) and [#2007](https://github.com/cypress-io/cypress/issues/2007) and [#1899](https://github.com/cypress-io/cypress/issues/1899) and [#1902](https://github.com/cypress-io/cypress/issues/1902) and [#1897](https://github.com/cypress-io/cypress/issues/1897) and [#1907](https://github.com/cypress-io/cypress/issues/1907).
    
-   We improved error logging and the user experience around [cypress verify](/app/references/command-line#cypress-verify). Fixes [#1984](https://github.com/cypress-io/cypress/issues/1984).
    
-   We no longer log the `skipping install` message if the Cypress binary is already installed locally. Fixes [#1985](https://github.com/cypress-io/cypress/issues/1985).
    
-   Now, by default, screenshots are nested within a folder with the name of **the spec file** that is currently running. Example - the spec named `cypress/integration/foo/bar_spec.js` will save screenshots inside of this directory: `cypress/screenshots/foo/bar_spec.js/*`. Fixes [#1826](https://github.com/cypress-io/cypress/issues/1826).
    
-   Passing `foo/bar/baz` as the fileName arg to [cy.screenshot()](/api/commands/screenshot#Take-a-screenshot-and-save-in-a-specific-directory) inside a spec, `app.spec.js`, will now result in the screenshot being saved to a nested folder path such as: `cypress/screenshots/app.spec.js/foo/bar/baz.png`. Fixes [#1771](https://github.com/cypress-io/cypress/issues/1771) and [#668](https://github.com/cypress-io/cypress/issues/668).
    
-   We now append `(failed)` to the screenshot filename of screenshots taken automatically during test failure. Fixes [#1923](https://github.com/cypress-io/cypress/issues/1923).
    
-   If multiple screenshots are taken during a test that will result in the same filename, their file paths are now appended with a number, i.e. `test name (1).png`. This prevents screenshot files with the same name from being overwritten. Fixes [#1766](https://github.com/cypress-io/cypress/issues/1766).
    
-   Screenshot `onAfterScreenshot` and `onBeforeScreenshot` callbacks ar enow invoked for failed tests. They include a `testFailure` property to distinguish between automatic ones and your own use of `cy.screenshot()`. Fixes [#2040](https://github.com/cypress-io/cypress/issues/2040).
    
-   There's now an [`after:screenshot` plugin event](/api/node-events/after-screenshot-api) you can use in your `pluginsFile` to work with screenshots after they are taken. This enables you to rename them, move their location, resize them, send them to a service, etc. Fixes [#2039](https://github.com/cypress-io/cypress/issues/2039).
    
-   Added `Cypress.browser` object which contains information about the currently running browser. Fixes [#1919](https://github.com/cypress-io/cypress/issues/1919) and [#1961](https://github.com/cypress-io/cypress/issues/1961).
    
-   Added `Cypress.spec` object which contains information about the currently running spec. Fixes [#1918](https://github.com/cypress-io/cypress/issues/1918).
    
-   URLs displayed in the Command Log during [cy.visit()](/api/commands/visit) are no longer arbitrarily truncated at a set width. Fixes [#1995](https://github.com/cypress-io/cypress/issues/1995).
    

**Documentation Changes:**

-   [Update `cy.screenshot()` doc to include new file naming behavior](/api/commands/screenshot)
    
-   [Updated "Command Line" doc to include new cache commands](/app/references/command-line)
    
-   [Added `Cypress.browser` doc.](/api/cypress-api/browser)
    
-   [Added `Cypress.spec` doc.](/api/cypress-api/spec)
    
-   [Added `after:screenshot` plugin event doc.](/api/node-events/after-screenshot-api)