Note: This is a beta release. Please file new issues for any bugs you find in it.
This release is published to npm under the beta tag and can be installed via npm install electron@beta, or npm i [email protected].
Breaking Changes
Fixed disparity between
net
module headers and Node.js'
http.IncomingMessage
headers. #17517
Made
ShowItemInFolder
asynchronous with no return value. #17121
Made app log directory creation opt-in with a new function
app.setAppLogsPath
. #17841
Upgraded to Chromium 76.0.3774.1
Features
Added Promise support for the Cookies API. #16464
Added
chrome.runtime.getManifest
API for Chrome extensions. #16891
Added
<webview>.getWebContentsId()
, which does not depend of the
remote
module. #17407
Added
all_frames
support for Chrome extension content scripts. #17258
Added
disableHtmlFullscreenWindowResize
option to
webPreferences
to allow preventing window from resizing when entering HTML5 fullscreen. #17203
Added
excludedFromShownWindowsMenu
property to allow for windows to be excluded from the windows menu. #17404
Added
process.getSystemVersion()
, which is available in sandboxed renderers and returns the actual operating system version instead of kernel version on macOS. #16599
Added
process.versions.electron
to get the electron version in the forked process. #16450
Added
renderer-process-crashed
event to
app
, which is emitted when any renderer process crashes. #17315
Added
systemPreferences.getAnimationSettings()
returning system animation settings provided by Chromium. #17382
Added
tray.getTitle()
to allows users to see the title set next to the status bar icon on macOS. #17385
Added a new Event property
triggeredByAccelerator
, which is called back in custom
click
events on
MenuItems
. #16954
Added ability disable fetching thumbnails for in
desktopCapturer.getSources()
. #14906
Added additional error information to errors thrown when using the
remote
module. #17851
Added an option to enable
MenuItems
on macOS to work optionally when
visible: false
. #16853
Added file preview for file picker in Linux. #16447
Added flexible autoresize option for
BrowserView
s in
BrowserWindow
. #16184
Added native Touch ID authentication support for macOS. #16707
Added new
monochrome
,
internal
,
acceleratorEnabled
,
colorDepth
and
depthPerComponent
properties to the Display API Structure. #16870
Added new inspectSharedWorker() API to enable opening devtools for a shared worker. #16615
Added safer
nativeImage.createFromBitmap()
, which does not decode PNG/JPEG. #17337
Added support for Scroll Lock accelerator. #16873
Added world isolation to Chrome extension content scripts. #17032
Converted
app.dock.show()
such that it now returns a Promise. #16904
Converted
contentTracing.getCategories()
to return a promise instead taking a callback. #16583
Converted
contentTracing.getTraceBufferUsage()
to return a Promise instead of taking a callback. #16600
Converted
contents.executeJavaScript()
,
webFrame.executeJavaScript()
,
webFrame.executeJavaScriptInIsolatedWorld()
and
webviewTag.executeJavaScript()
to return Promises instead of taking callbacks. #17312
Converted
dialog.showCertificateTrustDialog()
to return a Promise instead of taking a callback. #17181
Converted
netLog.stopLogging()
to return a Promise instead of taking a callback. #16862
Converted
session.clearAuthCache()
to return a promise instead of optionally taking a callback. #17259
Converted
session.clearHostResolverCache()
to return a Promise instead of taking a callback. #17229
Converted
session.clearStorageData()
such that it returns a Promise instead of taking a callback. #17249
Converted
session.getBlobData()
to return a Promise instead of taking a callback. #17303
Converted
session.getCacheSize()
and
session.clearCache()
to return promises instead of taking callbacks. #17185
Converted
session.setProxy()
and
session.resolveProxy()
to return Promises instead of taking callbacks. #17222
Converted
webContents.hasServiceWorker()
to return a promise instead of taking a callback. #16535
Converted
webContents.printToPDF()
to return a Promise instead of taking a callback. #16795
Converted
webContents.savePage()
to return a Promise instead of taking a callback. #16742
Enabled
NodeIntegrationInSubFrames
option usage for
webview
tags. #17226
Exposed
colorSpace
to the
Display
object. #17405
Feat: add native emoji and color picker methods for Windows and MacOS. #17359
Fixed Chrome extension content scripts not loading in sandboxed renderer. #16218
For security reasons, preload scripts can now only be loaded from a subpath of app path (
app.getAppPath()
). #17308
Implemented
BrowserWindow.moveTop()
on Linux/x11. #16629
Moved
webFrame
custom scheme APIs to browser process under
protocol
. #16416
Process now emits 'loaded' event in sandboxed renderers. #17680
Promisified
inAppPurchase.getProducts()
and
inAppPurchase.purchaseProduct()
. #17355
Replaced
powerMonitor
querySystemIdleState
and
querySystemIdleTime
with synchronous APIs. #17144
Split
dialog.showMessageBox()
into a synchronous version and a version that returns a Promise. #17298
Split
dialog.showOpenDialog()
into a synchronous version and a version that returns a Promise. #16973
Split
dialog.showSaveDialog()
into a synchronous version and a version that returns a Promise. #17054
Fixes
Added missing module name to the exception message thrown when
require
fails in sandboxed renderers. #17413
DevTools Extensions now load correctly. #17614
Enabled autofill popups on Mac. #16308
Ensured that
webContents.hasServiceWorker()
rejects with an error for invalid URLs. #16571
Fixed
beginFrameSubscription
returning blurred images on HiDPI displays. #17444
Fixed
webFrame.setSpellCheckProvider
memory leak. #16448
Fixed a crash when failed to get devices in desktopCapturer on Windows. #17973
Fixed a possible crash on exit. #17879
Fixed an issue preventing the Flash plugin from loading on Linux. #17823
Fixed crash when Electron run from SMB network share. #17909
Fixed inconsistent behavior where modifying the buffer would change
nativeImage
pixels, while decoded PNG / JPEG data is a copy. #17843
Fixed issue where sandboxed renderers could sometimes leak globals outside of the preload script. #17712
Fixed offscreen rendering not working with viz compositor. #17538
Fixed race condition where the
remote
module would sometimes fail to fetch properties of a remote object. #17464
Fixed the callback of
beginFrameSubscription
passing
Buffer
instead of
NativeImage
. #17548
Focus methods no longer steal focus when users are active on other apps. #16400
Improved the way frameless windows are handled on Windows. #16596
Injected chrome extensions that have content scripts with a
.
in the
pattern
field now treat it as a raw
.
instead of a wildcard. #17593
No-notes. #17214
Removed non-existent
gpu-crashed
event on
<webview>
. #17317
Updated the
protocol.registerSchemesAsPrivileged
API options key. #16601
Using
webContents.sendInputEvent
to send a
WebMouseWheelEvent
now has the expected effect. #17757
Other Changes
no-notes. #16552
Converted
accessibilitySupportEnabled
to a proper JS property on
app
. #17362
Converted
applicationMenu
to a proper JS property on the
app
module. #17361
Enabled
sandbox
and disabled
remote
module in default_app. #17318
Enabled sandboxing of devtools and chrome extension background script host renderers. #16864
Fixed race condition in the
desktopCapturer
module where some requests for sources would never be resolved or unhandled exceptions would be thrown in the main process. #18042
No-notes. #16685
Removed Vulkan validation layers DLLs from electron.zip, which are only meant to be used for Chromium development. #18062
Removed
hasServiceWorker
and
unregisterServiceWorker
APIs from the WebContents modules. #16717
Removed deprecated modules internally using
remote.require
in sandboxed renderer context. Use
remote.require
explicitly instead (unless the remote module is disabled). #15957
Removed native mksnapshot binaries for arm/arm64 as they no longer work. #17561
Removed special handling that forced
dialog
methods called over the
remote
module to return their result synchronously but not block the main process. #17412
Reset version to 6.0.0-beta.0 in prep for 6.0.0-beta.1. 37f4bd4d
The
clipboard
module in renderers no longer depends on the
remote
module on Linux. #17200
Documentation
Documentation changes: #16496, #16593, #16700, #16762, #16775, #16865, #16874, #16966, #17467, #17866