Electron Releases - v12.0.0-beta.1

npm install electron@v12.0.0-beta.1
yarn add electron@v12.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

Features

  • Added 'resized' (Windows/macOS) and 'moved' (Windows) events to BrowserWindow. #26216 (Also in 11)
  • Added APIs to enable/disable spell checker. #26276
  • Added Serial API support. #25237
  • Added BrowserWindow.isTabletMode API. #25209
  • Added displayFrequency to the Display object to allow getting information about the refresh rate on Windows. #26472
  • Added net.online for detecting whether there is currently internet connection. #21004
  • Added osProcessId / name properties to webFrameMain. #26093
  • Added powerMonitor.onBatteryPower. #26494
  • Added session.setSSLConfig() to allow configuring SSL. #25461
  • Added webContents.forcefullyCrashRenderer() to forcefully terminate a renderer process to assist with recovering a hung renderer. #25580 (Also in 11)
  • Added webFrameMain API for accessing sub-frames of a WebContents instance from the main process. #25464
  • Added webPreferences.preferredSizeMode to allow sizing views according to their document's minimum size. #25874
  • Added a disabledCipherSuites option to Session.setSSLConfig. #25818
  • Added a new "credentials" option for net.request(). #25284
  • Added a new asynchronous shell.trashItem() API, replacing the synchronous shell.moveItemToTrash(). #25114
  • Added new app.runningUnderRosettaTranslation property to detect when running under rosetta on Apple silicon. #26444 (Also in 11)
  • Added new system-context-menu event to allow preventing and overriding the system context menu. #25795 (Also in 11)
  • Added non-localized serviceName to 'child-process-gone' / app.getAppMetrics(). #25975
  • Added read/write support for Toast Activator CLSID in shortcuts. #25493
  • Added setWindowOpenHandler API for renderer-created child windows, and deprecate new-window event. #24517
  • Added spellcheck API to renderer. #25060
  • Added support for explicitly specifying direct, auto_detect or system modes in session.setProxy(). #24937
  • Added support for showing macOS share menu. #25629
  • Adds fast user switching event to powerMonitor on macOS. #25321
  • Allowed setting the 'Origin' header and Sec-Fetch-* headers in net.request(). #26135
  • Changed the default of crashReporter.start({ compress }) from false to true. #25288
  • Implemented Electron Fuses for customizing certain Electron features at package time. #24241
  • Implemented custom Toast XML notifications on Windows
    • Added failure reporting of notifications on Window. #25401
  • Improved dark mode support on Windows. #25373 (Also in 10, 11)
  • Removed links to the Electron website from the default 'Help' menu in packaged apps. #25831
  • Removed the desktopCapturer.getMediaSourceIdForWebContents() API. #25414 (Also in 11)
  • The launchInfo of app event ready is now populated with information from UNNotificationResponse when the app is launched via a notification presented by UNUserNotificationCenter (in a native node module). #25950
  • Updated setPermissionRequestHandler to correctly recognize permissions being requested. #26172 (Also in 11)
  • Windows 10 versions 2004 and later support WDA_EXCLUDEFROMCAPTURE and will now exclude a window entirely from screen capture when setContentProtection is enabled. Older Windows versions will continue to show a black window as before. #24274

