El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 6.0.0! You can install it with npm via npm install electron@latest
or download it from our releases website. The release is packed with upgrades, fixes, and new features. We can't wait to see what you build with them! Continue reading for details about this release, and please share any feedback you have!
What's New
Today marks a first for the Electron project: this is the first time we've made a stable Electron release on the same day as the corresponding Chrome stable release! 🎉
Much of Electron's functionality is provided by the core components of Chromium, Node.js, and V8. Electron keeps up-to-date with these projects to provide our users with new JavaScript features, performance improvements, and security fixes. Each of these packages has a major version bump in Electron 6:
- Chromium
76.0.3809.88
- Node.js
12.4.0
- V8
7.6.303.22
This release also includes improvements to Electron's APIs. The release notes have a more complete list, but here are the highlights:
Promisificación
Electron 6.0 continues the modernization initiative started in 5.0 to improve Promise support.
These functions now return Promises and still support older callback-based invocation:
contentTracing.getCategories()
#16583
contentTracing.getCategories()
#16583
contentTracing.getTraceBufferUsage()
#16600
contents.executeJavaScript()
#17312
cookies.flushStore()
#16464
cookies.get()
#16464
cookies.remove()
#16464
cookies.set()
#16464
dialog.showCertificateTrustDialog()
#17181
inAppPurchase.getProducts()
#17355
inAppPurchase.purchaseProduct()
#17355
netLog.stopLogging()
#16862
session.clearAuthCache()
#17259
session.clearCache()
#17185
session.clearHostResolverCache()
#17229
session.clearStorageData()
#17249
session.getBlobData()
#17303
session.getCacheSize()
#17185
session.resolveProxy()
#17222
session.setProxy()
#17222
webContents.hasServiceWorker()
#16535
webContents.printToPDF()
#16795
webContents.savePage()
#16742
webFrame.executeJavaScript()
#17312
webFrame.executeJavaScriptInIsolatedWorld()
#17312
webviewTag.executeJavaScript()
#17312
These functions now have two forms, synchronous and Promise-based asynchronous:
dialog.showMessageBox()
/dialog.showMessageBoxSync()
#17298
dialog.showOpenDialog()
/dialog.showOpenDialogSync()
#16973
dialog.showSaveDialog()
/dialog.showSaveDialogSync()
#17054
These functions now return Promises:
Electron Helper (Renderer).app
, Electron Helper (GPU).app
and Electron Helper (Plugin).app
In order to enable the hardened runtime, which restricts things like writable-executable memory and loading code signed by a different Team ID, special code signing entitlements needed to be granted to the Helper.
To keep these entitlements scoped to the process types that require them, Chromium added three new variants of the Helper app: one for renderers (Electron Helper (Renderer).app
), one for the GPU process (Electron Helper (GPU).app
) and one for plugins (Electron Helper (Plugin).app
).
Folks using electron-osx-sign
to codesign their Electron app shouldn't have to make any changes to their build logic. If you're codesigning your app with custom scripts, you should ensure that the three new Helper applications are correctly codesigned.
In order to package your application correctly with these new helpers you need to be using electron-packager@14.0.4
or higher. If you are using electron-builder
you should follow this issue to track support for these new helpers.
Restaurar archivos borrados
-
This release begins laying the groundwork for a future requirement that native Node modules loaded in the renderer process be either N-API or Context Aware. The reasons for this change are faster performance, stronger security, and reduced maintenance workload. Read the full details including the proposed timeline in this issue. This change is expected to be completed in Electron v11.
-
net.IncomingMessage
las cabeceras han cambiado ligeramente para coincidir mas estrechamente con el comportamiento de Node.js, particularmente con el valor de set-cookie
y como las cabeceras duplicadas son manejadas. #17517.
-
shell.showItemInFolder()
now returns void and is an asynchronous call. #17121
-
Apps must now explicitly set a log path by calling the new function app.setAppLogPath()
before using app.getPath('log')
. #17841
Fin de soporte para 3.x.y
Per our support policy, 3.x.y has reached end of life. Developers and applications are encouraged to upgrade to a newer version of Electron.
Programa de retroalimentación
We continue to use our App Feedback Program for testing. Projects who participate in this program test Electron betas on their apps; and in return, the new bugs they find are prioritized for the stable release. If you'd like to participate or learn more, check out our blog post about the program.
What's Next
In the short term, you can expect the team to continue to focus on keeping up with the development of the major components that make up Electron, including Chromium, Node, and V8. Although we are careful not to make promises about release dates, our plan is release new major versions of Electron with new versions of those components approximately quarterly. El calendario tentativo 7.0.0 traza fechas claves en el ciclo de vida del desarrollo de Electron 7. Also, see our versioning document for more detailed information about versioning in Electron.
For information on planned breaking changes in upcoming versions of Electron, see our Planned Breaking Changes doc.