Saltar al contenido principal

47 publicaciones etiquetados con "lanzamiento"

Ver todas las categorías

Electron 10.0.0

· 6 lectura mínima

¡Electron 10.0.0 ha sido liberado! Incluye actualizaciones a Chromium 85, V8 8.5y Node.js 12.16. Hemos agregado varias integraciones y mejoras a la API. ¡Lea a continuación para más detalles!


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 10.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.

En la versión 10 de Electron, también hicimos un cambio en nuestras notas de publicación. To make it easier to tell what's brand new in Electron 10 and what may have changed between Electron 10 and past releases, we now also include changes that were introduced to Electron 10, but backported to previous releases. We hope this makes it easier to apps to find new features and bug fixes when upgrading Electron.

¡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

  • Added contents.getBackgroundThrottling() method and contents.backgroundThrottling property. [#21036]
  • Exposed the desktopCapturer module in the main process. #23548
  • Can now check if a given session is persistent by calling the ses.isPersistent() API. #22622
  • Resolve network issues that prevented RTC calls from being connected due to network IP address changes and ICE. (Chromium issue 1113227). #24998

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

Electron 9.0.0

· 5 lectura mínima

¡Electron 9.0.0 ha sido liberado! Incluye actualizaciones a Chromium 83, V8 8.3y Node.js 12.14. We've added several new API integrations for our spellchecker feature, enabled PDF viewer, and much more!


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 9.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

  • Multiple improvements to the spellchecker feature. See more details in #22128 and #22368.
  • Improved window events handler efficiency on Linux. #23260.
  • Enable PDF viewer. #22131.

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

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.

Electron 7.0.0

· 5 lectura mínima

¡Electron 7.0.0 ha sido liberado! Incluye actualizaciones a Chromium 78, V8 7.8 y Node.js 12.8.1. Hemos añadido una ventana en versión de Arm 64, métodos IPC más rápidos, un nuevo API nativeTheme y mucho más!


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 7.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

  • Mejoras de pila:

    PilaVersión en Electron 6Versión en Electron 7¿Qué hay de nuevo?
    Chromium76.0.3809.14678.0.3905.177, 78
    V87.67.87.7, 7.8
    Node.js12.4.012.8.112.5, 12.6, 12.7, 12.8, 12.8.1
  • Se agregó Windows en versión de Arm (64 bit). #18591, #20112

  • Añadido ipcRenderer.invoke() y ipcMain.handle() para asíncrono de peticiones/respuestas de IPC. Estos son recomendados intensamente en el módulo remote. Consulte esta publicación del blog «el módulo ‘remoto’ de Electron considerado dañino» para más información. #18449

  • Añadida la API nativeTheme para leer y responder a los cambios en el tema y el esquema de color del SO. #19758, #20486

  • Cambiado a un nuevo generador de Definiciones de TypeScript. Las definiciones resultantes son más precisas; así que si falla su compilación de TypeScript, esta es la causa probable. #18103

Consulte las notas 7.0.0 de lanzamiento para una lista más larga de cambios.

Restaurar archivos borrados

Puedes encontrar más información sobre estos y futuros cambios en la página Cambios de última hora planificados.

  • Las API obsoletas eliminadas:
    • Versiones basadas en invocaciones de funciones que ahora usan Promises. #17907
    • Tray.setHighlightMode() (macOS). #18981
    • app.enableMixedSandbox() #17894
    • app.getApplicationMenu(),
    • app.setApplicationMenu(),
    • powerMonitor.querySystemIdleState(),
    • powerMonitor.querySystemIdleTime(),
    • webFrame.setIsolatedWorldContentSecurityPolicy(),
    • webFrame.setIsolatedWorldHumanReadableName(),
    • webFrame.setIsolatedWorldSecurityOrigin() #18159
  • Session.clearAuthCache() ya no permite más filtrar los apuntes de caché vaciadas. #17970
  • Las interfaces nativas en macOS (menús, diálogos, etc.) ahora coinciden automáticamente con el ajuste del modo oscuro en la máquina del usuario. #19226
  • Actualizó el módulo electron para usar @electron/get. La versión mínima admitida del nodo ahora es el Nodo 8. #18413
  • El archivo electron.asar ya no existe. Cualquier script de empaquetado que dependa de su existencia sería actualizado. #18577

Fin de soporte para 4.x.y

Electron 4.x.y ha alcanzado el final de mantenimiento según la directiva de mantenimiento del proyecto. 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 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 8.0.0 traza fechas claves en el ciclo de vida del desarrollo de Electron 8. Además, consulta nuestro documento de versionado para obtener información más detallada sobre el versionado en Electron.

Para obtener información sobre los cambios de ruptura previstos en las próximas versiones de Electron, consulte nuestro documento de Cambios Planificados de Ruptura.

Electron 6.0.0

· 6 lectura mínima

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. 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!


¿Qué hay de nuevo?

Hoy marca una primera para el proyecto Electron: esta es la primera vez que hemos hecho un lanzamiento estable de Electron el mismo día que el correspondiente Chrome estable! 🎉

Gran parte de la funcionalidad de Electron es proporcionada por los componentes principales de Chromium, Node.js y V8. Electron se mantiene actualizado con estos proyectos para proporcionar a nuestros usuarios características nuevas de JavaScript, mejoras de rendimiento y correcciones de seguridad. Cada uno de estos paquetes tiene una versión mayor en Electron 6:

Esta versión también incluye mejoras en las API de Electron. Las notas de lanzamiento tienen una lista más completa, pero aquí están los resaltados:

Promisificación

Electron 6.0 continúa la modernización iniciativa iniciada en 5.0 para mejorar Promise apoyo.

Estas funciones ahora devuelven Promesas y todavía soportan invocaciones antiguas basadas en retro-llamadas:

  • 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

Estas funciones ahora tienen dos formas, sincrónicas y asíncronas basadas en promesa:

  • dialog.showMessageBox()/dialog.showMessageBoxSync() #17298
  • dialog.showOpenDialog()/dialog.showOpenDialogSync() #16973
  • dialog.showSaveDialog()/dialog.showSaveDialogSync() #17054

Estas funciones ahora solo devuelven Promises:

Electron Helper (Renderer).app, Electron Helper (GPU).app y Electron Helper (Plugin).app

Para habilitar el tiempo de ejecución endurecido, el cual restringe cosas como memoria ejecutable de escritura y carga código firmado por un ID de equipo diferente, es necesario conceder al Ayudante derechos especiales de firma de código.

Mantener estos derechos a los tipos de proceso que los requieran, Chromium agregó tres nuevas variantes de la aplicación Helper: una para renderizadores (Electron Helper (Renderer).app), uno para el proceso GPU (Electron Helper (GPU).app) y otro para plugins (Electron Helper (Plugin).app).

La gente que usa electron-osx-sign para codiseñar su aplicación Electron no debería tener que hacer ningún cambio en su lógica de compilación. Si estás codiseñando tu aplicación con scripts personalizados, debes asegurarte de que las tres aplicaciones nuevas de Helper están correctamente codiseñadas.

Para empaquetar tu aplicación correctamente con estos ayudantes nuevos, necesitas usar electron-packager@14.0.4 o superior. Si estás usando electron-builder, deberías seguir este asunto para seguir la asistencia de estos ayudantes nuevos.

Restaurar archivos borrados

  • Esta versión comienza a sentar las bases para un futuro requisito de que los módulos nativos de Node cargados en el proceso de renderizador sean N-API o Conciente del Contexto. Las razones de este cambio son un rendimiento más rápido, una seguridad más fuerte, y una carga de trabajo de mantenimiento menor. Lea todos los detalles incluyendo la línea temporal propuesta en este asunto. Se espera que este cambio se complete en Electron v11.

  • Las cabeceras net.IncomingMessage han cambiado ligeramente para coincidir más estrechamente con el comportamiento de Node.js, particularmente con el valor de set-cookie y como son manejadas las cabeceras duplicadas. #17517.

  • Ahora shell.showItemInFolder() devuelve vacío y es una invocación asincrónica. #17121

  • Las aplicaciones ahora deben establecer explícitamente una ruta de registro invocando a la función app.setAppLogPath() nueva antes de emplear app.getPath('log'). #17841

Fin de soporte para 3.x.y

Por nuestra directiva de asistencia, 3.x.y ha llegado al fin de la vida. 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 7.0.0 traza fechas claves en el ciclo de vida del desarrollo de Electron 7. Además, consulta nuestro documento de versionado para obtener información más detallada sobre el versionado en Electron.

Para obtener información sobre los cambios de ruptura previstos en las próximas versiones de Electron, consulte nuestro documento de Cambios Planificados de Ruptura.

Nueva cadencia de liberación de Electron

· 4 lectura mínima
⚡ Actualización (2021-07-14): ¡Vamos aún más rápido!

En Q3 2021, el equipo de Chrome aumentó su cadencia de lanzamiento de cada 6 semanas a cada 4 semanas. Los lanzamientos de Electron han seguido el mismo camino. ¡Por favor, lea la entrada del blog de cada 8 semanas para obtener información más actualizada!

🎉 ¡Electron se está trabajando para lanzar una nueva versión estable cada 12 semanas! 🎉


⚡️ ¡Guau eso es rápido! Pero ¿por qué?

En pocas palabras, Chromium no detiene el lanzamiento por lo que Electron tampoco va a desacelerar.

Chromium lanza una version programada cada 6 semanas. Para entregar las versiones más actualizadas de Chromium en Electron, nuestro programa necesita seguir el suyo. Puede encontrar más información sobre el ciclo de lanzamiento de Chromium aquí.

🚀 ¿Por qué cada 12 semanas?

Cada 6 semanas, una nueva versión de Chromium viene con nuevas características, correcciones de errores / correcciones de seguridad y mejoras de V8. Los usuarios de Electron han sido fuerte y claros acerca de querer estos cambios de una manera oportuna, así que hemos ajustados nuestra fechas de lanzamientos estables para coincidir con los lanzamientos estables de Chromium. Primero, Electron v6.0.0 incluirá M76 y la fecha de publicación de la versión estable es 30 de Julio 30, 2019, el mismo día de lanzamiento que Chromium M76.

🚧 Qué significa esto para mi y mi aplicación Electron?

Tendrás acceso a nuevas características y correcciones de Chromium y V8 más temprano que antes. Importantemente, además sabrás cuando se acercan esos cambios, así que serás capaz de planificar con mejor información que antes.

El equipo de Electron continuará soportando las últimas tres versiones mayores. Por ejemplo, cuando v6.0.0 sea estable el 30 de Julio, 2019, soportaremos v6.x, v5.x, y v4.x, mientras que la v3.x alcanzará el final de su vida.

💬 Programa de retroalimentación

Por favor considere unirse a nuestro Programa de comentarios sobre la aplicación para ayudarnos con nuestros lanzamientos beta y estabilizaciones. 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.

📝 Una breve historia de los lanzamientos de Electron

Las decisiones acerca de las versiones estables antes de la v3.0.0 no seguían un agenda. Añadimos programas internos al proyecto con v3.0.0 y v4.0.0. A principios de este año, decidimos publicar nuestra fecha de lanzamiento estable por primera vez para Electron v5.0.0. Anunciar fechas de lanzamiento estables fue recibido positivamente en general y estamos encantados de seguir haciéndolo para futuras versiones.

Para optimizar mejor estos esfuerzos relacionados con la actualización, nuestros grupos de trabajos Upgrades y Releases fueron creados dentro de nuestro Governance. Ellos nos han permitido priorizar y delegar mejor este trabajo, el cual esperamos que se haga más evidente con la lanzamiento posterior.

Aquí es donde nuestra nueva cadencia nos colocará en comparación con la cadencia de Chromium:

gráfica de línea que compara Electron versus Chromium

📨 Si tienes alguna pregunta, por favor envíanos un correo electrónico a info@electronjs.org.

Electron 5.0.0

· 5 lectura mínima

El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 5.0.0! Puedes instalarlo con npm a través de npm install electron@latest o descargar los archivos tar desde nuestra página de lanzamientos. 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!


¿Qué es lo nuevo?

Gran parte de la funcionalidad de Electron es proporcionada por los componentes principales de Chromium, Node.js y V8. Electron se mantiene actualizado con estos proyectos para proporcionar a nuestros usuarios características nuevas de JavaScript, mejoras de rendimiento y correcciones de seguridad. Cada uno de estos paquetes tiene una versión mayor en Electron 5:

Electron 5 también incluye mejoras en APIs específicas de Electron. Un resumen de los cambios principales está a continuación; para la lista completa de cambios, revisa las notas de lanzamiento de Electrón v5.0.0.

Promisificación

Electron 5 continúa Iniciativa de Promisificación para convertir la API basada en la devolución de invocaciones de Electron para usar Promises. Estas API fueron convertidas para Electron 5:

  • app.getFileIcon
  • contentTracing.getCategories
  • contentTracing.startRecording
  • contentTracing.stopRecording
  • debugger.sendCommand
  • API de cookies
  • shell.openExternal
  • webContents.loadFile
  • webContents.loadURL
  • webContents.zoomLevel
  • webContents.zoomFactor
  • win.capturePage

Acceso a colores del sistema para macOS

Estas funciones fueron cambiadas o añadidas a systemPreferences para acceder a los colores de los sistemas macOS:

  • sistema.getAccentColor
  • systemPreferences.getColor
  • systemPreferences.getSystem Color

Información de la memoria del proceso

La función process.getProcessMemoryInfo ha sido añadida para obtener estadísticas de uso de memoria sobre el proceso actual.

Filtrado adicional para API remotas

Para mejorar la seguridad en la API remote, se han añadido nuevos eventos remotos para que remote.getBuiltin, remote.getCurrentWindow, remote.getCurrentWebContents y <webview>.getWebContents pueden ser filtrados.

Múltiples vistas de navegador en la ventana de navegador

BrowserWindow ahora soporta la administración de múltiples BrowserViews dentro del mismo BrowserWindow.

Restaurar archivos borrados

Por defecto para aplicaciones empaquetadas

Las aplicaciones empaquetadas ahora se comportarán como la aplicación predeterminada: se creará un menú de aplicación predeterminado a menos que la aplicación tenga una y el evento window-all-closed se gestionará automáticamente a menos que la aplicación gestione el evento.

Arenero Mixto

El modo Arenero-mixto ahora está habilitado por defecto. Los renderizadores lanzados con sandbox: true ahora serán realmente hecho el arenero, donde previamente solo estarían enrollados si el modo mixed-sandbox también estaba activado.

Mejoras en seguridad

Los valores por defecto de nodeIntegration y webviewTag ahora son false para mejorar la seguridad.

Comprobante ortográfico ahora asíncrono

La API SpellCheck ha sido cambiada para proveer resultados asíncronos.

Obsolescencia

Las siguientes API están recientemente obsoletas en Electron 5.0.0 y están planificadas para su retirada en 6.0.0:

Binarios de instantánea Mksnapshot para arm y arm64

Los binarios nativos de mksnapshot para brazo y arm64 están obsoletos y se eliminarán en 6. .0. Se pueden crear instantáneas para brazos y arm64 usando los binarios x64.

API de ServiceWorker en WebContents

Las API de ServiceWorker Deprecated en WebContents para preparar su retirada.

  • webContents.hasServiceWorker
  • webContents.unregisterServiceWorker

Módulos automáticos con contenido de webContents en arenero

Para mejorar la seguridad. los siguientes módulos están siendo obsoletos para su uso directamente a través de requerir y en su lugar necesitarán ser incluidos a través de remote.require en un arenero de contenido web:

  • electron.screen
  • child_process
  • fs
  • os
  • ruta

webFrame APIs del mundo Aislado

webFrame.setIsolatedWorldContentSecurityPolicy,webFrame.setIsolatedWorldHumanReadableName, webFrame.setIsolatedWorldSecurityOrigin han sido obsoletos a favor de webFrame.setIsolatedWorldInfo.

Arenero Mixto

enableMixedSandbox y el interruptor de línea de comandos --enable-mixed-sandbox siguen existiendo por compatibilidad, pero están obsoletos y no tienen efecto.

Fin de mantenimiento para 2.0.x

Por nuestra directiva de versiones admitidas, 2.0.x ha llegado al fin de su vida.

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 6.0.0 traza fechas claves en el ciclo de vida del desarrollo de Electron 6. Además, consulta nuestro documento de versionado para obtener información más detallada sobre el versionado en Electron.

Para obtener información sobre los cambios de ruptura previstos en las próximas versiones de Electron, consulte nuestro documento de Cambios Planificados de Ruptura.

Node.js Native Addons and Electron 5.0

· 2 lectura mínima

If you're having trouble using a native Node.js addon with Electron 5.0, there's a chance it needs to be updated to work with the most recent version of V8.


Goodbye v8::Handle, Hello v8::Local

In 2014, the V8 team deprecated v8::Handle in favor of v8::Local for local handles. Electron 5.0 includes a version of V8 that has finally removed v8::Handle for good, and native Node.js addons that still use it will need to be updated before they can be used with Electron 5.0.

The required code change is minimal, but every native Node module that still uses v8::Handle will fail to build with Electron 5.0 and will need to be modified. The good news is that Node.js v12 will also include this V8 change, so any modules that use v8::Handle will need to be updated anyway to work with the upcoming version of Node.

I maintain a native addon, how can I help?

If you maintain a native addon for Node.js, ensure you replace all occurrences of v8::Handle with v8::Local. The former was just an alias of the latter, so no other changes need to be made to address this specific issue.

You may also be interested in looking into N-API, which is maintained separately from V8 as a part of Node.js itself, and aims to insulate native addons from changes in the underlying JavaScript engine. You can find more information in the N-API documentation on the Node.js website.

Ayuda! I use a native addon in my app and it won't work!

If you're consuming a native addon for Node.js in your app and the native addon will not build because of this issue, check with the author of the addon to see if they've released a new version that fixes the problem. If not, reaching out to the author (or opening a Pull Request!) is probably your best bet.

Planificación de Electron v5.0.0

· 2 lectura mínima

Por primera vez en la historia, Electron está emocionado de dar a conocer nuestro programa de lanzamiento a partir de la v5. Este es nuestro primer paso para tener una cronología pública a largo plazo.


Como se menciona en nuestra versión estable v 4.0.0 publicación de blog, estamos planeando lanzarla aproximadamente trimestralmente para Mantén una cadencia más cercana con los lanzamientos de Chromium. Chromium publica una versión nueva muy rápidamente -- cada 6 semanas.

Echa un vistazo a la progresión en Electron versus Chromium lado a lado:

gráfica de línea que compara Electron versus Chromium

En la última mitad de 2018, nuestra principal prioridad era liberar más rápido y acercarnos a Chromium. Lo conseguimos aferrándonos a una línea temporal predeterminada. Electron 3.0.0 y 4.0.0 fueron liberados en una línea temporal de 2-3 meses para cada lanzamiento. Somos optimistas en cuanto a continuar con ese ritmo en la liberación de 5.0.0 y más adelante. Con un importante lanzamiento de Electron aproximadamente cada cuartero, ahora estamos a la par con la cadencia de lanzamiento de Chromium. Lograr la liberación estable de Chromium es siempre un objetivo para nosotros y estamos dando pasos para lograrlo.

Nos encantaría prometer fechas futuras como Nodo.js y Chromium lo hacen, pero no estamos en ese lugar aún. Somos optimistas en cuanto a que alcanzaremos cronología a un plazo largo en el futuro.

Con esto en mente, estamos dando los primeros pasos publicando nuestro calendario de lanzamiento para v5.0.0. Puedes encontrar eso aquí.

Para ayudarnos a probar nuestras versiones beta y estabilización, por favor considera unirte a nuestro Programa de Comentarios de App.

Electron 4.0.0

· 7 lectura mínima

¡ El equipo de electrones se complace en anunciar que el lanzamiento estable de Electron 4 ya está disponible! Puedes instalarlo desde electronjs.org o desde npm a través de npm install electron@latest. El lanzamiento está repleto de actualizaciones, correcciones y nuevas características, y no podemos esperar a ver lo que construyes con ellos. ¡Lea más para obtener más información sobre esta versión, y por favor comparta cualquier comentario que tenga mientras explora!


¿Qué es lo nuevo?

Una gran parte de la funcionalidad de Electron es proporcionada por Chromium, Node.js y V8, los componentes principales que componen Electron. Como tal, un objetivo clave para el equipo de Electron es mantenerse al día con los cambios en estos proyectos tanto como sea posible proporcionando a los desarrolladores que construyen aplicaciones Electron acceso a nuevas características web y JavaScript. Con este fin, Electron 4 presenta los principales saltos de versión de cada uno de estos componentes; Electron v 4.0.0 incluye 69.0.3497.106de cromo, 10.11.0de nodo y 6.9.427.24V8.

Además, Electron 4 incluye cambios en las APIs específicas de Electron. Puedes encontrar un resumen de los cambios principales en Electron 4 a continuación; para ver la lista completa de cambios, revisa las notas de lanzamiento de Electron v 4.0.0.

Deshabilitar el módulo remote

Ahora tiene la habilidad de desactivar el módulo remote por razones de seguridad. El módulo puede ser deshabilitado para etiquetas BrowserWindows y webview:

// BrowserWindow
new BrowserWindow({
webPreferences: {
enableRemoteModule: false
}
})

// webview tag
<webview src="http://www.google.com/" enableremotemodule="false"></webview>

Consulte la documentación de BrowserWindow y <webview> Tag para más información.

Filtrando remote.require() / remote.getGlobal() solicitudes

Esta característica es útil si no desea deshabilitar completamente el módulo remote en su proceso de renderizado o webview pero le gustaría un control adicional sobre qué módulos pueden ser requeridos vía remote.require.

Cuando se requiere un módulo a través de remote.require en un proceso de renderizado, se eleva un evento remote-require en el módulo app. Puede llamar a event.preventDefault() en el evento (el primer argumento) para evitar que el módulo sea cargado. La WebContents instancia donde ocurrió la solicitud es pasada como el segundo argumento, y el nombre del módulo es pasado como el tercer argumento. El mismo evento también se emite en la instancia de WebContents, pero en este caso, los únicos argumentos son el evento y el nombre del módulo. En ambos casos, puede devolver un valor personalizado estableciendo el valor de event.returnValue.

// Controla `remote.require` desde todos los WebContents:
app.on('remote-require', function (event, webContents, requestedModuleName) {
// ...
});

// Control `remote.require` from a specific WebContents instance:
browserWin.webContents.on(
'remote-require',
function (event, requestedModuleName) {
// ...
},
);

De una manera similar, cuando se llama a remote.getGlobal(name), se levanta un evento remote-get-global. Esto funciona del mismo modo que el evento remote-require: llame a preventDefault() para evitar que el global sea devuelto, y establece event.returnValue para retornar un valor personalizado.

// Control `remote.getGlobal` from all WebContents:
app.on(
'remote-get-global',
function (event, webContents, requrestedGlobalName) {
// ...
},
);

// Control `remote.getGlobal` from a specific WebContents instance:
browserWin.webContents.on(
'remote-get-global',
function (event, requestedGlobalName) {
// ...
},
);

Para obtener más información, consulte la siguiente documentación:

JavaScript Access to the About Panel

En macOS, ahora puede llamar a app.showAboutPanel() para mostrar programáticamente el panel Acerca, al igual que hacer clic en el elemento de menú creado a través de {role: 'about'}. Vea la documentación de showAboutPanel para más información

Controlando WebContents Limitando el segundo plano

WebContents instances now have a method setBackgroundThrottling(allowed) to enable or disable throttling of timers and animations when the page is backgrounded.

let win = new BrowserWindow(...)
win.webContents.setBackgroundThrottling(enableBackgroundThrottling)
win.webContents.setBackgroundThrottling(enableBackgroundThrottling)

See the setBackgroundThrottling documentation for more information.

Restaurar archivos borrados

No más soporte para macOS 10.9

Chromium no longer supports macOS 10.9 (OS X Mavericks), and as a result Electron 4.0 and beyond does not support it either.

Single Instance Locking

Previously, to make your app a Single Instance Application (ensuring that only one instance of your app is running at any given time), you could use the app.makeSingleInstance() method. Starting in Electron 4.0, you must use app.requestSingleInstanceLock() instead. The return value of this method indicates whether or not this instance of your application successfully obtained the lock. If it failed to obtain the lock, you can assume that another instance of your application is already running with the lock and exit immediately.

For an example of using requestSingleInstanceLock() and information on nuanced behavior on various platforms, see the documentation for app.requestSingleInstanceLock() and related methods and the second-instance event.

win_delay_load_hook

When building native modules for windows, the win_delay_load_hook variable in the module's binding.gyp must be true (which is the default). If this hook is not present, then the native module will fail to load on Windows, with an error message like Cannot find module. See the native module guide for more information.

Obsolescencia

The following breaking changes are planned for Electron 5.0, and thus are deprecated in Electron 4.0.

Node.js Integration Disabled for nativeWindowOpen-ed Windows

Starting in Electron 5.0, child windows opened with the nativeWindowOpen option will always have Node.js integration disabled.

webPreferences Default Values

When creating a new BrowserWindow with the webPreferences option set, the following webPreferences option defaults are deprecated in favor of new defaults listed below:

PropertyDeprecated DefaultNew Default
contextIsolationfalsetrue
nodeIntegrationtruefalse
webviewTagvalue of nodeIntegration if set, otherwise truefalse

Please note: there is currently a known bug (#9736) that prevents the webview tag from working if contextIsolation is on. Keep an eye on the GitHub issue for up-to-date information!

Learn more about context isolation, Node integration, and the webview tag in the Electron security document.

Electron 4.0 will still use the current defaults, but if you don't pass an explicit value for them, you'll see a deprecation warning. To prepare your app for Electron 5.0, use explicit values for these options. See the BrowserWindow docs for details on each of these options.

webContents.findInPage(text[, options])

The medialCapitalAsWordStart and wordStart options have been deprecated as they have been removed upstream.

Programa de retroalimentación

The App Feedback Program we instituted during the development of Electron 3.0 was successful, so we've continued it during the development of 4.0 as well. We'd like to extend a massive thank you to Atlassian, Discord, MS Teams, OpenFin, Slack, Symphony, WhatsApp, and the other program members for their involvement during the 4.0 beta cycle. To learn more about the App Feedback Program and to participate in future betas, check out our blog post about the program.

¿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. See our versioning document for more detailed information about versioning in Electron.

Para obtener información sobre los cambios de ruptura previstos en las próximas versiones de Electron, consulte nuestro documento de Cambios Planificados de Ruptura.