# io.Connect Browser 4.4 Release Highlights

**URL:** <https://community.interop.io/t/io-connect-browser-4-4-release-highlights/574>\
**Category:** io.Connect Browser\
**Tags:** release\
**Created:** [May 4, 2026, 11:47am UTC](https://community.interop.io/t/io-connect-browser-4-4-release-highlights/574 "2026-05-04T11:47:25Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![interop.io-Team](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/interop.io-team/32/169_2.png) [@interop.io-Team](https://community.interop.io/u/interop.io-Team)\
**Post date:** [May 4, 2026, 11:47am UTC](https://community.interop.io/t/io-connect-browser-4-4-release-highlights/574/1 "2026-05-04T11:47:25Z")

</div>

**io.Connect Browser 4.4** is out, bringing new options for saving window contexts in Layouts, persisting user-selected themes via the App Preferences API, and listening for Workspace tab reorder events.

Full changelog: [io.Connect Browser 4.4](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html)

## [Saving Window Contexts in Global Layouts](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopiobrowser-saving_window_contexts_in_layouts)

When saving a **Global Layout** programmatically, you can now instruct the platform to persist the context objects of individual io.Connect Windows. These are the contexts set via the `setContext()` method of a `WebWindow` instance. This is controlled through the new `saveWindowContexts` property of the `NewLayoutOptions` object.

If a Browser Client has subscribed for Layout save requests via `onSaveRequested()` and the event handler returns a context object, that context takes precedence over the context set via `setContext()`. If `ignoreContexts` is set to `true`, `saveWindowContexts` is ignored.

Related docs:

- [Changelog: Saving Window Contexts in Layouts](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopiobrowser-saving_window_contexts_in_layouts)
- [Saving a Global Layout](https://docs.interop.io/browser/capabilities/windows/layouts/layouts-api/index.html#layout_operations-save)
- [WebWindow](https://docs.interop.io/browser/reference/javascript/windows/webwindow/index.html)
- [NewLayoutOptions](https://docs.interop.io/browser/reference/javascript/layouts/newlayoutoptions/index.html)

## [Saving Window Contexts in Workspace Layouts](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopioworkspacesapi-saving_window_contexts_in_workspace_layouts)

The same context-saving capability is now available when saving **Workspace Layouts**.

When saving a Workspace Layout, use the `saveWindowContexts` property of the `WorkspaceLayoutSaveConfig` object passed to `io.workspaces.layouts.save().`You can also use `saveLayout()` on a `Workspace` instance when saving an open Workspace as a Workspace Layout. If a Browser Client has subscribed for Layout save requests via `onSaveRequested()` and the event handler returns a context object, that context takes precedence over the context set via `setContext()`.

Related docs:

- [Changelog: Saving Window Contexts in Workspace Layouts](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopioworkspacesapi-saving_window_contexts_in_workspace_layouts)
- [WorkspaceLayoutSaveConfig](https://docs.interop.io/browser/reference/javascript/workspaces/workspacelayoutsaveconfig/index.html)
- [WorkspaceLayoutsAPI.save()](https://docs.interop.io/browser/reference/javascript/workspaces/workspacelayoutsapi/index.html#WorkspaceLayoutsAPI-save%60)
- [Workspace.saveLayout()](https://docs.interop.io/browser/reference/javascript/workspaces/workspace/index.html#Workspace-saveLayout)

## [Theme Persistence via the App Preferences API](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopiobrowserplatform-theme_persistence_via_the_app_preferences_api)

When an external **App Preferences** store is configured, the user-selected theme is now automatically persisted and restored through the App Preferences API.

This enables theme selection to be synchronized across different devices and browser sessions for the same user. When using a local App Preferences store, themes continue to be stored in browser local storage as before.

Related docs:

- [Changelog: Theme Persistence via the App Preferences API](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopiobrowserplatform-theme_persistence_via_the_app_preferences_api)
- [App Preferences](https://docs.interop.io/browser/capabilities/app-preferences/index.html)

## [Tab Reorder Events](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopioworkspacesapi-tab_reorder_events)

You can now get notified when **Workspace tabs** or **window tabs** are reordered within their respective containers: Workspace Frames and window tab groups. These events are triggered only when dragging a tab to a different position without removing it from its current container.

At API level, you can subscribe with:

- `onWorkspaceTabReordered()` for Workspace tab reorder events;
- `onWindowTabReordered()` for window tab reorder events.

Tab reorder events are also available on:

- `Workspace` instances via `ontabReordered()` and `onWindowTabReordered()`;
- `WorkspaceWindow` instances via `ontabReordered()`.

Related docs:

- [Changelog: Tab Reorder Events](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#new_features-interopioworkspacesapi-tab_reorder_events)
- [onWorkspaceTabReordered()](https://docs.interop.io/browser/reference/javascript/workspaces/api/index.html#API-onWorkspaceTabReordered)
- [onWindowTabReordered()](https://docs.interop.io/browser/reference/javascript/workspaces/api/index.html#API-onWindowTabReordered)
- [Workspace.ontabReordered()](https://docs.interop.io/browser/reference/javascript/workspaces/workspace/index.html#Workspace-ontabReordered)
- [Workspace.onWindowTabReordered()](https://docs.interop.io/browser/reference/javascript/workspaces/workspace/index.html#Workspace-onWindowTabReordered)
- [WorkspaceWindow.ontabReordered()](https://docs.interop.io/browser/reference/javascript/workspaces/workspacewindow/index.html#WorkspaceWindow-ontabReordered)

## [Improvements & Bug Fixes](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html#improvements__bug_fixes)

This release also includes a few practical fixes:

- improved validation logic when app validation for the App Preferences store is enabled, avoiding issues related to validating the platform app name;
- fixed an issue related to tracking Workspaces with the `workspace_count` metric;
- fixed an issue in the Home App where the Layouts panel displayed duplicate items with the same name.

Full changelog: [io.Connect Browser 4.4](https://docs.interop.io/browser/getting-started/changelog/4-4/index.html)
