Build cross platform desktop apps with JavaScript, HTML, and CSS!

Electron

Electron

  -  106 MB  -  Open Source
  • Latest Version

    Electron 31.3.0 (64-bit) LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows 7 64 / Windows 8 64 / Windows 10 64 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    GitHub, Inc. / External Link

  • Filename

    electron-v31.3.0-win32-x64.zip

Electron is a framework for creating native applications with web technologies like JavaScript, HTML, and CSS. It takes care of the hard parts so you can focus on the core of your application. If you can build a website, you can build a desktop app! With Electron, creating a desktop application for your company or idea is easy!

It uses Chromium and Node.js so you can build your app with HTML, CSS, and JavaScript. The app is an open-source project maintained by GitHub and an active community of contributors. Compatible with Mac, Windows, and Linux, Electron apps build and run on three platforms.

The API Demos app interactively demonstrates the most important features of the Electron API. See what's possible with Electron 64 bit with sample code and helpful tips for building your app.

Electron Fiddle lets you create and play with small experiments. It greets you with a quick-start template after opening – changes a few things, chooses the version of the app you want to run it with, and play around. Then, save your Fiddle either as a GitHub Gist or to a local folder. Once pushed to GitHub, anyone can quickly try your Fiddle out by just entering it in the address bar.

It supports Windows 7 and later versions – attempting to develop applications on earlier versions of Windows will not work. Microsoft provides free virtual machine images with Windows 10 and Windows 11 for developers.

Before you get started, you might want to install a code editor suited for JavaScript development.

  • Electron 31.3.0 (64-bit) Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Electron 31.3.0 (64-bit) Screenshot 1
  • Electron 31.3.0 (64-bit) Screenshot 2
  • Electron 31.3.0 (64-bit) Screenshot 3

What's new in this version:

Electron 31.3.0 (64-bit)
Features:
- Added DownloadItem.getCurrentBytesPerSecond(), DownloadItem.getPercentComplete(), DownloadItem.getEndTime()
- Aligned failure pathway in File System Access API with upstream when attempting to open a file or directory in a blocked path

Fixed:
- Fixed a potential crash when using off screen rendering
- Fixed an issue where navigator.mediaDevices.getUserMedia and navigator.getUserMedia should reject with a NotAllowedError if microphone or camera permissions have been denied at the system level on macOS
- Fixed an issue where calling BrowserWindow.setBackgroundColor with some level of transparency could cause a crash

Other Changes:
- Fix: fixed the npm run lint not working on Windows
- Updated Chromium to 126.0.6478.183
- Updated Node.js to v20.15.1


Electron 31.2.1 (64-bit)
Fixed:
- a potential error when calling webContents.close() on a BrowserView
- an issue where High Contrast Mode didn't apply to webContents on Windows
- an issue where sources returned by the desktopCapturer API and screen.getAllDisplays() no longer matched on Windows
- an issue where sources returned by the desktopCapturer API and screen.getAllDisplays() no longer matched on Windows
- an issue where the File System Access API did not remember the user's last picked directory as expected
- crash when resolving proxy with session.resolveProxy api


Electron 31.2.0 (64-bit)
Features:
- Enabled the Windows Control Overlay API on Linux

Fixed:
- Fixed a focus issue when calling BrowserWindow.setTopBrowserView
- Fixed an issue where Chromium could crash on a dangling unretained pointer in one of several webRequest functions
- Fixed an issue where navigator.mediaDevices.enumerateDevices could return broken results in some cases after calling session.setPermissionCheckHandler
- Fixed an issue where control could fail to return properly after saving a dialog using showOpenDialogSync on Linux
- Fixed an issue where the user-specified default path did not work in some circumstances when using Linux dialogs

Other Changes:
- Fixed an issue where opening multiple file pickers on Windows via the input tag could cause a crash
- Updated Chromium to 126.0.6478.127
- Updated Node.js to v20.15.0


