tauri-runtime-wry-v2.12.0
tauri-apps/tauritauri-runtime-wry-v2.12.0Sep 26, 2026by github-actions[bot]
Upgrading?
AI Summary
This release exposes the `wry` permission handler API, adds fullscreen-on-monitor functionality, and fixes various platform-specific bugs. It also moves the crate to the Rust edition 2024.
Key Highlights
- Exposed `wry` permission handler API for DisplayCapture, Midi, Sensors, and more.
- Added `set_fullscreen_on_monitor` functionality.
- Added `activate_ignoring_other_apps` on macOS.
- Moved to Rust edition 2024.
Breaking Changes
- `RuntimeHandle::primary_monitor`, `monitor_from_point`, and `available_monitors` now return `Result`s.
- `CreateWebviewOptions::focused_webview` now takes `Arc<Mutex<FocusState>>` instead of `Arc<Mutex<Option<String>>>`.
- `WindowsStore` and `DispatcherMainThreadContext` are no longer `Send` and `Sync`.
- Removed unused DPI wrapper types like `PhysicalPositionWrapper`.
New Features
- Exposed permission handler API.
- Added `set_fullscreen_on_monitor`.
- Added `no_redirection_bitmap` method.
Full Release Notes
<details>
<summary><em><h4>Cargo Audit</h4></em></summary>
```
Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
Loaded 1271 security advisories (from /home/runner/.cargo/advisory-db)
Updating crates.io index
Scanning Cargo.lock for vulnerabilities (1091 crate dependencies)
Crate: fxhash
Version: 0.2.1
Warning: unmaintained
Title: fxhash - no longer maintained
Date: 2025-09-05
ID: RUSTSEC-2025-0057
URL: https://rustsec.org/advisories/RUSTSEC-2025-0057
Crate: paste
Version: 1.0.15
Warning: unmaintained
Title: paste - no longer maintained
Date: 2024-10-07
ID: RUSTSEC-2024-0436
URL: https://rustsec.org/advisories/RUSTSEC-2024-0436
Crate: rustls-pemfile
Version: 2.2.0
Warning: unmaintained
Title: rustls-pemfile is unmaintained
Date: 2025-11-28
ID: RUSTSEC-2025-0134
URL: https://rustsec.org/advisories/RUSTSEC-2025-0134
Crate: rustybuzz
Version: 0.20.1
Warning: unmaintained
Title: `rustybuzz` is unmaintained
Date: 2026-07-11
ID: RUSTSEC-2026-0206
URL: https://rustsec.org/advisories/RUSTSEC-2026-0206
Crate: ttf-parser
Version: 0.25.1
Warning: unmaintained
Title: `ttf-parser` is unmaintained
Date: 2026-06-28
ID: RUSTSEC-2026-0192
URL: https://rustsec.org/advisories/RUSTSEC-2026-0192
warning: 5 allowed warnings found
```
</details>
## [2.12.0]
### New Features
- [`3f62c70d6`](https://www.github.com/tauri-apps/tauri/commit/3f62c70d6b9a9eeeb7c302b010c858405a1bb761) ([#13848](https://www.github.com/tauri-apps/tauri/pull/13848)) Add `WebviewBuilder::limit_navigations_to_app_bound_domains`, `WebviewWindowBuilder::limit_navigations_to_app_bound_domains`, and limitNavigationsToAppBoundDomains to tauri.config.json.
- [`21ec647cf`](https://www.github.com/tauri-apps/tauri/commit/21ec647cf945284716696ce2388b5ae381ae5e14) ([#15223](https://www.github.com/tauri-apps/tauri/pull/15223)) Add `Builder::activate_ignoring_other_apps` on macOS to control whether the app activates at launch when another app is already active.
- [`29265557c`](https://www.github.com/tauri-apps/tauri/commit/29265557c7a42ef6a1f982e0ef738208df1f6dd3) ([#15410](https://www.github.com/tauri-apps/tauri/pull/15410)) Added `WindowBuilder/WebviewWindowBuilder::no_redirection_bitmap` method to disable the window redirection bitmap on Windows.
- [`382dd6ccc`](https://www.github.com/tauri-apps/tauri/commit/382dd6ccc022277d5620fde90a39b4c5e896310e) ([#14865](https://www.github.com/tauri-apps/tauri/pull/14865)) Expose the `wry` permission handler API through Tauri.
This includes support for permission types such as `DisplayCapture`, `Midi`, `Sensors`, `MediaKeySystemAccess`, `LocalFonts`, `WindowManagement`, `PointerLock`, `AutomaticDownloads`, `FileSystemAccess`, and `Autoplay`.
Added `PermissionResponse::{Allow, Deny, Default}` for runtime permission decisions.
- [`6edc2f4d4`](https://www.github.com/tauri-apps/tauri/commit/6edc2f4d49d2477649bf170aa2867276c25573da) ([#14926](https://www.github.com/tauri-apps/tauri/pull/14926)) Added `Window::set_fullscreen_on_monitor`, `WebviewWindow::set_fullscreen_on_monitor` and the `setFullscreenOnMonitor` JavaScript API to make a window fullscreen on the monitor containing a given physical position, along with the `core:window:allow-set-fullscreen-on-monitor` permission.
### Bug Fixes
- [`0aeadb6b2`](https://www.github.com/tauri-apps/tauri/commit/0aeadb6b2674ecd43f15b5dd6fcace3232f74b8a) ([#15821](https://www.github.com/tauri-apps/tauri/pull/15821)) Transfer the exit code from the `window.app_handle().exit(1)` call to the `run_return()` result instead of always returning 0.
- [`d727d6316`](https://www.github.com/tauri-apps/tauri/commit/d727d631659f07a597cc86cf808f505858dee878) ([#15630](https://www.github.com/tauri-apps/tauri/pull/15630)) Query monitor information (`primary_monitor`, `monitor_from_point`, `available_monitors`) on the main thread from the app-level runtime handle instead of touching the event loop's window target directly.
- [`a370f6533`](https://www.github.com/tauri-apps/tauri/commit/a370f653330506c2a5f59b643645a15b4cc30c18) ([#15224](https://www.github.com/tauri-apps/tauri/pull/15224)) Avoid leaking Objective-C objects in `WebviewMessage::WithWebview` on Apple targets by replacing `Retained::into_raw` with scoped retained bindings and `Retained::as_ptr` pointer handoff.
- [`59e077457`](https://www.github.com/tauri-apps/tauri/commit/59e077457ac87ffd43db4c557ca2987d2fa6d37e) ([#16075](https://www.github.com/tauri-apps/tauri/pull/16075)) Fix a crash on iOS when the monitor APIs (`Window::current_monitor`, `primary_monitor`, `available_monitors`, `monitor_from_point` and the `AppHandle` equivalents) are called off the main thread, e.g. from a command: the monitor is now read on the main thread, where iOS requires it.
- [`0a28d9b76`](https://www.github.com/tauri-apps/tauri/commit/0a28d9b7644d2ecf0fa6613f35a8a7aa8b2ea3eb) ([#15760](https://www.github.com/tauri-apps/tauri/pull/15760)) On macOS, `App::set_theme` now also updates the theme each window reports, so `Window::theme` (and `getCurrentWindow().theme()` in JavaScript) reflects the app-level theme instead of keeping the previous value until the system appearance changes.
- [`e2c54be10`](https://www.github.com/tauri-apps/tauri/commit/e2c54be1055851686b1b57b69cfa7d6b5a0f552f) `WindowsStore` and `ActiveTraceSpanStore` now implement `Debug` manually without borrowing the inner `RefCell`, so formatting them re-entrantly while the store is already borrowed no longer panics with "already borrowed".
- [`08acfb3fa`](https://www.github.com/tauri-apps/tauri/commit/08acfb3fa04945a6a4f822d66c7556111d9385aa) ([#15625](https://www.github.com/tauri-apps/tauri/pull/15625)) Fix webview don't get focus when Alt-Tab back to the window if `unstable` feature is enabled on Windows
- [`1c573a075`](https://www.github.com/tauri-apps/tauri/commit/1c573a075a4e6d0754687d5ecfe7ded4c3d9e74d) ([#15508](https://www.github.com/tauri-apps/tauri/pull/15508)) `create_window` and `create_webview` should wait for the window creation to complete before returning even if it's off main thread, it should also return the error if it failed
- [`5a882eccf`](https://www.github.com/tauri-apps/tauri/commit/5a882eccfda53a189ec076c79c4ad186f50db5ff) ([#15701](https://www.github.com/tauri-apps/tauri/pull/15701)) On Linux, fix resize cursor for undecorated Window not being set correctly when mouse is over a resize edge.
- [`08acfb3fa`](https://www.github.com/tauri-apps/tauri/commit/08acfb3fa04945a6a4f822d66c7556111d9385aa) ([#15625](https://www.github.com/tauri-apps/tauri/pull/15625)) Fix `WindowEvent::Focused` events emitted when dragging the window on Windows
- [`f4feb2ba7`](https://www.github.com/tauri-apps/tauri/commit/f4feb2ba71ae018f0fc200453ae9cf12a6b0c05f) ([#15950](https://www.github.com/tauri-apps/tauri/pull/15950)) On Windows, fixed `Window::is_focused` always returns `false` in multi-webview mode
### What's Changed
- [`2e6e33c85`](https://www.github.com/tauri-apps/tauri/commit/2e6e33c8501c66c9a49aad861048d39345cfb26f) ([#16029](https://www.github.com/tauri-apps/tauri/pull/16029)) Moved to edition 2024
- [`ce3f13b91`](https://www.github.com/tauri-apps/tauri/commit/ce3f13b91a75cb723f229f56a3e82eb5f2d3f644) ([#15887](https://www.github.com/tauri-apps/tauri/pull/15887)) Lock unstable tauri crates to minor versions.
- [`7cc68e74f`](https://www.github.com/tauri-apps/tauri/commit/7cc68e74ff6981f5c50a52a67d56c5eb2d227188) ([#15307](https://www.github.com/tauri-apps/tauri/pull/15307)) `WindowEvent::Resumed` and `WindowEvent::Suspended` are now only fired for the matching activity window instead of every window.
- [`1cffb01da`](https://www.github.com/tauri-apps/tauri/commit/1cffb01da55f5fcd5a0f74ef3281b5a715513e4d) ([#13221](https://www.github.com/tauri-apps/tauri/pull/13221)) Set MSRV to 1.90.
- [`7fd603542`](https://www.github.com/tauri-apps/tauri/commit/7fd603542134fed792514a392af828555859c5d6) ([#15413](https://www.github.com/tauri-apps/tauri/pull/15413)) `EventLoopIterationContext` and `UserMessageContext` now takes references to avoid clones
### Dependencies
- Upgraded to `tauri-utils@2.10.0`
- Upgraded to `tauri-runtime@2.12.0`
- [`872428fe9`](https://www.github.com/tauri-apps/tauri/commit/872428fe910efe25eeaa959b56adcd9d9a9a2157) ([#15790](https://www.github.com/tauri-apps/tauri/pull/15790)) On macOS, updated `objc2-*` dependencies to 0.3.2
- [`51433d740`](https://www.github.com/tauri-apps/tauri/commit/51433d740fbac79247aad82764e53f13abcbb01a) ([#15996](https://www.github.com/tauri-apps/tauri/pull/15996)) Updated `windows` to `0.62` and `webview2-com` to `0.39`, this drops Windows 7 support, see https://github.com/microsoft/windows-rs/issues/3808.
### Breaking Changes
- [`24cb6de2d`](https://www.github.com/tauri-apps/tauri/commit/24cb6de2d4fe4d350afce2fd852dcdcc6a1320f0) ([#15544](https://www.github.com/tauri-apps/tauri/pull/15544)) Removed unused dpi wrapper types like `PhysicalPositionWrapper`
- [`579c7e2d2`](https://www.github.com/tauri-apps/tauri/commit/579c7e2d2f97182fcd933ca560ee810261322d60) ([#14805](https://www.github.com/tauri-apps/tauri/pull/14805)) `WindowsStore` and `DispatcherMainThreadContext` are no longer `Send` and `Sync`, and unsafe impl has been moved to `Context` directly.
- [`d727d6316`](https://www.github.com/tauri-apps/tauri/commit/d727d631659f07a597cc86cf808f505858dee878) ([#15630](https://www.github.com/tauri-apps/tauri/pull/15630)) Changed `RuntimeHandle::primary_monitor`, `RuntimeHandle::monitor_from_point`, `RuntimeHandle::available_monitors` to return `Result`s
- [`08acfb3fa`](https://www.github.com/tauri-apps/tauri/commit/08acfb3fa04945a6a4f822d66c7556111d9385aa) ([#15625](https://www.github.com/tauri-apps/tauri/pull/15625)) `CreateWebviewOptions::focused_webview` now takes `Arc<Mutex<FocusState>>` instead of `Arc<Mutex<Option<String>>>`
<details>
<summary><em><h4>Cargo Publish</h4></em></summary>
```
Updating crates.io index
Packaging tauri-runtime-wry v2.12.0 (/home/runner/work/tauri/tauri/crates/tauri-runtime-wry)
Updating crates.io index
Packaged 23 files, 313.9KiB (71.0KiB compressed)
Verifying tauri-runtime-wry v2.12.0 (/home/runner/work/tauri/tauri/crates/tauri-runtime-wry)
Downloading crates ...
Downloaded gdkx11 v0.18.2
Downloaded dlopen2 v0.8.0
Downloaded dlopen2_derive v0.4.0
Downloaded lock_api v0.4.12
Downloaded dbus v0.9.10
Downloaded gdkx11-sys v0.18.2
Downloaded gdkwayland-sys v0.18.2
Downloaded crossbeam-channel v0.5.15
Downloaded parking_lot_core v0.9.10
Downloaded parking_lot v0.12.3
Downloaded libdbus-sys v0.2.7
Downloaded x11 v2.21.0
Downloaded tao v0.37.0
Downloaded wry v0.57.0
Downloaded x11-dl v2.21.0
Downloaded tauri-runtime v2.12.0
Compiling x11 v2.21.0
Compiling gdkx11-sys v0.18.2
Compiling url v2.5.8
Compiling lock_api v0.4.12
Compiling libdbus-sys v0.2.7
Compiling x11-dl v2.21.0
Compiling parking_lot_core v0.9.10
Compiling crossbeam-utils v0.8.21
Compiling raw-window-handle v0.6.2
Compiling scopeguard v1.2.0
Compiling urlpattern v0.6.0
Compiling dlopen2_derive v0.4.0
Compiling tauri-runtime v2.12.0
Compiling wry v0.57.0
Compiling tauri-utils v2.10.0
Compiling dlopen2 v0.8.0
Compiling crossbeam-channel v0.5.15
Compiling gdkx11 v0.18.2
Compiling dbus v0.9.10
Compiling parking_lot v0.12.3
Compiling gdkwayland-sys v0.18.2
Compiling tauri-runtime-wry v2.12.0 (/home/runner/work/tauri/tauri/target/package/tauri-runtime-wry-2.12.0)
Compiling tao v0.37.0
Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.67s
Uploading tauri-runtime-wry v2.12.0 (/home/runner/work/tauri/tauri/crates/tauri-runtime-wry)
Uploaded tauri-runtime-wry v2.12.0 to registry `crates-io`
note: waiting for tauri-runtime-wry v2.12.0 to be available at registry `crates-io`
help: you may press ctrl-c to skip waiting; the crate should be available shortly
Published tauri-runtime-wry v2.12.0 at registry `crates-io`
```
</details>
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.