The new version of the Electron 5.0.0 platform is already among us, qIt provides a self sufficient framework for multi-user application development, using Chromium, V8 and Node.js components.
Developers have access to Node.js modules, as well as an advanced API to generate native dialogs, integrate applications, create context menus, integrate with the system to display notifications, manipulate windows, and interact with Chromium subsystems.
Unlike web-based applications, Electron-based programs are delivered as separate executable files that are not linked to the browser.
In this case, the developer does not have to worry about porting the application for various platforms, Electron will provide the ability to compile for all Chromium-compatible systems.
Electron also provides tools to organize automatic delivery and installation of updates (updates can be delivered from a separate server or directly from GitHub).
From the programs created on the basis of the Electron platform, we can mention the Atom editor, the email client Nylas, the tools to work with GitKraken, the Wagon SQL query visualization and analysis system, the WordPress Desktop blogging system, the client WebTorrent Desktop BitTorrent.
And also the official clients of services like Skype, Signal, Slack, Basecamp, Twitch, Ghost, Wire, Wrike, Visual Studio Code, and Discord.
What's new in Electron 5.0.0?
As mentioned at the beginning, this new release of Electron 5.0.0 continues to support 32-bit systems that had previously been announced its discontinuation from past versions (you can read the article about it In the following link).
While in this release the developers declared obsolete and will be removed in the next version: mksnapshot executables for arm and arm64, ServiceWorker in WebContents, calls to webFrame.setIsolated *, the ability to directly call the electron.screen, child_process, fs, os, and path modules (now you must call by remote using the controller in isolated web content).
As for the novelties of Electron 5.0.0 we can highlight added environment variable "ELECTRON_DISABLE_SANDBOX" to disable sandbox isolation, for example, if the application is already running in a Docker-based container;
For added security, the nodeIntegration and webviewTag settings are disabled by default.
The spell checker API is switched to non-blocking mode of operation, in which the result of the check is returned in asynchronous mode.
In packaged applications, the addition of a default application menu is provided, even if the application does not explicitly define this menu or add a window close event handler.
The API continues to translate asynchronous handlers that previously used callback calls into a form based on the Promise mechanism.
Likewise Support for Promise has been added to the Cookies API and in the getFileIcon app, ContentTracing methods. [GetCategories | startRecording | stopRecording], debugger.sendCommand, shell.openExternal, webContents. [loadFile | loadURL | zoomLevel | zoomFactor] and win.capturePage.
Of the other major changes in this release are:
- The ability to get information about system colors on macOS using systemPreferences.getAccentColor, systemPreferences.getColor, and systemPreferences.getSystemColor.
- The process.getProcessMemoryInfo function, which provides statistics on memory consumption by the current process.
- In the "remote" module, which represents the IPC mechanism for the interaction between the current page drawing process and the main process, additional functions have been added to filter external requests for complete control over access to the IPC.
- Added filter support for remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents, and webview.getWebContents.
- Added the ability to manage multiple instances of BrowserViews from a single BrowserWindow object.