Electron: v9.0.0-beta.1 Release

Release date:
November 18, 2020
Previous version:
v8.5.5 (released November 18, 2020)
Magnitude:
1,282 Diff Delta
Contributors:
14 total committers
Data confidence:
Commits:

365 Features Released with v9.0.0-beta.1

Top Contributors in v9.0.0-beta.1

miniak
codebytere
trop[bot]
zcbenz
nornagon
electron-bot
ckerr
deepak1556
MarshallOfSound
alexeykuzmin

Directory Browser for v9.0.0-beta.1

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

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].

# 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 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