Saltar al contenido principal

Electron 22.0.0

· 6 lectura mínima

¡Electron 22.0.0 ha sido liberado! Incluye una nueva API de procesos de utilidad, actualizaciones para el soporte de Windows 7/8/8.1 y mejoras a Chromium 108, V8 10.8y Node.js 16.17.1. ¡Lea a continuación para más detalles!


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 22.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. Continue reading for details about this release.

If you have any feedback, please share it with us on Twitter, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Mejora de soporte para Windows 7/8/8.1

info

2023/02/16: Una mejora del soporte de Windows Server 2012

El mes pasado, Google anunció que Chrome 109 seguiría recibiendo correcciones de seguridad críticas para Windows Server 2012 y Windows Server 2012 R2 hasta el 10 de octubre 2023. De acuerdo con ello, la fecha prevista para el fin de la vida de Electron 22 (Chromium 108) se ampliará del 30 de mayo de 2023 al 10 de octubre de 2023. El equipo de Electron continuará portando todas las correcciones de seguridad que forman parte de este programa a Electron 22 hasta el 10 de octubre de 2023.

Tenga en cuenta que no haremos correcciones de seguridad adicionales para Windows 7/8/8.1. Además, Electron 23 (Chromium 110) solo funcionará en Windows 10 o superior, como se ha anunciado anteriormente.

Electron 22 será la última versión principal de Electron en brindar asistencia para las versiones de Windows 7/8/8.1. Electron sigue la planificación de normativas de obsolescencia de Chromium, cuya obsolescencia de mantenimiento para Windows 7/8/8.1 a partir de Chromium 109 (lea más aquí).

Windows 7/8/8.1 no será soportado en Electron 23 y los próximos lanzamientos principales.

Notable Changes

UtilityProcess API #36089

El módulo nuevo de proceso principal UtilityProcess permite la creación de un proceso secundario de Chromium heredado con sólo integración de Nodo.js mientras además permite comunicación con un renderizador encajonado usando MessageChannel. La API fue designado en base a Node.js child_process.fork para conceder una transición más fácil, con una diferencia primaria siendo que el punto de apunte modulePath debe estar dentro de la aplicación empaquetada para conceder que sólo se carguen guiones de confianza. Adicionalmente, el módulo impide establecer canales de comunicación con renderizadores por defecto, mantener el contrato en el cual el proceso principal es el único proceso confiado dentro de la aplicación.

Puedes leer más sobre la nueva API de UtilityProcess en nuestros documentos aquí.

Cambios destacados adicionales

  • Se ha añadido mantenimiento para pin emparejado en Web Bluetooth para Linux y Windows. #35416
  • Se ha añadido LoadBrowserProcessSpecificV8Snapshot como un fuse nuevo que permitirá al proceso principal/navegador cargar su instantánea v8 desde un archivo en browser_v8_context_snapshot.bin. Cualquier otro proceso utilizará la misma ruta que hoy se utiliza. #35266
  • Se ha añadido WebContents.opener para acceder al abridor de ventanas y a webContents.fromFrame(frame) para obtener el WebContents correspondiente a una instancia WebFramePrint. #35140
  • Añadido mantenimiento para navigator.mediaDevices.getDisplayMedia mediante un nuevo manipulador de sesiones, ses.setDisplayMediaRequestHandler. #30702

Stack Changes

Rupturas de cambios de la API

A continuación se interrumpen los cambios de ruptura en Electron 22. Puede leer más sobre estos cambios y futuros en la página Cambios de ruptura planificados.

Obsoleto: webContents.incrementCapturerCount(stayHidden, stayAwake)

El webContents.incrementCapturerCount(stayHidden, stayAwake) ha sido discontinuado. Ahora es manejado automáticamente por webContents.capturePage cuando se completa una captura de página.

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

Obsoleto: webContents.decrementCapturerCount(stayHidden, stayAwake)

El webContents.decrementCapturerCount(stayHidden, stayAwake) ha sido discontinuado. Ahora es manejado automáticamente por webContents.capturePage cuando se completa una captura de página.

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

Eliminado: evento new-window de Webcontens

El evento new-window de WebContents ha sido eliminado. Es reemplazado por webContents.setWindowOpenHandler().

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

Eliminado: eventos scroll-touch-* de BrowserWindow

Los eventos scroll-touch-begin, scroll-touch-end y scroll-touch-edge en BrowserWindow están deprecados. En su lugar, utiliza el evento nuevamente disponible input-event en WebContents.

// Obsoleto
win.on('scroll-touch-begin', scrollTouchBegin)
win.on('scroll-touch-edge', scrollTouchEdge)
gana. n('scroll-touch-end', scrollTouchEnd)

// Reemplazar con
win.webContents.on('input-event', (_, event) => {
if (event. type === 'gestureScrollBegin') {
scrollTouchBegin()
} else if (event. type === 'gestureScrollUpdate') {
scrollTouchEdge()
} else if (event. type === 'gestureScrollEnd') {
scrollTouchEnd()
}
+ })

Fin de soporte para 19.x.y

Electron 19.x.y ha alcanzado el fin de soporte según la política de soporte del proyecto. Se anima a los desarrolladores y aplicaciones a actualizar a una versión de Electron nueva.

E19 (May'22)E20 (Ago'22)E21 (Sep'22)E22 (Nov'22)E23 (Ene'23)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

¿Y ahora, qué?

El proyecto Electron se pausará durante el mes de diciembre de 2022, luego regresará en enero de 2023. Puede encontrar más información en la publicación de cierre de diciembre.

A corto plazo puedes esperar que el equipo continúe enfocándose en mantener al día con el desarrollo de los principales componentes que componen Electron, incluyendo Chromium, Node, y V8.

You can find Electron's public timeline here.

More information about future changes can be found on the Planned Breaking Changes page.