Electron Releases - v9.0.0-beta.1

npm install electron@v9.0.0-beta.1
yarn add electron@v9.0.0-beta.1
Note: This is a beta release, this means it may be shipping with an unreleased version of Chromium.
Please file new issues for any bugs you find in it.

Release Notes

Breaking Changes

  • IPC between main and renderer processes now uses the Structured Clone Algorithm. #20214
  • Removed the visibleOnFullscreen option in setVisibleOnAllWorkspaces.. #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 for desktopCapturer and remote APIs that can be blocked or filtered. #20335
  • Added app.getApplicationNameForProtocol() API. #20399
  • Added mouse-down and mouse-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 to systemPreferences.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 a BrowserWindow. #19889
  • Added timeoutType property to allows users to set timeout type for Linux and Windows notifications. #20153
  • Added trafficLightPosition option in BrowserWindow 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 the setCertificateVerifyProc 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() for BrowserWindow 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 with webContents.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 the remote 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 the webContents 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 by webContents.getPrinters. #21081
  • New options added to tray.displayBalloon(): iconType, largeIcon, noSound and respectQuietTime. #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 on BrowserWindow 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 in ELECTRON_RUN_AS_NODE. #20416
  • Fixed POST-ing HTML forms with target=_blank. #21469
  • Fixed BrowserWindow.fromWebContents() to return null 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 when url is not specified in filter. #20471
  • Fixed cookies.set not working correctly when name or expirationDate is omitted. #21454
  • Fixed shell.openExternal() option workingDirectory 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 deviceNames in webContents.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 after menu.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 set ELECTRON_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, or HTMLImports 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 and lock-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 breaking protocol 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 the electron 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. bf66fe51
  • Fixed node.lib linking issue. #20192
  • No-notes. #18760, #20003
  • Prepare for 9.0.0-beta.1. 23f32ca9
  • Removed .only. f566e562
  • Removed deprecated <webview>.getWebContents(). #20986
  • Removed undocumented ipcRenderer.sendToAll(). #19556
  • Strip non-determinism from zip release files. #21756
  • The remote module now properly serializes Boolean, Number, String and RegExp 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

Documentation

  • Documentation changes: #19387, #19444, #19804, #19945, #19975, #20230, #20472, #20473, #20478, #20480, #20524, #20525, #20526, #20535, #20591, #20621, #20622, #20644, #21313, #21707, #21909, #21910, #21945, #21996