Fixes

  • Added missing module delay loads on windows to reduce per process reference set impact. #25428 (Also in 9, 10, 11)
  • Browser views will properly resize within windows. #25951 (Also in 9, 10, 11)
  • Deprecated the use of the vm module in the renderer process. #26087
  • Enabled support for new Chromium experimental PDF viewer UI. #26010
  • Excess menu item separators are now only removed after item re-ordering is done to avoid accidental removal of needed separators. #25563 (Also in 10, 11)
  • Fixed BrowserWindow.fromBrowserView throwing an error when there were multiple BrowserViews in a window. #26493
  • Fixed CORS not being disabled by webSecurity: false. #25463 (Also in 9, 10, 11)
  • Fixed Electron not working on Windows 7 after https://github.com/electron/electron/pull/25076. #25162 (Also in 8, 9, 10, 11)
  • Fixed GdiTextPrinting when used with silent printing. #25679 (Also in 9, 10, 11)
  • Fixed NativeImage.crop().toBitmap() returning incorrect data. #25757 (Also in 10, 11)
  • Fixed NativeImage.getScaleFactors() always returning the same value. #25832 (Also in 9, 10, 11)
  • Fixed LC_ALL environment variable getting changed in Electron. #26507 (Also in 9, 10, 11)
  • Fixed ready-to-show event not emitted on some machines. #25448 (Also in 8, 10, 11)
  • Fixed ses.setCertificateVerifyProc canceling requests in unrelated sessions. #26517
  • Fixed window.open not accepting size values with "px" at the end. #26104 (Also in 10, 11)
  • Fixed a crash in app.importCertificate() on Linux. #25523 (Also in 9, 10, 11)
  • Fixed a crash in printing on Windows. #25622 (Also in 9, 10, 11)
  • Fixed a crash in the renderer process when invoking the Badging API. #25294 (Also in 9, 10, 11)
  • Fixed a crash seen when printing. #25989 (Also in 11)
  • Fixed a crash that could happen when a window was closed while a webview was in the process of being attached. #25431 (Also in 11)
  • Fixed a crash when closing window in an event listener after exiting fullscreen on macOS. #25468 (Also in 9, 10, 11)
  • Fixed a rare crash on Windows that could occur when emitting certain powerMonitor events. #25836 (Also in 10, 11)
  • Fixed an Uncaught TypeError when opening DevTools. #26474 (Also in 11)
  • Fixed an issue that could cause a normally-exiting process to fail with an "illegal access" message and exit code 7. #25430 (Also in 8, 9, 10, 11)
  • Fixed an issue that file length is not available in 'will-download' event when file is downloaded thourgh intercepted request. #25324
  • Fixed an issue where Hover Text on macOS Catalina did not work without VoiceOver also being enabled. #26183 (Also in 9, 10, 11)
  • Fixed an issue where Wasm code generation erroneously showed as being disallowed by embedder when contextIsolation was enabled. #25777 (Also in 10, 11)
  • Fixed an issue where Windows notifications with timeoutType of 'never' did not work properly. #25820 (Also in 9, 10, 11)
  • Fixed an issue where Save as PDF from PDF Viewer Print dialog failed and sometimes crashed. #25959 (Also in 9, 10, 11)
  • Fixed an issue where document.hasFocus and document.activeElement would be inconsistent upon showing a window that was initially created with show: false. #25292 (Also in 10, 11)
  • Fixed an issue where an error would be displayed when using webContents.print() if no default was set and no device name provided. #25515 (Also in 9, 10, 11)
  • Fixed an issue where draggable regions did not work exclusively on BrowserViews. #26145 (Also in 9, 10, 11)
  • Fixed an issue where draggable regions were not properly updated on BrowserViews when a containing BrowserWindow was resized. #26233 (Also in 9, 10, 11)
  • Fixed an issue where events on webview elements were missing properties if contextIsolation was enabled. #26289
  • Fixed an issue where filters set in dialogs on macOS would have nondeterministic ordering. #25164 (Also in 9, 10, 11)
  • Fixed an issue where frameless windows showed window controls after being in simple fullscreen mode on macOS. #26096 (Also in 9, 10, 11)
  • Fixed an issue where net.request would continue downloading data even when the consuming stream was throttled. #25531
  • Fixed an issue where packages could not be selected with on macOS. #25030 (Also in 10, 11)
  • Fixed an issue where pageRanges was not properly honored when printing. #25064 (Also in 10, 11)
  • Fixed an issue where some Node.js module API calls hung in the renderer process after reloads when render process reuse was enabled. #25869 (Also in 9, 10, 11)
  • Fixed an issue where some buttons were un-clickable in some BrowserViews with draggable regions enabled. #26496 (Also in 11)
  • Fixed an issue where the buffer returned by NativeImage.getBitmap() could point to freed memory. #25782
  • Fixed an issue whereby a corrupted async_hooks stack would crash the renderer when throwing some errors in the renderer process. #26365 (Also in 11)
  • Fixed bug that meant require.resolve paths option was ignored. #25891 (Also in 9, 10, 11)
  • Fixed calling app.commandLine.appendSwitch('lang') not changing app's locale. #26185 (Also in 9, 10, 11)
  • Fixed crash when application launched from UNUserNotificationCenter notification (via a native node module). #25702 (Also in 9, 10, 11)
  • Fixed crash while exiting Electron after using the Web Serial API. #25969
  • Fixed crashes caused by attempting to modify destroyed views. #25411 (Also in 9, 10, 11)
  • Fixed crashes using nativeImage on Windows on ARM. #25396 (Also in 11)
  • Fixed detection of launch on login items
    • Fixed detection of enabled state set by TaskManager. #26515 (Also in 11)
  • Fixed draggable regions stops working when devtools is opened on macOS. #26361 (Also in 9, 10, 11)
  • Fixed error handling on write failure in the protocol module. #26296
  • Fixed intermittent access violation during redirects (intercepted requests). #25393
  • Fixed issue where quitAndInstall() would not restart the app upon update completion on macOS Big Sur. #25864 (Also in 11)
  • Fixed issue where setting the spellchecker languages to an empty array would permanently disable the spellchecker till the end of time. #26119 (Also in 11)
  • Fixed main process's console output not printing to devtools on Windows. #25765
  • Fixed maximized frameless window bleeding to other monitors. #25940 (Also in 8, 9, 10, 11)
  • Fixed memory leak on macOS when using dialog.showMessageBox API. #26078 (Also in 8, 9, 10, 11)
  • Fixed memory leak when creating "Services" menu. #25617 (Also in 9, 10, 11)
  • Fixed multiple dock icons being left in system when calling dock.show/hide on macOS. #25269 (Also in 8, 9, 10, 11)
  • Fixed network permission error when there are multiple WebContents sharing same session are created with web security disabled. #25139 (Also in 8, 9, 10, 11)
  • Fixed ready-to-show event not emitted on some machines. #25632 (Also in 10, 11)
  • Fixed shell.moveItemToTrash on Windows so that it returns false when move was unsuccessful. #25124 (Also in 9, 10, 11)
  • Fixed the following issues for frameless when maximized on Windows. #25052 (Also in 8, 9, 10, 11)
  • Fixed the pretty-print JavaScript feature in DevTools not functioning correctly. #25780
  • Fixed the remote-debugging-port discovery page showing garbled text. #25576 (Also in 10, 11)
  • Fixed webRequest module not recognizing the encoding of the filename in Content-Disposition header. #25961
  • Fixed window.open called from child window. #25080 (Also in 11)
  • Removed private API usage that was blocking Mac App Store releases. #26491 (Also in 11)
  • Stopped using private API CTFontDescriptorIsSystemUIFont in MAS build. #26548 (Also in 11)
  • Suppressed a spurious warning about executeJavaScript being called without worldSafeExecuteJavaScript being enabled in apps that do not call executeJavaScript. #25692 (Also in 10, 11)
  • Updated Node root certs to use NSS 3.56. #25313 (Also in 8, 9, 10, 11)
  • Updated internal memory allocation logic such that you no longer need to use the com.apple.security.cs.allow-unsigned-executable-memory codesign entitlement on macOS. #26331

Other Changes

  • Added a small console hint to console to help debug renderer crashes. #25317 (Also in 9, 10, 11)
  • BrowserWindow.fromWebContents() now returns an accurate result for WebContents in a BrowserView or webview. #25408
  • Deprecated the remote module. It is replaced by @electron/remote. #25293
  • Fixed resource leak in worker threads. #25332 (Also in 9, 10, 11)
  • None. #25526
  • Updated Node.js to v14.15.1. #26533
  • Upgraded Node.js to v14.9.0. #25249

Documentation

Unknown

  • Added extension-loaded, extension-unloaded, and extension-ready events to Session. #25385
  • Added support for some chrome.management APIs. #25098 (Also in 9, 10, 11)
  • Fixed chrome.runtime.getPlatformInfo crashing the background process upon being invoked. #25357
  • Fixed issue where clicking notifications would no longer dismiss them as expected. #25247 (Also in 8, 9, 10, 11)
  • Re-enable Rosetta on Apple Silicon devices. #26568 (Also in 7.3, 8, 9, 10, 11)