* chore: bump chromium in DEPS to 87.0.4265.1 * chore: bump chromium in DEPS to 87.0.4266.2 * chore: bump chromium in DEPS to 87.0.4267.1 * update patches * chore: bump chromium in DEPS to 87.0.4270.0 * Update patches * Move content::WebPreferences struct to Blink https://chromium-review.googlesource.com/c/chromium/src/+/2397670 (cherry picked from commit5c98c5ebf4) * viz: Rename RenderPass to CompositorRenderPass (and related types). https://chromium-review.googlesource.com/c/chromium/src/+/2380730 (cherry picked from commitae999b29c1) * 2320268: Migrate DragHostMsg_StartDragging to Mojo Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2320268 (cherry picked from commit4e835d505d) * Make FileURLLoaderFactory always owned by its |receivers_|. https://chromium-review.googlesource.com/c/chromium/src/+/2337411 (cherry picked from commit284abad17d) * fix: add a patch to remove deprecated factory (cherry picked from commit98c9616829) Co-Authored-By: Robo <hop2deep@gmail.com> * fixup patch (cherry picked from commit98c9616829) Co-Authored-By: Robo <hop2deep@gmail.com> * Add MIME sniffer overloads that take base::StringPieces https://chromium-review.googlesource.com/c/chromium/src/+/2382896 (cherry picked from commit211fd4f8f0) * chore: implement GetSurveyAPIKey Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2362182 (cherry picked from commit6c539bc6fc) * 2415752: Reland "Reland "OOR-CORS: Remove BlinkCORS supporting code outside Blink"" Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2415752 (cherry picked from commitb67757d77d) * Make FileURLLoaderFactory always owned by its |receivers_|. https://chromium-review.googlesource.com/c/chromium/src/+/2337411 (cherry picked from commit507eb0965f) * fixup! Make FileURLLoaderFactory always owned by its |receivers_|. (cherry picked from commite19400b4e2) * 2418471: PDF Viewer update: Add missing aria-labels to various buttons. https://chromium-review.googlesource.com/c/chromium/src/+/2418471 * chore: bump chromium in DEPS to 87.0.4271.0 * Refactor WebContentSettingsClient to dedupe AllowXYZ methods https://chromium-review.googlesource.com/c/chromium/src/+/2353552 (cherry picked from commitf1a5414372) * 2402123: Use end date when deleting http auth cache Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2402123 (cherry picked from commitd00971d0cb) * [printing] Move PrintHostMsg_PreviewIds to print.mojom https://chromium-review.googlesource.com/c/chromium/src/+/2379455 (cherry picked from commite212297da9) * update patches * 2401303: Move content/browser/frame_host/* over to content/browser/renderer_host/ https://chromium-review.googlesource.com/c/chromium/src/+/2401303 (cherry picked from commitbcffa8aeab) * Introduce NonNetworkURLLoaderFactoryBase class. https://chromium-review.googlesource.com/c/chromium/src/+/2357559 (cherry picked from commit33e2e12114) * fix: add a patch to remove deprecated factory (cherry picked from commit98c9616829) * chore: non_network_url_loader_factory_base was moved Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2357431 (cherry picked from commita1a8878402) * chore: replace CreateWebUIURLLoader with CreateWebUIURLLoaderFactory Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2358309 (cherry picked from commit40bfaa5ea4) * 2346803: Study whether blocking of requests via webRequest is fingerprintable https://chromium-review.googlesource.com/c/chromium/src/+/2346803 * lint cleanup * chore: bump chromium in DEPS to 87.0.4272.0 * update patches * 2387901: Accessing C++ enums in Java for WebBluetooth https://chromium-review.googlesource.com/c/chromium/src/+/2387901 * chore: bump chromium in DEPS to 87.0.4273.0 * Update patches (cherry picked from commit b389d4adca71e268c390c41370e87033b69c649c) * chore: bump chromium in DEPS to 87.0.4274.0 * chore: bump chromium in DEPS to 87.0.4275.0 * chore: bump chromium in DEPS to 87.0.4276.0 * update patches * 2418443: Explicit use of deprecated global sources assignment filter https://chromium-review.googlesource.com/c/chromium/src/+/2418443 * fixup 2418443: Explicit use of deprecated global sources assignment filter * Use 87.0.4274.2 for now * 2401847: Cache Storage Permissions on ContentSettingsClientImpl https://chromium-review.googlesource.com/c/chromium/src/+/2401847 * 2418568: Remove ConvertPointToPixel() methods. https://chromium-review.googlesource.com/c/chromium/src/+/2418568 * 2419388: Rename Button methods to be suitable for builders and properties. https://chromium-review.googlesource.com/c/chromium/src/+/2419388 * [XProto] Remove usage of all Xlib headers https: //chromium-review.googlesource.com/c/chromium/src/+/2392140 Co-Authored-By: Robo <hop2deep@gmail.com> * service_manager::kCrashDumpSignal -> kCrashDumpSignal Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2417073 (cherry picked from commit 7d9d2a172f50e12830a2b8fbfbb2fe344756c377) * gfx::ConvertPointToPixel -> gfx::ConvertPointToPixels Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2418568 (cherry picked from commit a0bf07570409f84a3b7fa9d12bddd8c1805f43c5) * Fixup [XProto] Remove usage of all Xlib headers * Set appid on Pip windows. https: //chromium-review.googlesource.com/c/chromium/src/+/2388274 Co-Authored-By: Robo <hop2deep@gmail.com> * chore: update node patches for common.gypi Co-Authored-By: Samuel Attard <MarshallOfSound@users.noreply.github.com> * Try using lower number of processes for linux * fixup call to diagnose_goma_log.py * Use larger machines on linux to work around goma issue * Don't fail on goma stats * don't exit immediately * turn off pipefail * always return true Co-authored-by: John Kleinschmidt <jkleinsc@github.com> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com> Co-authored-by: Andy Locascio <andy@slack-corp.com> Co-authored-by: Samuel Attard <MarshallOfSound@users.noreply.github.com>
📝 Available Translations: 🇨🇳 🇹🇼 🇧🇷 🇪🇸 🇰🇷 🇯🇵 🇷🇺 🇫🇷 🇹🇭 🇳🇱 🇹🇷 🇮🇩 🇺🇦 🇨🇿 🇮🇹 🇵🇱. View these docs in other languages at electron/i18n.
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 coc@electronjs.org.
Installation
To install prebuilt Electron binaries, use npm.
The preferred method is to install Electron as a development dependency in your
app:
npm install electron --save-dev [--save-exact]
The --save-exact flag is recommended for Electron prior to version 2, as it does not follow semantic
versioning. As of version 2.0.0, Electron follows semver, so you don't need --save-exact flag. For info on how to manage Electron versions in your apps, see
Electron versioning.
For more installation options and troubleshooting tips, see installation.
Quick start & Electron Fiddle
Use Electron Fiddle
to build, run, and package small Electron experiments, to see code examples for all of Electron's APIs, and
to try out different versions of Electron. It's designed to make the start of your journey with
Electron easier.
Alternatively, clone and run the electron/electron-quick-start repository to see a minimal Electron app in action:
git clone https://github.com/electron/electron-quick-start
cd electron-quick-start
npm install
npm start
Resources for learning Electron
- electronjs.org/docs - All of Electron's documentation
- electron/fiddle - A tool to build, run, and package small Electron experiments
- electron/electron-quick-start - A very basic starter Electron app
- electronjs.org/community#boilerplates - Sample starter apps created by the community
- electron/simple-samples - Small applications with ideas for taking them further
- electron/electron-api-demos - An Electron app that teaches you how to use Electron
- hokein/electron-sample-apps - Small demo apps for the various Electron APIs
Programmatic usage
Most people use Electron from the command line, but if you require electron inside
your Node app (not your Electron app) it will return the file path to the
binary. Use this to spawn Electron from Node scripts:
const electron = require('electron')
const proc = require('child_process')
// will print something similar to /Users/maf/.../Electron
console.log(electron)
// spawn Electron
const child = proc.spawn(electron)
Mirrors
Documentation Translations
Find documentation translations in electron/i18n.
Contributing
If you are interested in reporting/fixing issues and contributing directly to the code base, please see CONTRIBUTING.md for more information on what we're looking for and how to get started.
Community
Info on reporting bugs, getting help, finding third-party tools and sample apps, and more can be found in the support document.
License
When using the Electron or other GitHub logos, be sure to follow the GitHub logo guidelines.