Electron 31.1.0 (64-bit)
Features:
- Expose systemPreferences to utilityProcess

Fixed:
- Fixed an issue where MessagePorts could close unexpectedly with non-cloneable objects sent via postMessage
- Fixed an issue where fetch-dependent interfaces could be missing in Web Workers with nodeIntegrationInWorker enabled

Other Changes:
- Updated Chromium to 126.0.6478.114


Electron 31.0.2 (64-bit)
Fixed:
- Fixed an issue where navigator.usb.getDevices() could crash in some circumstances

Other Changes:
- Fixed crash in gpu process when software compositing is enabled on linux with x11 platform
- Updated Chromium to 126.0.6478.61


Electron 31.0.1 (64-bit)
Fixed:
- Fixed an issue where fetch dependent interfaces in Node.js were not defined when nodeIntegration was enabled in some circumstances
- Fixed an issue where bad flags passed via --js-flags could cause a crash


Electron 31.0.0 (64-bit)
Breaking Changes:
- Made window.flashFrame(bool) flash continuously on macOS
- Updated Chromium to 126.0.6445.0. (Removed: WebSQL support)
- Updated Chromium to 125.0.6412.0. (Behavior Changed: nativeImage.toDataURL will preserve PNG colorspace)

Features:
Additions:
- Added a new instance property navigationHistory on webContents API with navigationHistory.getEntryAtIndex method, enabling applications to retrieve the URL and title of any navigation entry within the browsing history
- Added options parameter to Session.clearData API
- Added proxy configuring support for requests made with net module from utility process
- Added support for Bluetooth ports being requested by service class ID in navigator.serial
- Added support for NODE_EXTRA_CA_CERTS
- Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow
- Implemented support for the File System API
- clearData method added to Session
- Extended WebContentsView to accept pre-existing webContents object

Improved:
- Extended WebContentsView to accept pre-existing webContents object
- Improved error messages when ses.cookies.set fails
- Re-adds functionality to check whether or not an app was launched as a login service on macOS

Removed/Deprecated:
- The inputFieldType property in the context-menu params has been removed

Fixed:
- Added missing support for the recursive option in fs.{readdir|readdirSync} as well as fs.promises.{readdir|readdirSync}
- Added support for withFileTypes when calling fs.{readdir|readdirSync} with the recursive in Asar archives
- Fixed ASAN build on macOS
- Fixed a bug where a window with maximization disabled and WCO enabled would still show its maximization button
- Fixed an issue where child views in a BrowserWindow could sometimes be
- Fixed issue where windows made visible with showInactive were blank
- Fixed potentially incorrect exit code in UtilityProcess
- originalFs.promises.cp now works


Electron 30.1.0 (64-bit)
Fixed:
- BrowserWindow.show() now correctly restores focus to inactive apps on macOS
- Fixed BrowserWindow vibrancy on macOS
- Fixed an issue where BrowserView webContents were getting destroyed even when preventDefault was being set on the owning BrowserWindow's close event
- Fixed an issue where dialogs did not work if they were parented to a BaseWindow and not a BrowserWindow
- Fixed an issue where some calls to WebUSB methods could crash

Other Changes:
- Updated Chromium to 124.0.6367.243
- Updated Node.js to v20.14.0


Electron 30.0.9 (64-bit)
Fixed:
- Fixed the type of WebviewTag.webpreferences back to string

Other Changes:
- Updated Chromium to 124.0.6367.233

Electron 30.0.8 (64-bit)
- Updated Chromium to 124.0.6367.230


Electron 30.0.7 (64-bit)
Fixed:
- Fixed an issue where non-English IME users would see app hangs on a second monitor
- Fixed an issue where the window could be incorrectly centered in some circumstances when calling BrowserWindow.center()

Other Changes:
- Updated Chromium to 124.0.6367.221


Electron 30.0.6 (64-bit)
- Fixed a potential issue with Linux layout invalidation


