Electron 3.0.0
The Electron team is excited to announce that the first stable release of Electron 3 is now available from electronjs.org and via npm install electron@latest
! It's jam-packed with upgrades, fixes, and new features, and we can't wait to see what you build with them. Below are details about this release, and we welcome your feedback as you explore.
Release Process
As we undertook development of v3.0.0
, we sought to more empirically define criteria for a stable release by formalizing the feedback progress for progressive beta releases. v3.0.0
would not have been possible without our App Feedback Program partners, who provided early testing and feedback during the beta cycle. Thanks to Atlassian, Atom, Microsoft Teams, Oculus, OpenFin, Slack, Symphony, VS Code, and other program members for their work. If you'd like to participate in future betas, please mail us at info@electronjs.org.
Changes / New Features
Major bumps to several important parts of Electron's toolchain, including Chrome v66.0.3359.181
, Node v10.2.0
, and V8 v6.6.346.23.
- [#12656] feat:
app.isPackaged
- [#12652] feat:
app.whenReady()
- [#13183] feat:
process.getHeapStatistics()
- [#12485] feat:
win.moveTop()
to move window z-order to top - [#13110] feat: TextField and Button APIs
- [#13068] feat: netLog API for dynamic logging control
- [#13539] feat: enable
webview
in sandbox renderer - [#14118] feat:
fs.readSync
now works with massive files - [#14031] feat: node
fs
wrappers to makefs.realpathSync.native
andfs.realpath.native
available
Breaking API changes
- [#12362] feat: updates to menu item order control
- [#13050] refactor: removed documented deprecated APIs
- See docs for more details
- [#12477] refactor: removed
did-get-response-details
anddid-get-redirect-request
events - [#12655] feat: default to disabling navigating on drag/drop
- [#12993] feat: Node
v4.x
or greater is required use theelectron
npm module - [#12008 #12140 #12503 #12514 #12584 #12596 #12637 #12660 #12696 #12716 #12750 #12787 #12858] refactor:
NativeWindow
- [#11968] refactor:
menu.popup()
- [#8953] feat: no longer use JSON to send the result of
ipcRenderer.sendSync
- [#13039] feat: default to ignore command line arguments following a URL
- [#12004] refactor: rename
api::Window
toapi::BrowserWindow
- [#12679] feat: visual zoom now turned off by default
- [#12408] refactor: rename app-command
media-play_pause
tomedia-play-pause
macOS
- [#12093] feat: workspace notifications support
- [#12496] feat:
tray.setIgnoreDoubleClickEvents(ignore)
to ignore tray double click events. - [#12281] feat: mouse forward functionality on macOS
- [#12714] feat: screen lock / unlock events
Windows
- [#12879] feat: added DIP to/from screen coordinate conversions
Nota Bene: Switching to an older version of Electron after running this version will require you to clear out your user data directory to avoid older versions crashing. You can get the user data directory by running console.log(app.getPath("userData"))
or see docs for more details.
Bug Fixes
- [#13397] fix: issue with
fs.statSyncNoException
throwing exceptions - [#13476, #13452] fix: crash when loading site with jquery
- [#14092] fix: crash in
net::ClientSocketHandle
destructor - [#14453] fix: notify focus change right away rather not on next tick
MacOS
- [#13220] fix: issue allowing bundles to be selected in
<input file="type">
open file dialog - [#12404] fix: issue blocking main process when using async dialog
- [#12043] fix: context menu click callback
- [#12527] fix: event leak on reuse of touchbar item
- [#12352] fix: tray title crash
- [#12327] fix: non-draggable regions
- [#12809] fix: to prevent menu update while it's open
- [#13162] fix: tray icon bounds not allowing negative values
- [#13085] fix: tray title not inverting when highlighted
- [#12196] fix: Mac build when
enable_run_as_node==false
- [#12157] fix: additional issues on frameless windows with vibrancy
- [#13326] fix: to set mac protocol to none after calling
app.removeAsDefaultProtocolClient
- [#13530] fix: incorrect usage of private APIs in MAS build
- [#13517] fix:
tray.setContextMenu
crash - [#14205] fix: pressing escape on a dialog now closes it even if
defaultId
is set
Linux
- [#12507] fix:
BrowserWindow.focus()
for offscreen windows
Other Notes
- PDF Viewer is currently not working but is being worked on and will be functional once again soon
TextField
andButton
APIs are experimental and are therefore off by default- They can be enabled with the
enable_view_api
build flag
- They can be enabled with the
What's Next
The Electron team continues to work on defining our processes for more rapid and smooth upgrades as we seek to ultimately maintain parity with the development cadences of Chromium, Node, and V8.