Saltar al contenido principal

Electron 8.0.0

· 8 lectura mínima

¡Electron 8.0.0 ha sido liberado! Incluye actualizaciones a Chromium 80, V8 8.0y Node.js 12.13.0. ¡Hemos añadido el corrector ortográfico integrado de Chrome y mucho más!


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 8.0.0! You can install it with npm via npm install electron@latest or download it from our releases website. La versión está empaquetada con versiones nuevas, correcciones y características nuevas. ¡No podemos esperar a ver lo que construyes con ellos! ¡Sigue leyendo para obtener más detalles sobre esta versión, y por favor comparte tus comentarios!

Notable Changes

  • Implementado el uso de la función de correctores ortográficos incorporados de Chrome. Consulte más detalles en #20692 y #21266.
  • La comunicación IPC ahora utiliza el algoritmo de clon estructurado de v8. Esto es más rápido, más característico y menos sorprendente que la lógica existente, y genera un aumento de rendimiento de 2x para tampones grandes y objetos complejos. La latencia de los mensajes pequeños no se ve afectada significativamente. Consulte más detalles en #20214.

Vea la notas de lanzamiento 8.0.0 para la lista completa de nuevas características y cambios.

Stack Changes

Restaurar archivos borrados

  • Mostrar el nombre del módulo en advertencia de obsolescencia para los módulos que se ajustan al contexto. #21952
    • Esto es trabajo continuado para un requisito futuro de que los módulos nativos de Node cargados en el proceso de renderizador sean N-API o Consciente del contexto. La información completa y la línea de tiempo propuesta se detalla en este asunto.
  • Los valores enviados sobre IPC ahora son serializados con Structured Clone Algorithm. #20214
  • Ofscreen Rendering está actualmente inhabilitado debido a la falta de un mantenedor para trabajar en esta característica. Se rompió durante la actualización de Chromium y fue subsecuentemente inhabilitado. #20772

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

API Modificada

  • app Cambios en la API:
    • Se añadió app.getApplicationNameForProtocol(url). #20399
    • Añadido soporte app.showAboutPanel() y app.setAboutPanelOptions(options) en Windows. #19420
  • BrowserWindow Cambios en la API:
    • Updated docs to note that BrowserWindow options hasShadow is available on all platforms #20038
    • Se ha añadido la opción trafficLightPosition a las opciones de BrowserWindow para conceder un posicionamiento personal para los botones de semáforo. #21781
    • Se añadió la opción accessibleTitle a BrowserWindow para ajuste del título de la ventana accesible #19698
    • BrowserWindow.fromWebContents() ahora puede devolver nulo #19983
    • Añadido BrowserWindow.getMediaSourceId() y BrowserWindow.moveAbove(mediaSourceId). #18926
    • Añadido soporte para el evento will-move en macOS. #19641
  • Documentado anteriormente indocumentado crashReporter.getCrashesDirectory(). #20417
  • dialog Cambios en la API:
    • Se agregó la propiedad dontAddToRecent a dialog.showOpenDialog y dialog.showOpenDialogSync para evitar que se añadan documentos a documentos recientes en Windows en diálogos abiertos. #19669
    • Añadida personalización de la propiedad a dialog.showSaveDialog y dialog.showSaveDialogSync. #19672
  • Notification Cambios en la API:
    • Se ha añadido la opción timeoutType para permitir a los usuarios de Linux/Windows establecer el tipo de tiempo de espera de notificación. #20153
    • Se añadió la opción urgency para establecer la urgencia en las notificaciones de Linux. #20152
  • session Cambios en la API:
    • Se actualizó la documentación en session.setProxy(config) y session.setCertificateVerifyProc(proc) para tener en cuenta opciones opcionales. #19604
    • Añadido session.downloadURL(url) para permitir activar descargas sin un BrowserWindow. #19889
    • Se añadió soporte para pistas de recursos de preconexión HTTP vía session.preconnect(options) y el evento preconnect. #18671
    • Añadido session.addWordToSpellCheckerDictionary para permitir palabras personalizadas en el diccionario #21297
  • Se ha añadido la opción shell.moveItemToTrash(fullPath[, deleteOnFail]) en macOS para especificar lo que sucede cuando moveItemToTrash falla. #19700
  • systemPreferences Cambios en la API:
    • Se actualizó la documentación de systemPreferences.getColor(color) para macOS. #20611
    • Añadido un tipo de medio screen a systemPreferences.getMediaAccessStatus(). #20764
  • Añadido nativeTheme.themeSource para permitir que las aplicaciones anulen Chromium y la elección del tema del SO. #19960
  • Cambios en la API de TouchBar:
    • Se añadió una propiedad accessibilityLabel a TouchBarButton y TouchBarLabel para mejorar la accesibilidad de TouchBarButton/TouchBarLabel. #20454
    • Documentación de TouchBar actualizada #19444
  • tray Cambios en la API:
    • Se añadieron nuevas opciones a tray.displayBalloon(): iconType, largeIcon, noSound y respectQuietTime. #19544
    • Añadida tray.removeBalloon(), que elimina una notificación de globo ya mostrada. #19547
    • Añadido tray.focus(), que devuelve el foco al área de notificación de la barra de tareas. hazaña: añadir tray.focus() #19548
  • webContents Cambios en la API:
    • Añadido contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture]) para exponer executeJavaScriptInIsolatedWorld en la API de contenido web. #21190
    • Métodos añadidos para capturar un webContent oculto. #21679
    • Se añadieron opciones a webContents.print([options], [callback]) para habilitar la personalización de los encabezados y pie de página de impresión. #19688
    • Se ha añadido la capacidad de inspeccionar trabajadores compartidos específicos a través de webContents.getAllSharedWorkers() y webContents.inspectSharedWorkerById(workerId). #20389
    • Añadido el soporte de las opciones fitToPageEnabled y scaleFactor en WebContents.printToPDF(). #20436
  • Se actualizó la documentación de webview.printToPDF para indicar que el tipo de retorno es ahora Uint8Array. #20505

