@electron-bot electron-bot released this Dec 20, 2018 · 39 commits to 4-0-x since this release

Assets 51

Release Notes for v4.0.0

Breaking Changes

  • Upgraded to Chromium 69.0.3497.106 and Node 10.11.0. #13756, #14964, #14972
  • Changed to the new single instance API. #12782, #14518
  • Bumped minimum supported macOS version to 10.10. #15357

Features

  • Added "will-move" event to the BrowserWindow. #14283
  • Added BrowserWindow.setWindowButtonVisibility(). a42ca9ee
  • Added Version key to Electron Framework Mac bundle's Info.plist. #14296
  • Added systemPreferences APIs to help apps respect Mojave dark mode settings. #14755
  • Added webPreferences.enableRemoteModule option allowing to disable the remote module to increase sandbox security. #15222
  • Added getNormalBounds() API for the BrowserWindow class to fetch window bounds while minimized. #13290
  • Added will-redirect event on webContents to capture, handle and prevent redirects during navigations. #13866
  • Added an option to MenuItem that makes it possible to skip accelerator registration. #15840
  • Added app.enableSandbox(). #14999
  • Added creationTime method to process. #13542
  • Added event.senderId property to IPCs sent via ipcRenderer.sendTo. #14395
  • Added getUploadProgress API to the net module. #13783
  • Added isCurrentlyAudible() to WebContents. #13614
  • location url added to "Node.js Integration with Remote Content" warning. #13973
  • Added media access APIs for macOS Mojave. #15948
  • Added always-on-top-change event. #14951
  • Added query, search and hash options to webContents.loadFile. #14515
  • Added process.takeHeapSnapshot() and webContents.takeHeapSnapshot(). #14456
  • Added screen reader support for Win32 toast notifications. #13834
  • Added session.setPermissionCheckHandler(). #13925
  • Added will-resize event to TopLevelWindow. #13649
  • Added workingDirectory to shell.openExternal() options. #15065
  • Added app.showAboutPanel() on macOS. #15680
  • Added app.getGPUInfo(). #13486
  • Added --disable-color-correct-rendering switch. #16020
  • Allow partial setting of window bounds. #15699
  • Added win.setShape() API to TopLevelWindow. #13789
  • Allow window above full screen windows on macOS. #14122
  • Allow filtering of remote.require() / remote.getGlobal() requests by handling remote-require / remote-get-global events. #15562
  • Expose WebContents#setBackgroundThrottling. #15623
  • Point based API's now automatically round incoming x and y values. #14604
  • Expose several process object APIs to sandboxed renderers. #13505
  • Added simplified Mojave dark mode APIs. #14895
  • Support chrome:// URLs in default_app. #13575
  • Enable use of NODE_OPTIONS env var. #15259
  • Added a mediaType property to media permission requests to distinguish between video and audio requests. #14600
  • menu.popup() options are now optional. #13977

Fixes

  • Several process APIs were returning proxied values instead of simple ones. #13905
  • Preload scripts could not be loaded with CSP enabled. #13032
  • Correctly remove DOM storage limits. #15688
  • Correctly mark crashReporter companyName as required. #14132
  • Debugger command callbacks now run with null as the error when no error has occurred. #14814
  • CORB checks are now disabled when web security preference is disabled. #15801
  • OSR windows now respects display scale factor. #15865
  • Prevent bluetooth device list from growing without bound. #15866
  • Security warnings now correctly show in sandboxed renderers. #14869
  • Fixed a crash on exit when using BrowserView. #15640
  • Fixed a crash when using stream protocols. #15210
  • Fixed shift-based accelerators not rendering correctly. #14966, #15401
  • Fixed too-thin font rendering in macOS Mojave. #15007
  • Fixed occasional freeze when navigating webview. #14487
  • Honor properties.showHiddenFiles in dialog.showOpenDialog() on Linux. #15506
  • Fixed incorrect display of 'zoom in' accelerator on mac. #15626
  • Speech synthesis APIs now return OS voices on Windows. #14070
  • Fixed CSP warnings in the default app. #13437
  • Fixed notifications when running in a Windows Store environment. #13258
  • On MacOS, closing notifications will now trigger the close Event. #13306
  • Menu.buildFromTemplate() no longer creates empty MenuItems on falsey values. #13992
  • Fixed multiple printing bugs. #15976
  • Updated fs.stat/fs.statSync for new options param. #15350
  • Partially fix the memory leak when opening child windows with nativeWindowOpen. #15190

Other Changes

  • Changed build system from GYP to GN. #14097
  • require('electron') performance improvements #14633
  • Deprecated findInPage optionswordStart and medialCapitalAsWordStart. #15735
  • Deprecated default webPreferences values for nodeIntegration, contextIsolation and webviewTag. #15045
  • Fixed Widevine CDM not loading content. #14423
  • Print a deprecation warning when the child windows opened with nativeWindowOpen option have node integration. #15193
  • Removed experimentalCanvasFeatures property. #13684
  • Removed legacy helpers (Electron Helper EH/NP). #14436
  • Removed private webContents.getId() API. #13674
  • On Windows, functions available on Windows 7+ are now statically linked. #13578
  • Removed unneeded pyproto files from release archives. #15398
  • In Electron 5.0, the default for nodeIntegration will change from true to false. Electron 4 will log a warning in the renderer when nodeIntegration is enabled by default. #16004
  • Public IPC channel (ipcRenderer / ipcMain) is no longer used to implement Electron internals (remote module for example). #13940
  • Removed WTL dependency on Windows. #13463
  • Remove use of some deprecated Chromium APIs. #14420, #13312, #13436, #13425, #13703
  • V8 embedder version string changed from -node.N to -electron.N. #15120
  • Implement ipcRenderer.sendTo in native code for better performance. #14285
  • Other small IPC efficiency improvements. #14302, #14286
  • Warn if you try to use Electron APIs from a non-electron environment. #15977
  • Move pepper flash behind feature flag. #13322

Dependencies

  • Updated serve version from 6.5.3 to 6.5.8. #14159
  • Upgraded sqlite from 3.24 to 3.26. #16073

Documentation