* chore: update 10-x-y to 85.0.4161.2 * Update patches * chore: SetHostCleanupFinalizationGroupCallback has been removed from V8 (cherry picked from commit7aa3058829) * Window Placement: Gate cross-screen fullscreen behavior on permission https://chromium-review.googlesource.com/c/chromium/src/+/2203268 (cherry picked from commitfdccae9246) * refactor: GetSublabelAt => GetSecondaryLabelAt (cherry picked from commitcc8be2f634) * refactor: use WebInputEvent::Namespace types directly Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2160523 (cherry picked from commitf35200077e) * refactor: service_manager::BinderMapWithContext merged into mojo::BinderMap Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2174654 (cherry picked from commitc2a4d1b515) * remove WebContentsView::SizeContents Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2188931 (cherry picked from commitf4ccf3556c) * adapt to //content creating NetworkContexts https://chromium-review.googlesource.com/c/chromium/src/+/2195196 (cherry picked from commit6834366747) * Use a normal return value for WebContentsView::GetContainerBounds. https://chromium-review.googlesource.com/c/chromium/src/+/2212481 (cherry picked from commit68c8ea6ea9) * fixup patch * refactor: AddNewContents now takes a target_url Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2167732 (cherry picked from commit69fe1f6f47) * refactor: FollowRedirect takes in cors exempt headers now Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2129787 (cherry picked from commit58f3770c19) * refactor: printing::DuplexMode moved to mojo Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2162388 (cherry picked from commita14cdc465a) * refactor: use MessagePortDescriptor instead of raw mojo::MessagePipeHandles Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1952124 (cherry picked from commitdce81ad06f) * refactor: cursor.mojom and cursor_types.mojom moved to //ui/base/cursor/mojom Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172874 (cherry picked from commit7f3c13de3f) * refactor: shuttle cursor changed event to WebContentsObserver Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172779 (cherry picked from commit2f3a23afb7) Co-Authored-By: loc <loc@users.noreply.github.com> * chore: unused argument removed from ReadAvailableTypes in ui::Clipboard Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2173666 (cherry picked from commitd9152c3668) * remove ClientSideDetectionService from browser_process Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2175320 (cherry picked from commit2461522752) * Remove cors_exempt_headers.h https://chromium-review.googlesource.com/c/chromium/src/+/2203759 (cherry picked from commitb73faa6411) * [content] Remove unused methods from WebContents https://chromium-review.googlesource.com/c/chromium/src/+/2199113 (cherry picked from commit8b9ea9cd2b) * Unnest CanonicalCookie::CookieInclusionStatus https://chromium-review.googlesource.com/c/chromium/src/+/2203171 (cherry picked from commit7d4349b37c) * WebContentsObserver now implements OnRendererResponsive https://chromium-review.googlesource.com/c/chromium/src/+/2211066 (cherry picked from commit53f32b7e45) * chore: remove NOTIFICATION_EXTENSIONS_READY_DEPRECATED Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2199874 (cherry picked from commit7914445469) * Supply speech recognition sandbox from service_sandbox_type.h https://chromium-review.googlesource.com/c/chromium/src/+/2206918 (cherry picked from commitf15a0fdfab) * [XProto] Replace XAtom with x11::Atom https://chromium-review.googlesource.com/c/chromium/src/+/2202789 (cherry picked from commit143110105a) * update print-to-pdf.html with latest html data https://bugs.chromium.org/p/chromium/issues/detail?id=1085667 (cherry picked from commit205105fc16) * fix build on windows (cherry picked from commit0a255c4fa7) * [printing] Mojofy PrintHostMsg_CheckForCancel https://chromium-review.googlesource.com/c/chromium/src/+/2212181 (cherry picked from commit4f1064afa9) * chore: update sysroots (cherry picked from commit2a1b78a4bf) * chore: DesktopWindowTreeHostLinux becomes DesktopWindowTreeHostPlatform Refs: (cherry picked from commit3fd0875d3d) * refactor: LogErrorEventDescription moved from ui to x11 Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2164245 (cherry picked from commit9291fc4afc) * fix: inherit base network context params (cherry picked from commit698c66f7f9) * fix: use message handle api specific to embedders (cherry picked from commit23d01dc8e0) * chore: update v8 headers (cherry picked from commit81bc1e0bee) * add checkout_pgo_profiles to DEPS (cherry picked from commit9b73e6935c) * refactor: use newly mojo-ified PrintPreviewFailed Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2195343 Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> (cherry picked from commitde074ce23a) * [printing] Mojofy PrintHostMsg_PrintPreviewCancelled https://chromium-review.googlesource.com/c/chromium/src/+/2198331 (cherry picked from commit7bd8a6a576) * [printing] Mojofy PrintHostMsg_PrintPreviewInvalidPrinterSettings https://chromium-review.googlesource.com/c/chromium/src/+/2200556 (cherry picked from commitdd68ba1ecf) * Network service: Remove primary_network_context bool. https://chromium-review.googlesource.com/c/chromium/src/+/2204678 (cherry picked from commit6a0e8e5bf9) * [printing] Move PrintHostMsg_DidPrintContent_Params to print.mojom https://chromium-review.googlesource.com/c/chromium/src/+/2212110 (cherry picked from commita6a3291d9a) * [XProto] Move items from ::x11::XProto to ::x11 https://chromium-review.googlesource.com/c/chromium/src/+/2218476 (cherry picked from commitb16c48830a) * Update patches * Remove no longer needed patch * update patches * update patches Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: Andy Locascio <andy@slack-corp.com> Co-authored-by: loc <loc@users.noreply.github.com> Co-authored-by: Electron Bot <anonymous@electronjs.org>
📝 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.