Electron Releases - v6.0.0-beta.1

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

  • 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 BrowserViews 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