Electron 30.0.5 (64-bit)
Fixed:
- Fixed an issue where setTitleBarOverlay didn't work as expected when called on BaseWindow
- Fixed an issue where webContents.navigationHistory was not an enumerable property
- Fixed crash on window maximize on X11
- BrowserWindow.focus() now correctly restore focus to inactive apps on macOS

Other Changes:
- Backported fix for 340221135
- Updated Chromium to 124.0.6367.207


Electron 30.0.4 (64-bit)
Fixed:
- a crash in addChildView if a view is added as its own child
- a crash when the same WebContentsView is added via addChildView multiple times
- an error when calling setAutoResize on a BrowserView
- an inconsistent crash on maximizing window and relayout in Ubuntu
- an issue where calling window.center() on Windows and Linux incorrectly centered the window


Electron 30.0.3 (64-bit)
Fixed:
- Fixed an issue where document.requestFullscreen didn't work when calling it from a webContents inside WebContentsView
- Fixed an issue where fs.createWriteStream could write out of order
- Fixed an issue where recentDOcuments wasn't populating properly on macOS
- Fixed crash after upgrade on Linux

Other Changes:
- Backported fix for 330756841
- Backported fix for 339266700
- Updated Chromium to 124.0.6367.119


Electron 30.0.2 (64-bit)
Fixed:
- Electron doesn't paint on offscreen-render mode after gpu process crashed
- Fixed data corruption when protocol.handle() processed incoming data asynchronously
- Fixed nativeImage.createThumbnailFromPath and shell.openExternal not resolving when called in the renderer process


Electron 30.0.1 (64-bit)
- Updated Chromium to 124.0.6367.60


Electron 30.0.0 (64-bit)
Features:
- Added support for NODE_EXTRA_CA_CERTS
- Implemented support for the File System API

Fixed:
- Fixed an issue on Windows where silent printing resulted in comically tiny renderer output
- Fixed an issue where showing or focusing a panel window would activate the app on Mac
- Fixed missing <__assertion_handler> header when compiling with libc++

Other Changes:
- Updated Chromium to 124.0.6367.49


Electron 29.3.0 (64-bit)
- Fixed a bug where a window with maximization disabled and WCO enabled would still show its maximization button


Electron 29.2.0 (64-bit)
Fixed:
- crash in Notification::Close() under libnotify 0.8.x with portal environment
- usage of Storage.{get|set|clear}Cookies via the Chrome DevTools Protocol


Electron 29.1.6 (64-bit)
Fixed:
- shell.showItemInFolder not opening Windows Explorer if the passed path contains forward slashes
- a potential crash in chrome.scripting on extension unload
- an issue where emojis weren't properly handled on Windows
- an issue where the serial-port-added event improperly respected filters set by serial.requestPort()


Electron 29.1.5 (64-bit)
Fixed:
- Fixed an issue where badge text set using the Badging API no longer appeared correctly on Windows

Other Changes:
- Updated Chromium to 122.0.6261.130


Electron 29.1.4 (64-bit)
- Updated Chromium to 122.0.6261.129


Electron 29.1.3 (64-bit)
Fixed:
- Fixed chrome://process-internals failing to load
- Fixed a memory corruption crash on Windows by removing DXDiag telemetry code

Other Changes:
- Backported fix for 40265302
- Updated Chromium to 122.0.6261.112


Electron 29.1.1 (64-bit)
Fixed:
- Fixed an issue where user-did-{resign|become}-active were not emitted properly on macOS
- Fixed an issue where webContents.print(options) failed if options was not passed or undefined is passed

Other Changes:
- Updated Chromium to 122.0.6261.95


Electron 29.1.0 (64-bit)
Features:
- Added proxy configuring support for requests made with net module from utility process

Fixed:
- Ensured ScreenCaptureKit is used exclusively on macOS 14.4 and higher to avoid permission prompts

Other Changes:
- Updated Chromium to 122.0.6261.70


