Saltar al contenido principal

41 publicaciones etiquetados con "lanzamiento"

Ver todas las categorías

Electron 33.0.0

· 4 lectura mínima

¡Electron 33.0.0 ha sido liberado! It includes upgrades to Chromium 130.0.6723.44, V8 13.0, and Node 20.18.0.


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 33.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 Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Highlights

  • Added a handler, app.setClientCertRequestPasswordHandler(handler), to help unlock cryptographic devices when a PIN is needed. #41205
  • Extended navigationHistory API with 2 new functions for better history management. #42014
  • Improved native theme transparency checking. #42862

Stack Changes

Electron 33 upgrades Chromium from 128.0.6613.36 to 130.0.6723.44, Node from 20.16.0 to 20.18.0, and V8 from 12.8 to 13.0.

Nuevas características

  • Added a handler, app.setClientCertRequestPasswordHandler(handler), to help unlock cryptographic devices when a PIN is needed. #41205
  • Added error event in utility process to support diagnostic reports on V8 fatal errors. #43997
  • Added View.setBorderRadius(radius) for customizing the border radius of views—with compatibility for WebContentsView. #42320
  • Extended navigationHistory API with 2 new functions for better history management. #42014

Restaurar archivos borrados

Removed: macOS 10.15 support

macOS 10.15 (Catalina) is no longer supported by Chromium.

Older versions of Electron will continue to run on Catalina, but macOS 11 (Big Sur) or later will be required to run Electron v33.0.0 and higher.

Behavior Changed: Native modules now require C++20

Due to changes made upstream, both V8 and Node.js now require C++20 as a minimum version. Developers using native node modules should build their modiles with --std=c++20 rather than --std=c++17. Images using gcc9 or lower may need to update to gcc10 in order to compile. See #43555 for more details.

Behavior Changed: custom protocol URL handling on Windows

Due to changes made in Chromium to support Non-Special Scheme URLs, custom protocol URLs that use Windows file paths will no longer work correctly with the deprecated protocol.registerFileProtocol and the baseURLForDataURL property on BrowserWindow.loadURL, WebContents.loadURL, and <webview>.loadURL. protocol.handle will also not work with these types of URLs but this is not a change since it has always worked that way.

// No longer works
protocol.registerFileProtocol('other', () => {
callback({ filePath: '/path/to/my/file' });
});

const mainWindow = new BrowserWindow();
mainWindow.loadURL(
'data:text/html,<script src="loaded-from-dataurl.js"></script>',
{ baseURLForDataURL: 'other://C:\\myapp' }
);
mainWindow.loadURL('other://C:\\myapp\\index.html');

// Replace with
const path = require('node:path');
const nodeUrl = require('node:url');
protocol.handle(other, (req) => {
const srcPath = 'C:\\myapp\\';
const reqURL = new URL(req.url);
return net.fetch(
nodeUrl.pathToFileURL(path.join(srcPath, reqURL.pathname)).toString()
);
});

mainWindow.loadURL(
'data:text/html,<script src="loaded-from-dataurl.js"></script>',
{ baseURLForDataURL: 'other://' }
);
mainWindow.loadURL('other://index.html');

Behavior Changed: webContents property on login on app

The webContents property in the login event from app will be null when the event is triggered for requests from the utility process created with respondToAuthRequestsFromMainProcess option.

Deprecated: textured option in BrowserWindowConstructorOption.type

The textured option of type in BrowserWindowConstructorOptions has been deprecated with no replacement. This option relied on the NSWindowStyleMaskTexturedBackground style mask on macOS, which has been deprecated with no alternative.

Deprecated: systemPreferences.accessibilityDisplayShouldReduceTransparency

The systemPreferences.accessibilityDisplayShouldReduceTransparency property is now deprecated in favor of the new nativeTheme.prefersReducedTransparency, which provides identical information and works cross-platform.

// Deprecated
const shouldReduceTransparency =
systemPreferences.accessibilityDisplayShouldReduceTransparency;

// Replace with:
const prefersReducedTransparency = nativeTheme.prefersReducedTransparency;

End of Support for 30.x.y

Electron 30.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.

