document.visibilityState and document.hidden
Chromium already includes the necessary plumbing to manage the
visibility properties and `visibilitychange` event so this gets rid of
most of our custom logic for `BrowserWindow` and `BrowserView`.
Note that `webview` remains unchanged and is still affected by the issues
listed below.
User facing changes:
- The `document` visibility properties and `visibilitychange` event are
now also updated/fired in response to occlusion changes on macOS. In
other words, `document.visibilityState` will now be `hidden` on macOS
if the window is occluded by another window.
- Previously, `visibilitychange` was also fired by *both* Electron and
Chromium in some cases (e.g. when hiding the window). Now it is only
fired by Chromium so you no longer get duplicate events.
- The visiblity state of `BrowserWindow`s created with `{ show: false }`
is now initially `visible` until the window is shown and hidden.
- The visibility state of `BrowserWindow`s with `backgroundThrottling`
disabled is now permanently `visible`.
This should also fix #6860 (but not for `webview`).
📝 Available Translations: Korean | Simplified Chinese | Brazilian Portuguese | Traditional Chinese | Spanish | Turkish
The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on Node.js and Chromium and is used by the Atom editor and many other apps.
Follow @ElectronJS on Twitter for important announcements.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to electron@github.com.
Downloads
To install prebuilt Electron binaries, use
npm:
# Install as a development dependency
npm install electron --save-dev
# Install the `electron` command globally in your $PATH
npm install electron -g
See the releases page for prebuilt binaries, debug symbols, and more.
Mirrors
Documentation
Guides and the API reference are located in the docs directory. It also contains documents describing how to build and contribute to Electron.
Documentation Translations
- Brazilian Portuguese
- Korean
- Japanese
- Spanish
- Simplified Chinese
- Traditional Chinese
- Turkish
- Thai
- Ukrainian
- Russian
- French
- Indonesian
Quick Start
Clone and run the electron/electron-quick-start
repository to see a minimal Electron app in action.
Community
You can ask questions and interact with the community in the following locations:
electroncategory on the Atom forums#atom-shellchannel on FreenodeAtomchannel on Slackelectron-ru(Russian)electron-br(Brazilian Portuguese)electron-kr(Korean)electron-jp(Japanese)electron-tr(Turkish)electron-id(Indonesia)
Check out awesome-electron for a community maintained list of useful example apps, tools and resources.
License
When using the Electron or other GitHub logos, be sure to follow the GitHub logo guidelines.