Electron 29.0.1 (64-bit)
- Fixed an issue where the -webkit-app-region: drag property was not respected on some windows
- Updated Chromium to 122.0.6261.57


Electron 29.0.0 (64-bit)
Breaking Changes:
- Functions called over the contextBridge are now called with the expected receiver (this)
- The gpu-process-crashed event on app has been deprecated
- The deprecated gpu-process-crashed event on app has been removed
- The deprecated renderer-process-crashed event on app and crashed event on WebContents and have been removed

Features:
Additions:
- Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs
- Added keyboardLock to ses.setPermissionRequestHandler(handler)
- Added an option in protocol.registerSchemesAsPrivileged to allow V8 code cache in custom schemes
- Added net module to utility process
- Added new Electron Fuse that opts the file:// protocol into more secure and restrictive behaviour that matches Chromium
- Added new webUtils.getPathForFile method to replace File.path augmentation
- Added support for configuring use_remote_checksums via .npmrc
- Migrated app.{set|get}LoginItemSettings(settings) to use Apple's new recommended underlying framework on macOS
- This PR adds several properties to the display object including detected, maximumCursorSize, and nativeOrigin

Removed/Deprecated:
- Removed extraneous dlls from Windows zip files

Fixed:
- Added support for ThumbnailCapturerMac and ScreenCaptureKitStreamPickerSonoma chromium feature flags to bypass deprecated API warning on macOS 14.4
- Fixed Electron 29.0.0-beta.3 regression that could pop up context menus in the wrong location
- Fixed an issue where import.meta.url did not work in the renderer process with contextIsolation enabled
- Fixed an issue where original-fs methods were not properly corrected for patched imports
- Fixed an issue where draggable regions didn't work across platforms
- Fixed crash in MessagePort::close
- Fixed the GrantFileProtocolExtraPrivileges not correctly preventing fetch() calls to file:// URLs


Electron 28.2.3 (64-bit)
Fixed:
- a crash that started occurring sporadically with some types of macOS window close
- an issue where webContents.printToPDF could fail when certain combinations of margins and pageSize values are passed
- an issue where crashes in node::Environment destruction potentially wouldn't be propagated to the NodeService exit handler
- an issue where zoom level settings did not persist per-session for webviews

Other Changes:
- Updated Chromium to 120.0.6099.283


Electron 28.2.2 (64-bit)
- Fixed an issue where select-usb-device did not respect the filter option in navigator.usb.requestDevice()


Electron 28.2.1 (64-bit)
Fixed:
- Apply module search paths restriction on worker and child process
- Fixed a potential async_hooks crash when listening for the restore event on Windows after minimizing a maximized BrowserWindow
- Fixed an issue where Request objects did not correctly copy headers into fetches
- Fixed an issue where non-modal windows with vibrancy could have incorrectly rounded corners on Sonoma
- Fixed an issue where the printBackground option in webContents.printToPDF did not work as expected
- Fixed forked child process not able to send IPC message under some cases on macOS
- Fixed on-screen-keyboard not hiding for webviews under some cases

Other Changes:
- Removed extraneous dlls from Windows zip files
- Security: backported fix for CVE-2024-0807
- Security: backported fix for 1407197
- Updated Chromium to 120.0.6099.268


Electron 28.2.0 (64-bit)
Features:
- Added net module to utility process

Fixed:
- session.fromPartition() key lookup bug
- a potential crash when calling dialog.showMessageBoxSync
- a potential renderer crash when inspecting elements
- macOS bug that causes window maximize button to be disabled in full-screen mode

Other Changes:
- Updated Chromium to 120.0.6099.227


Electron 28.1.4 (64-bit)
- Fixed an issue where inAppPurchase.getProducts and inAppPurchase.purchasedProduct did not resolve as expected


Electron 28.1.3 (64-bit)
- Fixed a crash resultant from trying to listen to power-related events before the ready event was emitted on Linux