E33 (Oct'24)E34 (Jan'25)E35 (Apr'25)
33.x.y34.x.y35.x.y
32.x.y33.x.y34.x.y
31.x.y32.x.y33.x.y

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.

You can find Electron's public timeline here.

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

Electron 32.0.0

· 4 lectura mínima

¡Electron 32.0.0 ha sido liberado! It includes upgrades to Chromium 128.0.6613.36, V8 12.8, and Node 20.16.0.


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 32.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 Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Highlights

  • Added new API version history in our documentation, a feature created by @piotrpdev as part of Google Summer of Code. You can learn more about it in this blog post. #42982
  • Removed nonstandard File.path extension from the Web File API. #42053
  • Aligned failure pathway in Web File System API with upstream when attempting to open a file or directory in a blocked path. #42993
  • Added the following existing navigation-related APIs to webcontents.navigationHistory: canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear. The previous navigation APIs are now deprecated. #41752

Stack Changes

Electron 32 upgrades Chromium from 126.0.6478.36 to 128.0.6613.36, Node from 20.14.0 to 20.16.0, and V8 from 12.6 to 12.8.

Nuevas características

  • Added support for responding to auth requests initiated from the utility process via the app module's 'login' event. #43317
  • Added the cumulativeCPUUsage property to the CPUUsage structure, which returns the total seconds of CPU time used since process startup. #41819
  • Added the following existing navigation related APIs to webContents.navigationHistory: canGoBack, goBack, canGoForward, goForward, canGoToOffset, goToOffset, clear. #41752
  • Extended WebContentsView to accept pre-existing webContents objects. #42086
  • Added a new property prefersReducedTransparency to nativeTheme, which indicates whether the user has chosen to reduce OS-level transparency via system accessibility settings. #43137
  • Aligned failure pathway in File System Access API with upstream when attempting to open a file or directory in a blocked path. #42993
  • Enabled the Windows Control Overlay API on Linux. #42681
  • Enabled zstd compression in network requests. #43300

Restaurar archivos borrados

Removed: File.path

The nonstandard path property of the Web File object was added in an early version of Electron as a convenience method for working with native files when doing everything in the renderer was more common. However, it represents a deviation from the standard and poses a minor security risk as well, so beginning in Electron 32.0 it has been removed in favor of the webUtils.getPathForFile method.

// Before (renderer)
const file = document.querySelector('input[type=file]');
alert(`Uploaded file path was: ${file.path}`);
// After (renderer)
const file = document.querySelector('input[type=file]');
electron.showFilePath(file);

// After (preload)
const { contextBridge, webUtils } = require('electron');

contextBridge.exposeInMainWorld('electron', {
showFilePath(file) {
// It's best not to expose the full file path to the web content if
// possible.
const path = webUtils.getPathForFile(file);
alert(`Uploaded file path was: ${path}`);
},
});

Deprecated: clearHistory, canGoBack, goBack, canGoForward, goForward, goToIndex, canGoToOffset, goToOffset on WebContents

Navigation-related APIs on WebContents instances are now deprecated. These APIs have been moved to the navigationHistory property of WebContents to provide a more structured and intuitive interface for managing navigation history.

// Deprecated
win.webContents.clearHistory();
win.webContents.canGoBack();
win.webContents.goBack();
win.webContents.canGoForward();
win.webContents.goForward();
win.webContents.goToIndex(index);
win.webContents.canGoToOffset();
win.webContents.goToOffset(index);

// Replace with
win.webContents.navigationHistory.clear();
win.webContents.navigationHistory.canGoBack();
win.webContents.navigationHistory.goBack();
win.webContents.navigationHistory.canGoForward();
win.webContents.navigationHistory.goForward();
win.webContents.navigationHistory.canGoToOffset();
win.webContents.navigationHistory.goToOffset(index);

End of Support for 29.x.y

Electron 29.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.

E32 (Ago'24)E33 (Oct'24)E34 (Jan'25)
32.x.y33.x.y34.x.y
31.x.y32.x.y33.x.y
30.x.y31.x.y32.x.y

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.

You can find Electron's public timeline here.

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

Electron 31.0.0

· 3 lectura mínima

¡Electron 31.0.0 ha sido liberado! It includes upgrades to Chromium 126.0.6478.36, V8 12.6, and Node 20.14.0.


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 31.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 Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Highlights

  • Extended WebContentsView to accept pre-existing webContents object. #42319
  • Added support for NODE_EXTRA_CA_CERTS. #41689
  • Updated window.flashFrame(bool) to flash continuously on macOS. #41391
  • Removed WebSQL support #41868
  • nativeImage.toDataURL will preserve PNG colorspace #41610
  • Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. #41432

Stack Changes

Electron 31 upgrades Chromium from 124.0.6367.49 to 126.0.6478.36, Node from 20.11.1 to 20.14.0, and V8 from 12.4 to 12.6.

Nuevas características

  • Added clearData method to Session. #40983
    • Added options parameter to Session.clearData API. #41355
  • Se ha añadido soporte para puertos Bluetooth solicitados por la clase de servicio ID en navigator.serial. #41638
  • Added support for Node's NODE_EXTRA_CA_CERTS environment variable. #41689
  • Extended webContents.setWindowOpenHandler to support manual creation of BrowserWindow. #41432
  • Implemented support for the web standard File System API. #41419
  • Extended WebContentsView to accept pre-existing WebContents instances. #42319
  • Se añadió una nueva propiedad de instancia navigationHistory en la API webContents con el método navigationHistory.getEntryAtIndex, permitiendo a las aplicaciones recuperar la URL y el título de cualquier entrada de navegación dentro del historial de navegación. #41577 (Also in 29, 30)

Restaurar archivos borrados

Removed: WebSQL support

Chromium has removed support for WebSQL upstream, transitioning it to Android only. See Chromium's intent to remove discussion for more information.

Behavior Changed: nativeImage.toDataURL will preseve PNG colorspace

PNG decoder implementation has been changed to preserve colorspace data. The encoded data returned from this function now matches it.

See crbug.com/332584706 for more information.

Behavior Changed: win.flashFrame(bool) will flash dock icon continuously on macOS

This brings the behavior to parity with Windows and Linux. Prior behavior: The first flashFrame(true) bounces the dock icon only once (using the NSInformationalRequest level) and flashFrame(false) does nothing. New behavior: Flash continuously until flashFrame(false) is called. This uses the NSCriticalRequest level instead. To explicitly use NSInformationalRequest to cause a single dock icon bounce, it is still possible to use dock.bounce('informational').

Fin de soporte para 28.x.y

Electron 28.x.y ha alcanzado el fin de soporte según la política de soporte. Developers and applications are encouraged to upgrade to a newer version of Electron.

E31 (Jun'24)E32 (Ago'24)E33 (Oct'24)
31.x.y32.x.y33.x.y
30.x.y31.x.y32.x.y
28.x.y29.x.y31.x.y

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.

You can find Electron's public timeline here.

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

Electron 30.0.0

· 4 lectura mínima

¡Electron 30.0.0 ha sido liberado! Incluye actualizaciones a Chromium 124.0.6367.49, V8 12.4 y Node.js 20.11.1.


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 30.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 Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Highlights

  • Fusible de integridad ASAR ahora soportado en Windows (#40504)
    • Las aplicaciones existentes con la integración ASAR habilitada pueden no funcionar en Windows si no están configuradas correctamente. Las aplicaciones que usan herramientas de empaquetado Electron deben actualizar a @electron/packager@18.3.1 o @electron/forge@7.4.0.
    • Eche un vistazo a nuestro tutorial de integración ASAR para más información.
  • Añadido WebContentsView y BaseWindow módulos de proceso principales, haciendo obsoleto y reemplazando BrowserView (#35658)
    • BrowserView es ahora una corrección sobre WebContentsView y la implementación antigua ha sido eliminada.
    • Consulte nuestra documentación de Incrustaciones Web para una comparación de la nueva API WebContentsView a otras API similares.
  • Soporte implementado para File System API (#41827)

Stack Changes

Electron 30 actualiza Chromium de 122.0.6261.39 a 124.0.6367.49, Node de 20.9.0 a 20.11.1, y V8 de 12.2 a 12.4.

Nuevas características

  • Se añadió una preferencia web 'transparent' a las vistas web. (#40301)
  • Se añadió una nueva propiedad de instancia navigationHistory en la API webContents con el método navigationHistory.getEntryAtIndex, permitiendo a las aplicaciones recuperar la URL y el título de cualquier entrada de navegación dentro del historial de navegación. (#41662)
  • Se añadió el nuevo método BrowserWindow.isOccluded() para permitir que las aplicaciones revisen el estado de oclusión. (#38982)
  • Añadido soporte de configuración de proxy para peticiones realizadas con el módulo net del proceso de utilidad. (#41417)
  • Se ha añadido soporte para puertos Bluetooth solicitados por la clase de servicio ID en navigator.serial. (#41734)
  • Se añadió soporte para la bandera CLI de Node.js NODE_EXTRA_CA_CERTS. (#41822)

Restaurar archivos borrados

Behavior Changed: cross-origin iframes now use Permission Policy to access features

Iframes de origen cruzado deben ahora especificar características disponibles para un iframe dado a través del atributo allow para acceder a ellos.

Consulte documentación para más información.

Eliminado: El interruptor de línea de comando --disable-color-correct-rendering

Este interruptor nunca se documentó formalmente, pero su eliminación se muestra aquí de cualquier forma. Chromium itself now has better support for color spaces so this flag should not be needed.

Comportamiento cambiado: comportamiento BrowserView.setAutoResize en macOS

En Electron 30, BrowserView ahora es un envoltorio alrededor de la nueva API WebContentsView.

Anteriormente, la función setAutoResize de la API BrowserView fue respaldada por autoresizing en macOS, y por un algoritmo personalizado en Windows y Linux. For simple use cases such as making a BrowserView fill the entire window, the behavior of these two approaches was identical. However, in more advanced cases, BrowserViews would be autoresized differently on macOS than they would be on other platforms, as the custom resizing algorithm for Windows and Linux did not perfectly match the behavior of macOS's autoresizing API. The autoresizing behavior is now standardized across all platforms.

Si su aplicación utiliza BrowserView. etAutoResize para hacer algo más complejo que hacer que un BrowserView llene toda la ventana, es probable que tenga una lógica personalizada para manejar esta diferencia de comportamiento en macOS. If so, that logic will no longer be needed in Electron 30 as autoresizing behavior is consistent.

Eliminado: propiedad params.inputFormType en context-menu en WebContents

La propiedad inputFormType del objeto params en el evento context-menu de WebContents ha sido eliminada. En su lugar, utilice la nueva propiedad formControlType.

Eliminado: process.getIOCounters()

Chromium has removed access to this information.

Fin de soporte para 27.x.y

Electron 27.x.y ha alcanzado el fin de soporte según la política de soporte. Developers and applications are encouraged to upgrade to a newer version of Electron.

E30 (Apr'24)E31 (Jun'24)E32 (Ago'24)
30.x.y31.x.y32.x.y
29.x.y30.x.y31.x.y
28.x.y29.x.y30.x.y

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.

You can find Electron's public timeline here.

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

Electron 29.0.0

· 4 lectura mínima

¡Electron 29.0.0 ha sido liberado! It includes upgrades to Chromium 122.0.6261.39, V8 12.2, and Node.js 20.9.0.


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 29.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 Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Highlights

  • Added a new top-level webUtils module, a renderer process module that provides a utility layer to interact with Web API objects. The first available API in the module is webUtils.getPathForFile. Electron's previous File.path augmentation was a deviation from web standards; this new API is more in line with current web standards behavior.

Stack Changes

Electron 29 upgrades Chromium from 120.0.6099.56 to 122.0.6261.39, Node from 18.18.2 to 20.9.0, and V8 from 12.0 to 12.2.

Nuevas características

  • Added new webUtils module, a utility layer to interact with Web API objects, to replace File.path augmentation. #38776
  • Added net module to utility process. #40890
  • Added a new Electron Fuse, grantFileProtocolExtraPrivileges, that opts the file:// protocol into more secure and restrictive behaviour that matches Chromium. #40372
  • Added an option in protocol.registerSchemesAsPrivileged to allow V8 code cache in custom schemes. #40544
  • Migrated app.{set|get}LoginItemSettings(settings) to use Apple's new recommended underlying framework on macOS 13.0+. #37244

Restaurar archivos borrados

Behavior Changed: ipcRenderer can no longer be sent over the contextBridge

Attempting to send the entire ipcRenderer module as an object over the contextBridge will now result in an empty object on the receiving side of the bridge. This change was made to remove / mitigate a security footgun. You should not directly expose ipcRenderer or its methods over the bridge. Instead, provide a safe wrapper like below:

contextBridge.exposeInMainWorld('app', {
onEvent: (cb) => ipcRenderer.on('foo', (e, ...args) => cb(args)),
});

Removed: renderer-process-crashed event on app

The renderer-process-crashed event on app has been removed. Use the new render-process-gone event instead.

// Removed
app.on('renderer-process-crashed', (event, webContents, killed) => {
/* ... */
});

// Replace with
app.on('render-process-gone', (event, webContents, details) => {
/* ... */
});

Removed: crashed event on WebContents and <webview>

The crashed events on WebContents and <webview> have been removed. Use the new render-process-gone event instead.

// Removed
win.webContents.on('crashed', (event, killed) => {
/* ... */
});
webview.addEventListener('crashed', (event) => {
/* ... */
});

// Replace with
win.webContents.on('render-process-gone', (event, details) => {
/* ... */
});
webview.addEventListener('render-process-gone', (event) => {
/* ... */
});

Removed: gpu-process-crashed event on app

The gpu-process-crashed event on app has been removed. Use the new child-process-gone event instead.

// Removed
app.on('gpu-process-crashed', (event, killed) => {
/* ... */
});

// Replace with
app.on('child-process-gone', (event, details) => {
/* ... */
});

Fin de soporte para 26.x.y

Electron 26.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.

E29 (Feb'24)E30 (Apr'24)E31 (Jun'24)
29.x.y30.x.y31.x.y
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y

What's Next

Did you know that Electron recently added a community Request for Comments (RFC) process? If you want to add a feature to the framework, RFCs can be a useful tool to start a dialogue with maintainers on its design. You can also see upcoming changes being discussed in the Pull Requests. To learn more, check out our Introducing electron/rfcs blog post, or check out the README of the electron/rfcs repository directly.

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.

You can find Electron's public timeline here.

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

Electron 28.0.0

· 3 lectura mínima

¡Electron 28.0.0 ha sido liberado! It includes upgrades to Chromium 120.0.6099.56, V8 12.0, and Node.js 18.18.2.


El equipo de Electron esta emocionado de anunciar el lanzamiento de Electron 28.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 Mastodon, or join our community Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Highlights

  • Implemented support for ECMAScript modules or ESM (What are ECMAScript modules? learn more here. This includes support for ESM in Electron proper, as well as areas such as the UtilityProcess API entrypoints. See our ESM documentation for more details.
  • In addition to enabling ESM support in Electron itself, Electron Forge also supports using ESM to package, build and develop Electron applications. You can find this support in Forge v7.0.0 or higher.

Stack Changes

Nuevas características

  • Enabled ESM support. #37535
  • Added ESM entrypoints to the UtilityProcess API. #40047
  • Added several properties to the display object including detected, maximumCursorSize, and nativeOrigin. #40554
  • Added support for ELECTRON_OZONE_PLATFORM_HINT environment variable on Linux. #39792

Restaurar archivos borrados

Behavior Changed: WebContents.backgroundThrottling set to false affects all WebContents in the host BrowserWindow

WebContents.backgroundThrottling set to false will disable frames throttling in the BrowserWindow for all WebContents displayed by it.

Removed: BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) has been removed, the BrowserWindow.setWindowButtonPosition(position) API should be used instead which accepts null instead of { x: 0, y: 0 } to reset the position to system default.

// Removed in Electron 28
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// Replace with
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

Removed: BrowserWindow.getTrafficLightPosition()

BrowserWindow.getTrafficLightPosition() has been removed, the BrowserWindow.getWindowButtonPosition() API should be used instead which returns null instead of { x: 0, y: 0 } when there is no custom position.

// Removed in Electron 28
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}

// Replace with
const ret = win.getWindowButtonPosition();
if (ret === null) {
// No custom position.
}

Removed: ipcRenderer.sendTo()

The ipcRenderer.sendTo() API has been removed. It should be replaced by setting up a MessageChannel between the renderers.

The senderId and senderIsMainFrame properties of IpcRendererEvent have been removed as well.

Removed: app.runningUnderRosettaTranslation

The app.runningUnderRosettaTranslation property has been removed. Use app.runningUnderARM64Translation instead.

// Removed
console.log(app.runningUnderRosettaTranslation);
// Replace with
console.log(app.runningUnderARM64Translation);

Fin de soporte para 25.x.y

Electron 25.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.

E28 (Dic'23)E29 (Feb'24)E30 (Apr'24)
28.x.y29.x.y30.x.y
27.x.y28.x.y29.x.y
26.x.y27.x.y28.x.y

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.

You can find Electron's public timeline here.

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

Electron 27.0.0

· 4 lectura mínima

¡Electron 27.0.0 ha sido liberado! Incluye actualizaciones a Chromium 118.0.5993.32, V8 11.8, y Node.js 18.17.1.


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

¡Si tienes algún comentario, por favor compártelo con nosotros por medio de Twitter o Mastodon, o únete a nuestra comunidad en Discord! Bugs and feature requests can be reported in Electron's issue tracker.

Notable Changes

Stack Changes

Restaurar archivos borrados

Eliminado: soporte para macOS 10.13 / 10.14

macOS 10.13 (High Sierra) and macOS 10.14 (Mojave) are no longer supported by Chromium.

Las versiones antiguas de Electron continuarán funcionando en estos sistemas operativos, pero macOS 10.15 (Catalina) o versiones superiores son requeridas para ejecutar Electron v27.0.0 o superior.

Deprecado: ipcRenderer.sendTo()

La API de ipcRenderer.sendTo() es obsoleta. Esta se debería reemplazar configurando un MessageChannel entre los renderizadores.

Las propiedades senderId y senderIsMainFrame de IpcRendererEvent también están obsoletas.

Eliminado: eventos de esquema de color en systemPreferences

Los siguientes eventos de systemPreferences han sido eliminados:

  • inverted-color-scheme-changed
  • high-contrast-color-scheme-changed

Use el nuevo evento updated en el módulo nativeTheme en su lugar.

// Eliminado
systemPreferences.on('inverted-color-scheme-changed', () => {
/* ... */
});
systemPreferences.on('high-contrast-color-scheme-changed', () => {
/* ... */
});

// Reemplazar con
nativeTheme.on('updated', () => {
/* ... */
});

Eliminado: webContents.getPrinters

El método webContents.getPrinters ha sido eliminado. Use webContents.getPrintersAsync instead.

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

// Eliminado
console.log(w.webContents.getPrinters());
// Reemplazar con
w.webContents.getPrintersAsync().then((printers) => {
console.log(printers);
});

Eliminado: systemPreferences.{get,set}AppLevelAppearance y systemPreferences.appLevelAppearance

Los métodos de systemPreferences.getAppLevelAppearance y systemPreferences.setAppLevelAppearance han sido eliminados, al igual que la propiedad de systemPreferences.appLevelAppearance. Use the nativeTheme module instead.

// Eliminado
systemPreferences.getAppLevelAppearance();
// Reemplazar con
nativeTheme.shouldUseDarkColors;

// Eliminado
systemPreferences.appLevelAppearance;
// Reemplazar con
nativeTheme.shouldUseDarkColors;

// Eliminado
systemPreferences.setAppLevelAppearance('dark');
// Reemplazar con
nativeTheme.themeSource = 'dark';

Eliminado: valor alternate-selected-control-text para systemPreferences.getColor

El valor alternate-selected-control-text para systemPreferences.getColor ha sido eliminado. Use selected-content-background instead.

// Eliminado
systemPreferences.getColor('alternate-selected-control-text');
// Reemplazar con
systemPreferences.getColor('selected-content-background');

Nuevas características

  • Se ha agregado la API de ajustes de transparencia de accesibilidad de la aplicación #39631
  • Se ha agregado el soporte para las APIs de extensión chrome.scripting #39675
  • Se ha activado WaylandWindowDecorationspor defecto #39644

Fin de soporte para 24.x.y

Electron 24.x.y ha alcanzado el fin de soporte según la política de soporte del proyecto. Developers and applications are encouraged to upgrade to a newer version of Electron.

E27 (Oct'23)E28 (Dic'23)E29 (Feb'24)
27.x.y28.x.y29.x.y
26.x.y27.x.y28.x.y
25.x.y26.x.y27.x.y

Fin del soporte extendido para 22.x.y

A inicios de este año, el equipo de Electron extendió la fecha del fin de ciclo de vida de Electron 22 desde el 30 de mayo de 2023 hasta el 10 de octubre de 2023, para que coincida con el soporte extendido de Chrome para Windows 7/8/8.1 (ver Hasta la vista, Windows 7/8/8.1 para más detalles).

Electron 22.x.y ha alcanzado el fin del soporte, de acuerdo a la política de soporte del proyecto y esta extensión de soporte. Esto eliminará el soporte a las últimas tres versiones estables y finalizará el soporte oficial para Windows 7/8/8.1.

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.

You can find Electron's public timeline here.

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

Electron 26.0.0

· 3 lectura mínima

¡Electron 26.0.0 ha sido liberado! Incluye actualizaciones a Chromium 116.0.5845.62, V8 11.2, y Node.js 18.16.1. ¡Lea a continuación para más detalles!


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

Notable Changes

Stack Changes

Restaurar archivos borrados

Deprecado: webContents.getPrinters

El método webContents.getPrinters ha sido desaprobado. Use webContents.getPrintersAsync instead.

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

// Deprecated
console.log(w.webContents.getPrinters());
// Replace with
w.webContents.getPrintersAsync().then((printers) => {
console.log(printers);
});

Deprecated: systemPreferences.{get,set}AppLevelAppearance and systemPreferences.appLevelAppearance

The systemPreferences.getAppLevelAppearance and systemPreferences.setAppLevelAppearance methods have been deprecated, as well as the systemPreferences.appLevelAppearance property. Use the nativeTheme module instead.

// Deprecated
systemPreferences.getAppLevelAppearance();
// Replace with
nativeTheme.shouldUseDarkColors;

// Deprecated
systemPreferences.appLevelAppearance;
// Replace with
nativeTheme.shouldUseDarkColors;

// Deprecated
systemPreferences.setAppLevelAppearance('dark');
// Replace with
nativeTheme.themeSource = 'dark';

Deprecated: alternate-selected-control-text value for systemPreferences.getColor

The alternate-selected-control-text value for systemPreferences.getColor has been deprecated. Use selected-content-background instead.

// Deprecated
systemPreferences.getColor('alternate-selected-control-text');
// Replace with
systemPreferences.getColor('selected-content-background');

Nuevas características

  • Added safeStorage.setUsePlainTextEncryption and safeStorage.getSelectedStorageBackend api. #39107
  • Added safeStorage.setUsePlainTextEncryption and safeStorage.getSelectedStorageBackend api. #39155
  • Added senderIsMainFrame to messages sent via ipcRenderer.sendTo(). #39206
  • Added support for flagging a Menu as being keyboard initiated. #38954

Fin de soporte para 23.x.y

Electron 23.x.y ha alcanzado el fin de soporte según la política de soporte del proyecto. Developers and applications are encouraged to upgrade to a newer version of Electron.

E26 (Aug'23)E27 (Oct'23)E28 (Jan'24)
26.x.y27.x.y28.x.y
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
22.x.y

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.

You can find Electron's public timeline here.

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

Electron 25.0.0

· 5 lectura mínima

¡Electron 25.0.0 ha sido liberado! Incluye actualizaciones a Chromium 114, V8 11.4, y Node.js 18.15.0. ¡Lea a continuación para más detalles!


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

Notable Changes

Highlights

  • Se implementó net.fetch en el módulo net de Electron, usando la pila de red de Chromium. Esto difiere del fetch() de Node, que usa la pila HTTP de Node.js. Ver #36733 y #36606.
  • Se añadió protocol.handle, que reemplaza y depreca a protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Se extiende el soporte para Electron 22, para que coincida con el plan de desaprobación de Windows 7/8/8.1 de Microsoft. Ver detalles adicionales al final de esta entrada de blog.

Stack Changes

Restaurar archivos borrados

Deprecado: protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol

The protocol.register*Protocol and protocol.intercept*Protocol methods have been replaced with protocol.handle.

El nuevo método puede registrar un nuevo protocolo o interceptar un protocolo existente, y las respuestas pueden ser de cualquier tipo.

// Obsoleto en Electron 25
protocol.registerBufferProtocol('some-protocol', () => {
callback({ mimeType: 'text/html', data: Buffer.from('<h5>Response</h5>') });
});

// Reemplazar con
protocol.handle('some-protocol', () => {
return new Response(
Buffer.from('<h5>Response</h5>'), // También podría ser un string o ReadableStream.
{ headers: { 'content-type': 'text/html' } }
);
});
// Obsoleto en Electron 25
protocol.registerHttpProtocol('some-protocol', () => {
callback({ url: 'https://electronjs.org' });
});

// Reemplazar con
protocol.handle('some-protocol', () => {
return net.fetch('https://electronjs.org');
});
// Obsoleto en Electron 25
protocol.registerFileProtocol('some-protocol', () => {
callback({ filePath: '/path/to/my/file' });
});

// Reemplazar con
protocol.handle('some-protocol', () => {
return net.fetch('file:///path/to/my/file');
});

Deprecado: BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) ahora es obsoleto, la API BrowserWindow.setWindowButtonPosition(position) debe ser usada en su lugar, la cual acepta null en vez de { x: 0, y: 0 } para restablecer la posición al valor predeterminado del sistema.

// Obsoleto en Electron 25
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// Reemplazar con
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

Deprecado: BrowserWindow.getTrafficLightPosition()

BrowserWindow.getTrafficLightPosition() ahora es obsoleto, la API BrowserWindow.getWindowButtonPosition() debe ser usada en su lugar, la cual retorna null en vez de { x: 0, y: 0 } cuando no hay una posición personalizada.

// Deprecated in Electron 25
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}

// Reemplazar con
const ret = win.getWindowButtonPosition();
if (ret === null) {
// Sin posición personalizada.
}

Nuevas características

  • Se añadió net.fetch(). #36733
    • net.fetch soporta solicitudes a las URL file: y a protocolos personalizados con protocol.register*Protocol. #36606
  • Se añadieron las APIs BrowserWindow.set/getWindowButtonPosition. #37094
  • Se añadió protocol.handle, que reemplaza y depreca a protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol. #36674
  • Se añadió el evento will-frame-navigate en webContents y el tag <webview>, que dispara cada fotograma dentro de la jerarquía de fotogramas que se intenta navegar. #34418
  • Added initiator information to navigator events. Esta información permite distinguir window.open de un frame padre causando una navegación, en lugar de una navegación iniciada por hijos. #37085
  • Se añadió net.resolveHost que resuelve los hosts usando el objeto defaultSession. #38152
  • Se añadió el nuevo evento 'did-resign-active' en app. #38018
  • Added several standard page size options to webContents.print(). #37159
  • Added the enableLocalEcho flag to the session handler ses.setDisplayMediaRequestHandler() callback for allowing remote audio input to be echoed in the local output stream when audio is a WebFrameMain. #37315
  • Se añadió información de gestión térmica a powerMonitor. #38028
  • Permite pasar una ruta absoluta a la API session.fromPath(). #37604
  • Expone el evento audio-state-changed en webContents. #37366

Soporte Continuado 22.x.y

As noted in Farewell, Windows 7/8/8.1, Electron 22's (Chromium 108) planned end of life date will be extended from May 30, 2023 to October 10, 2023. The Electron team will continue to backport any security fixes that are part of this program to Electron 22 until October 10, 2023. La fecha de soporte de octubre sigue las fechas de soporte extendidas tanto de Chromium como de Microsoft. On October 11, the Electron team will drop support back to the latest three stable major versions, which will no longer support Windows 7/8/8.1.

E25 (May'23)E26 (Aug'23)E27 (Oct'23)
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y22.x.y--

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.

You can find Electron's public timeline here.

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

Electron 24.0.0

· 4 lectura mínima

¡Electron 24.0.0 ha sido liberado! Incluye actualizaciones a Chromium 112.0.5615.49, V8 11.2, y Node.js 18.14.0. ¡Lea a continuación para más detalles!


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

Notable Changes

Stack Changes

Restaurar archivos borrados

API modificada: nativeImage.createThumbnailFromPath(path, size)

The maxSize parameter has been changed to size to reflect that the size passed in will be the size the thumbnail created. Previously, Windows would not scale the image up if it were smaller than maxSize, and macOS would always set the size to maxSize. Behavior is now the same across platforms.

// a 128x128 image.
const imagePath = path.join('path', 'to', 'capybara.png');

// Scaling up a smaller image.
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
console.log(result.getSize()); // { width: 256, height: 256 }
});

// Scaling down a larger image.
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
console.log(result.getSize()); // { width: 64, height: 64 }
});

Nuevas características

  • Added the ability to filter HttpOnly cookies with cookies.get(). #37365
  • Added logUsage to shell.openExternal() options, which allows passing the SEE_MASK_FLAG_LOG_USAGE flag to ShellExecuteEx on Windows. The SEE_MASK_FLAG_LOG_USAGE flag indicates a user initiated launch that enables tracking of frequently used programs and other behaviors. #37291
  • Added types to the webRequest filter, adding the ability to filter the requests you listen to.#37427
  • Added a new devtools-open-url event to webContents to allow developers to open new windows with them. #36774
  • Added several standard page size options to webContents.print(). #37265
  • Added the enableLocalEcho flag to the session handler ses.setDisplayMediaRequestHandler() callback for allowing remote audio input to be echoed in the local output stream when audio is a WebFrameMain. #37528
  • Allow an application-specific username to be passed to inAppPurchase.purchaseProduct(). #35902
  • Exposed window.invalidateShadow() to clear residual visual artifacts on macOS. #32452
  • Whole-program optimization is now enabled by default in electron node headers config file, allowing the compiler to perform opimizations with information from all modules in a program as opposed to a per-module (compiland) basis. #36937
  • SystemPreferences::CanPromptTouchID (macOS) now supports Apple Watch. #36935

Fin de soporte para 21.x.y

Electron 21.x.y ha alcanzado el fin de soporte según la política de soporte del proyecto. Developers and applications are encouraged to upgrade to a newer version of Electron.

As noted in Farewell, Windows 7/8/8.1, Electron 22's (Chromium 108) planned end of life date will be extended from May 30, 2023 to October 10, 2023. The Electron team will continue to backport any security fixes that are part of this program to Electron 22 until October 10, 2023.

E24 (Apr'23)E25 (May'23)E26 (Aug'23)
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y23.x.y24.x.y
--22.x.y22.x.y

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.

You can find Electron's public timeline here.

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