API Obsoletas

Las siguientes API ahora están obsoletas:

  • Opción funcional obsoleta visibleOnFullScreen dentro de BrowserWindow.setVisibleOnAllWorkspaces antes de su eliminación en la próxima versión principal. #21732
  • Obsoleto alternate-selected-control-text en systemPreferences.getColor(color) para macOS. #20611
  • Obsoleto setLayoutZoomLevelLimits en webContents, webFrame y <webview>Tag porque Chromium eliminó esta capacidad. #21296
  • El valor predeterminado de false para app.allowRendererProcessReuse está ahora en desuso. #21287
  • <webview>.getWebContents() obsoleto ya que depende del módulo remoto. #20726

Fin de soporte para 5.x.y

Electron 5.x.y has reached end-of-support as per the project's support policy. Se anima a los desarrolladores y aplicaciones a actualizar a una versión de Electron nueva.

Programa de retroalimentación

Continuamos usando nuestro Programa de Comentarios de para pruebas. Los proyectos quienes participan en este programa de pruebas de las betas de Electron en sus aplicaciones; y a cambio, los defectos nuevos que encuentran están priorizados para la versión estable. Si quieres participar o aprender más, revisa nuestra publicación de nuestro blog sobre el programa.

¿Y ahora, qué?

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. Aunque tenemos cuidado de no hacer promesas sobre las fechas de lanzamiento, nuestro plan es lanzar versiones nuevas importantes de Electron con versiones nuevas de esos componentes aproximadamente cada trimestre. El calendario tentativo 9.0.0 traza fechas claves en el ciclo de vida del desarrollo de Electron 9. Además, consulta nuestro documento de versionado para obtener información más detallada sobre el versionado en Electron.

For information on planned breaking changes in upcoming versions of Electron, see our Planned Breaking Changes doc.

Deprecación del Módulo remote (comenzando en Electron 9)

Debido a graves responsabilidades de seguridad, estamos comenzando a desaprobar el módulo remote a partir de Electron 9. Puedes leer y seguir este asunto que detalla nuestras razones e incluye una línea temporal propuesta para la desaprobación.