Changelog
io.Connect Desktop 9.10.1
Release date: 12.12.2025
| Components | Version |
|---|---|
| Electron | 38.7.2 |
| Chromium | 140.0.7339.249 |
| Node.js | 22.21.1 |
Electron Upgrade
io.Connect Desktop 9.10.1 comes with an upgraded version of Electron. This upgrade was made to address security issues related to the underlying Electron framework.
This Electron upgrade also brings in a notable change related to the transparency for frameless windows - transparent frameless windows now can't have resizing areas and can't be resized manually via dragging the window edges. This change was introduced with Electron 38.3.0 and is present in all Electron versions that have been released since then, which means that all io.Connect Desktop releases that use any of the affected Electron versions will be affected too.
In the context of io.Connect Desktop, this Electron change means that the "hasSizeAreas" property of the "details" top-level key in the app definition won't have any effect for transparent frameless windows:
{
"name": "my-frameless-app",
"type": "window",
"details": {
"url": "https://example.com/my-frameless-app",
"mode": "frameless",
// Making the frameless window transparent.
"transparent": true,
// This won't have any effect and the window won't have resizing areas.
"hasSizeAreas": true
}
}⚠️ Note that the
"hasSizeAreas"property still works for non-transparent frameless windows.
New Features
Persisting Window Zoom
io.Connect Desktop 9.10 introduced the ability to set independent zoom factors for same-origin web apps. However, in this zoom mode, the current zoom factors of web app instances were neither persisted on window refresh or on platform restart, nor saved in Global Layouts or Workspaces.
Now, the current zoom factors of web app instances are automatically persisted by the platform when the default zoom behavior is set globally to
"window"via thesystem.jsonsystem configuration file of io.Connect Desktop or per app via the app definition:{ "windows": { "zoom": { "enabled": true, "mode": "window" } } }The current zoom factors of all web app instances are persisted and restored automatically when:
- the window is refreshed;
- the platform is restarted;
- the window is saved in a Global Layout or in a Workspace;
Each new instance of the same web app will have the last persisted zoom factor for that app. For example, if there are two running instances of the same app and the user sets the zoom factor of the first one to 125, then sets the zoom factor of the second one to 150, the third started instance of that app will have a zoom factor of 150.
Trusted App Stores
When fetching FDC3 app definitions from public FDC3 App Directory stores, io.Connect Desktop automatically converts the FDC3 app definitions to io.Connect app definitions and overrides all security settings specified in the FDC3 app definitions with the security settings specified in the
system.jsonsystem configuration file of io.Connect Desktop. This is a default platform security mechanism which ensures that unknown apps from public FDC3 App Directory stores won't be able to override the security settings of the underlying Electron app.While FDC3 app definitions are usually stored in such public FDC3 App Directory stores, you may also decide to store them in one of the supported io.Connect app stores. If this is the case, you can prevent overriding the security settings specified in your FDC3 app definitions by configuring the respective io.Connect store as trusted.
The following example demonstrates configuring a local app store as trusted:
{ "appStores": [ { "type": "path", "details": { "path": "./config/apps", // The app store will be considered trusted by the platform and any security settings // you may have specified in FDC3 app definitions won't be automatically overridden. "trusted": true } } ] }
Restoring Workspaces by Reference
To specify whether the Workspaces participating in a Global Layout will be restored in their original (unmodified) state when the Global Layout is restored, or in the exact state in which they were when the Global Layout was saved, use the
restoreWorkspacesByReferenceproperty of theRestoreOptionsobject:const restoreOptions = { name: "My Layout", restoreWorkspacesByReference: true }; const result = await io.layouts.restore(restoreOptions);The value of this property defaults to the value of the
"restoreWorkspacesByReference"property in the Workspaces App definition and will override it.
Improvements & Bug Fixes
Upgraded to Electron 38.7.2 (Chromium 140).
Improved io.Connect Gateway native cache management to avoid issues with group policy restrictions preventing file access.
Improved internal validation of window objects before performing operations on them in order to avoid errors due to potential race conditions.
Increased the default font size in the io.Connect modal windows.
Increased the internal timeouts for subscribing for io.Connect events from 30 to 90 seconds.
Improved handling of custom log appenders for the io.Connect Gateway.