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 electron@9.0.0-beta.1.
Release Notes for v9.0.0-beta.1
Breaking Changes
- IPC between main and renderer processes now uses the Structured Clone Algorithm. #20214
- Removed the
visibleOnFullscreen
option insetVisibleOnAllWorkspaces.
. #21706 - Split
shell.openItem(path)
into synchronous and asynchronous methods. #20682
Features
- Added BrowserWindow.moveAbove(mediaSourceId). #18926
- Added GUID parameter to Tray API to avoid system tray icon demotion on Windows. #21891
- Added
--enable-api-filtering-logging
command-line switch, which enables caller stack logging fordesktopCapturer
andremote
APIs that can be blocked or filtered. #20335 - Added
app.getApplicationNameForProtocol()
API. #20399 - Added
mouse-down
andmouse-up
events to the Tray on macOS. #21795 - Added
nativeTheme.themeSource
to allow apps to override Chromium and the OS's theme choice. #19960 - Added
screen
tosystemPreferences.getMediaAccessStatus()
for detecting the new macOS Catalina permissions. #20764 - Added
session.addWordToSpellCheckerDictionary
API to support custom words in the. #21266 - Added
session.downloadURL()
allowing to trigger downloads without aBrowserWindow
. #19889 - Added
timeoutType
property to allows users to set timeout type for Linux and Windows notifications. #20153 - Added
trafficLightPosition
option inBrowserWindow
API to allow custom positioning of traffic lights. #21781 - Added
tray.closeContextMenu()
to allow programmatic closure of Tray menus. #21807 - Added
tray.focus()
, which returns focus to the taskbar notification area. #19548 - Added
tray.removeBalloon()
, which removes an already displayed balloon notification. #19547 - Added
validatedCertificate
to thesetCertificateVerifyProc
callback to assist with certificate pinning implementations. #21890 - Added
win.accessibleTitle property
to be able to augment the window title for the screen readers. #19698 - Added
win.getBackgroundColor()
forBrowserWindow
on macOS. #21448 - Added a missing fiddle - migrates the 'Launching an app from URL...' fiddle from electron-api-demos. #20718
- Added ability to inspect specific shared workers:
contents.getAllSharedWorkers()
/contents.inspectSharedWorkerById(workerId)
. #20389 - Added about panel customization on Windows. #19420
- Added an
urgency
property to allow customization of Linux-based notifications. #20152 - Added new
nativeTheme
API to read and respond to changes in the OS's theme and color scheme. #19656 - Added options to enable customization of print page headers and footers. #19688
- Added property customization to save dialogs. #19672
- Added support for HTTP preconnect resource hints. #18671
- Added support for picture-in-picture mode for video elements. #17686
- Added support for the built-in spellchecker. We will use the OS spellchecker on macOS and hunspell on all other platforms. #20692
- Added the ability to prevent documents from being added to recent documents on Windows in open dialogs. #19669
- Added the ability to set app activation policy on
macOS
. #21983 - Added the ability to specify
pageSize
when printing withwebContents.print()
. #22014 - Added the support of fitToPageEnabled and scaleFactor in
WebContents.printToPDF()
. #20436 - Added tracing instrumentation to WebContents IPC methods, available with the contentTracing category "electron". #21404
- Adds a fiddle to demo how to open external links and how to open all outbound links. #20763
- Adds ability to disable / enable a
TouchBarButton
. #20945 - Allowed some specific options to be passed via NODE_OPTIONS to packaged apps. #20857
- Began issuing a deprecation warning when the 'remote' module is used when enableRemoteModule: true isn't explicitly specified. See https://github.com/electron/electron/issue/21408 for more details. #21546
- Changed NODE_OPTIONs to allow
--http-parser
to be used in packaged apps. #21694 - Deprecated
<webview>.getWebContents()
as it depends on theremote
module. #20726 - Enable macOS users to fallback to item removal when when
shell.moveItemToTrash
fails. #19700 - Enabled V8 pointer compression. #21468
- Explicitly allow product restoration to an app with. #21461
- Exposed
executeJavaScriptInIsolatedWorld
on thewebContents
API. #21190 - Exposed more customizable options for
contents.printToPDF()
and fixed a potential for native crash. #21906 - Exposing methods required by capturing a hidden webContents。. #21679
- Fixed Wunderlist app not loading. #17742
- Implemented 'will-move' event on BrowserWindow on macOS. #19641
- Implemented
win.setAspectRatio()
on Linux. #19516 - Improved TouchBarButton and TouchBarLabel a11y with
accessibilityLabel
property. #20454 - Improved the returned types and descriptions for the
PrinterInfo
API structure returned bywebContents.getPrinters
. #21081 - New options added to
tray.displayBalloon()
:iconType
,largeIcon
,noSound
andrespectQuietTime
. #19544 - Objects not serializable using Structured Clone will now cause an error to be thrown when attempting to send them across IPC. #21560, #21560
- Removed the deprecated 'setLayoutZoomLevelLimits' method. #21383
- Switched to a native-backed implementation of Chrome Extensions. #21814
Fixes
- Added name of module to context-aware deprecation warning (#18397). #21952
- DOM storage quota enforcement re-enabled, but limit changed from 10MiB to 100MiB. #20899
- Don't destroy active menus created as local objects in javascript. #19427
- Exposed
setMenuBarVisibility
onBrowserWindow
again. #19557 - Fixed Linux console warning about gtk_disable_setlocale(). #19986
- Fixed Linux desktop tray icon size regression introduced in the 8.0 betas. #21904
- Fixed Node.js'
worker_threads
inELECTRON_RUN_AS_NODE
. #20416 - Fixed POST-ing HTML forms with target=_blank. #21469
- Fixed
BrowserWindow.fromWebContents()
to returnnull
when no window is found for consistency with other APIs. #19983 - Fixed
Tray.setContextMenu
not updating the menu on Linux. #21883 - Fixed
cookies.get
not working whenurl
is not specified in filter. #20471 - Fixed
cookies.set
not working correctly whenname
orexpirationDate
is omitted. #21454 - Fixed
shell.openExternal()
optionworkingDirectory
not working with Unicode characters. #20879 - Fixed a bug where an unresizable window would shrink when restored after being minimized on Windows. #19886
- Fixed a bug where sometimes a ~10px white border would be added to fullscreen windows on Windows. #19883
- Fixed a crash in Node.js initialization in renderer processes. #20684
- Fixed a crash in
webContents.print()
caused by infinite recursion. #21889 - Fixed a crash in
window.print()
. #19690 - Fixed a crash on
<input type="file">
dialog cancellation. #19897 - Fixed a crash on manual print cancellation as well as an issue with
deviceName
not working. #19598 - Fixed a crash that could occur when calling
crashReporter.getUploadedReports
. #20428 - Fixed a crash that could occur when visiting HTTPS sites with invalid certificates. #21976
- Fixed a label mismatch on open and save dialogs on GTK. #20861
- Fixed a potential crash on faulty
deviceName
s inwebContents.print()
. #21946 - Fixed a race condition that occurred when using protocol.registerStreamProtocol. #19811
- Fixed a regression in the
recentDocuments
MenuItem role on macOS. #20398 - Fixed an issue in the remote module which could cause the name of the Object constructor to be overwritten globally. #20637
- Fixed an issue that prevented setuid binaries from being launched from the renderer process on Linux. #19953
- Fixed an issue where
app.getPath('logs')
would throw an error if the logs path was not previously set. #19653 - Fixed an issue where
menu.closePopup()
would have no effect if called too soon aftermenu.popup()
. #20114 - Fixed an issue where
net
requests with redirection mode 'error' could incorrectly follow a redirect. #20686 - Fixed an issue where
webContents.printToPDF
failed to properly generate the PDF document. #21783 - Fixed an issue where a call to
child_process.fork()
would setELECTRON_RUN_AS_NODE
in the main process. #19742 - Fixed an issue where extension URLs were passing an incorrectly formatted
startPage
. #21711 - Fixed an issue where microtasks could sometimes be scheduled too eagerly, causing crashes when invoking Electron APIs during promises in certain situations. #20303
- Fixed an issue where sites using
ShadowDOMV0
,CustomElementsV0
, orHTMLImports
would not load properly. #21858 - Fixed an issue where the
open-url
event was not properly being fired on macOS. #20518 - Fixed an issue with Node.js context initialization in renderer processes. #20833
- Fixed an issue with open and save dialogs selecting properties. #19781
- Fixed async Node APIs not working after received IPC message. #19718
- Fixed build issue where ChromeDriver would fail to start. #21961
- Fixed case where
unlock-screen
andlock-screen
events would fire erroneously on citrix and other multi-session systems. #21805 - Fixed case where sending IPC to a child window (opened with
window.open
) could cause a crash. #19553 - Fixed compilation error for native modules building with VS 2015. #21950
- Fixed crash loading file based ServiceWorkers. #20132
- Fixed crash when doing redirect navigation with
webRequest
listener. #21838 - Fixed debug symbol files on linux not containing private symbols. #20530
- Fixed desktopCapturer leak. #20156
- Fixed devtools extensions not loading due to "Connect to unknown extension [object Object]" errors. #20791
- Fixed disabling color correct rendering with
--disable-color-correct-rendering
. #20356 - Fixed downloading mas package failed when defined 'npm_config_platform=mas'. #21801
- Fixed flash plugin not working. #22111
- Fixed i18n of GTK messageboxes' stock buttons. #19904
- Fixed improper behaviour of window with width constraint set during resize. #20519
- Fixed issue where maximizing a window on Windows in vertically stacked multi-monitor setups could result in the window rendering a white screen. #20051
- Fixed issue where renderers could crash during GC when using the
contextBridge
module. #22113 - Fixed issue with when playing videos or audio Electron would ask for accessibility access. #21959
- Fixed memory leak when using protocol.registerSchemeAsPrivileged api. #20546
- Fixed net module request raises error when non-2xx response received. #21055
- Fixed printing. #21026
- Fixed process taking 100% CPU when crashed with no crashReporter set up on Windows x64. #20388
- Fixed setting
content-type
header with charset breakingprotocol
APIs. #20538 - Fixed several deprecation warnings in Electron code. #20793
- Fixed some
systemPreferences.getColor()
inconsistencies on macOS. #20611 - Fixed spelling errors. #21915
- Fixed the position of popups being created over embedded content. #20232
- Fixed vibrant windows not properly having rounded corners on Mac. #20360
- Fixed white flash after restoring an app from the background. #19873
- Limited the
nativeTheme
API to the browser process only. #20139 - Localized dialog button text on Linux. #19725
- No notes. #21930
- Prevented 'Reopen windows?' dialog from appearing on macOS after a crash. #19584
- Removed
__esModule = true
inadvertently exported by theelectron
module. #20939 - Removed unnecessary chromium patch for browser compositor on mac. #20390
- The
dictionarySuggestions
property is now correctly populated when the built-in spellchecker is enabled. #21997 - Updated Node.js to v12.13.1. #21198
- Updated Node.js to v12.8.0. #19521
- [deps/uv] fsevents: fix file event reporting (backport: v12.x). #20408
setLayoutZoomLevelLimits
no longer works in Electron 8, so emit a warning message when using it. The function will be removed in Electron 9. #21296
Other Changes
- Added Windows on Arm (64 bit) release. #20094
- Added Windows on Arm node header files to checksum file. #20255
- Fixed a crash that could occur if a WebContents was destroyed during a navigation event. #20099
- Fixed first beta version choosing logic. bf66fe5
- Fixed node.lib linking issue. #20192
- No-notes. #18760, #20003
- Prepare for 9.0.0-beta.1. 23f32ca
- Removed .only. f566e56
- Removed deprecated
<webview>.getWebContents()
. #20986 - Removed undocumented
ipcRenderer.sendToAll()
. #19556 - Strip non-determinism from zip release files. #21756
- The
remote
module now properly serializesBoolean
,Number
,String
andRegExp
instances. #20427 - Updated Node.js to v12.10.0. #20129
- Updated Node.js to v12.12.0. #20584
- Updated Node.js to v12.13.0. #20657
- Updated Node.js to v12.14.0. #21579
- Updated Node.js to v12.14.1. #21703
- Updated Node.js to v12.8.1. #19790
- Updated Node.js to v12.9.0. #19863
- Updated Node.js to v12.9.1. #19980