* chore: bump chromium in DEPS to 94.0.4595.0 * chore: bump chromium in DEPS to 94.0.4596.0 * chore: bump chromium in DEPS to 94.0.4597.0 * chore: bump chromium in DEPS to 94.0.4598.2 * chore: bump chromium in DEPS to 94.0.4599.2 * chore: bump chromium in DEPS to 94.0.4600.0 * chore: bump chromium in DEPS to 94.0.4601.0 * chore: bump chromium in DEPS to 94.0.4602.0 * chore: bump chromium in DEPS to 94.0.4603.0 * chore: bump chromium in DEPS to 94.0.4604.0 * chore: bump chromium in DEPS to 94.0.4603.0 * chore: bump chromium in DEPS to 94.0.4605.0 * chore: bump chromium in DEPS to 94.0.4606.0 * chore: bump chromium in DEPS to 94.0.4606.3 * chore: bump chromium in DEPS to 94.0.4606.5 * build: 3-way merge of chromium patches (cherry picked from commit d77d456a369c07dbc06e4c2eade23e4029a4c169) * build: 3-way merge of chromium patches (cherry picked from commit e495584d5c8a36a469946ada24fa75b30776e1b9) * 3076040: Reland Remove delete_children RemoveAllChildViews arg Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3076040 (cherry picked from commit 22e131c7b5e146ac57b813a6906d87f98a51c3c3) * 3069287: Remove the remaining uses and delete the deprecated API Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3069287 (cherry picked from commit a6c546107298ab197893e1bdef906b15bb4f1c70) * 2297212: Replace RemoveWithoutPathExpansion(.*, nullptr) with Value::RemoveKey() Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2297212 Also: https://chromium-review.googlesource.com/c/chromium/src/+/3060296 (cherry picked from commit 10854b7cb26b1cd259b067e3f5aa2b266bf8eb9a) * 3082756: Change transport_security_persister_path param to be a path to a file. Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3082756 > this CL intentionally changes the name of the parameter > in the network context parameters and the order of the constructor > parameters to ensure all callers update their code to pass a full > file path rather than a path to a directory. The 'path' in this diff is already an absolute path, coming from `CHECK(base::PathService::Get(chrome::DIR_USER_DATA, &path_));` at08ff1c2cbf/shell/browser/electron_browser_context.cc (L126)(cherry picked from commit 3e310964ffc592b0a0af4eeededeab3cadbec5a5) * iwyu: network::mojom::HttpRawHeaderPair (cherry picked from commit 51c73ea7fd65711eaf26f545b39b8e4a52435182) * fixup! 3076040: Reland Remove delete_children RemoveAllChildViews arg Missed one. (cherry picked from commit f6f9de30780e6b1c677dc55f081af34e4f44fd9c) * 2999884: CodeHealth: Remove DictionaryValue::GetStringWithoutPathExpansion Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2999884 (example of replacing GetStringWithoutPathExpansion() w/FindStringKey()) Also: https://chromium-review.googlesource.com/c/chromium/src/+/3060296 (removal of DictionaryValue::GetStringWithoutPathExpansion) (cherry picked from commit 5f7fd94d71480e05ad8badf4be1cfc5d2bd685ce) * 3059260: Remove kSameSiteByDefaultCookies and kCookiesWithoutSameSiteMustBeSecure Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3059260 We had both of these in a 'disable_features' list. Since these feature have been removed upstream, remove them from our disable list, too. IMPORTANT: this commit should not be backported to older branches that still have these features, because doing so would un-disable them. (cherry picked from commit a09154d0b20af4680d7c7be6cafd40f84408df2e) * 2920890: Load reroute_info from download in-progress and history db back into DownloadItem. Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2920890 (cherry picked from commit 66a3797a3f798a368c7630d6c6a1ebc3d8606880) * 3039323: [Clipboard API] Clipboard Custom Formats implementation Part 5. Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3039323 (cherry picked from commit 136b2ed9aa601bd59b3416d11c1109d249850faa) * 3084502: Add a new PrintRasterizePdfDpi policy. Refs: https://chromium-review.googlesource.com/c/chromium/src/+/3084502 (cherry picked from commit effbe639741a0ae7929691b1ec174aa61bdfd921) * chore: update patches (cherry picked from commit 4b03542e425f73ef7742ee272f30feac350d9bd0) * chore: update patches * Disable kDesktopCaptureMacV2 https://chromium-review.googlesource.com/c/chromium/src/+/3069272 (cherry picked from commit 4b308cb8c37b8d84bce8f037d11c242ce9d45845) * [DevTools] Remove report_raw_headers from network::ResourceRequest (Attempt #2) https://chromium-review.googlesource.com/c/chromium/src/+/2856099 (cherry picked from commit 5e72ee04519bfbcc524ad198175f5d28006f55c8) * Add a new PrintRasterizePdfDpi policy. https://chromium-review.googlesource.com/c/chromium/src/+/3084502 (cherry picked from commit fe24bdc76233fc9b64fa3ba6619d8a44c464120c) * chore: update patches * chore: fix lint (cherry picked from commit ed0d9adef6b9c5fb8c2b4bcf6783a3bd58605d51) * Linux: use chrome_crashpad_handler instead of crashpad_handler https://chromium-review.googlesource.com/c/chromium/src/+/3054290 (cherry picked from commit 0c63c9c1312422180c85bedac5ba8cfb6418649f) * DCHECK that predictor always has a non-empty NetworkIsolationKey. https://chromium-review.googlesource.com/c/chromium/src/+/3067698 (cherry picked from commit ce135b12534ca03ce3dc2aa0a9e0ddcfc4627aa6) * fixup! Remove kSameSiteByDefaultCookies and kCookiesWithoutSameSiteMustBeSecure https://chromium-review.googlesource.com/c/chromium/src/+/3059260 (cherry picked from commit db85c394ba40c3fde42f6b09bc9b01105dbe4d76) * chore: bump chromium in DEPS to 94.0.4606.12 * chore: update patches * Disable kDesktopCaptureMacV2 https://chromium-review.googlesource.com/c/chromium/src/+/3069272 (cherry picked from commit205e477037) * Convert PrintManager to RenderFrameHostReceiverSet. https://chromium-review.googlesource.com/c/chromium/src/+/3072019 (cherry picked from commit6bf73bce81) * [Clipboard API] Clipboard Custom Formats implementation Part 5. https://chromium-review.googlesource.com/c/chromium/src/+/3039323 (cherry picked from commitffd697df93) * Convert ExtensionFrameHost to RenderFrameHostReceiverSet. https://chromium-review.googlesource.com/c/chromium/src/+/3063358 (cherry picked from commit5e50771835) * cleanup after merge * chore: fix lint (cherry picked from commitb4ea757281) * chore: disable v8 oilpan (cherry picked from commit19a5afd264) * fixup! Remove kSameSiteByDefaultCookies and kCookiesWithoutSameSiteMustBeSecure (cherry picked from commitd0a1a8b51a) * fixup! Remove kSameSiteByDefaultCookies and kCookiesWithoutSameSiteMustBeSecure (cherry picked from commitc49b5a9277) * fixup! Disable kDesktopCaptureMacV2 (cherry picked from commitbc6b974647) Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: PatchUp <73610968+patchup[bot]@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
For more installation options and troubleshooting tips, see installation. For info on how to manage Electron versions in your apps, see Electron versioning.
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.