1189 Commits
Author SHA1 Message Date
Zachary VorhiesandClaude Opus 5 cab3eace98 fix(webkitgtk): only inject IPC bridge with handler (#1839)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 19:13:17 +08:00
Tony 9a5f3aad86 enhance: log eval errors (#1868)
* Use `ExecuteScriptWithResult` to log eval errors

* Also log for older webviews

* linux

* Fix windows

* apple

* deref

* too much copy paste

* Note limitation on Android

* Add change log
2026-09-29 17:10:46 +08:00
Peter Steinberger 66cdfa1d76 fix(macos): avoid activating hidden or unfocused webviews (#1866) 2026-09-27 17:02:07 +03:00
Tony 547382dba1 chore: migrate once_cell to std (#1861) 2026-09-23 16:46:05 +03:00
Tony d8fe88dc7b chore: migrate to edition 2024 (#1847)
* Windows `cargo fix --edition`

* Android

* linux

* Bump to 2024

* `cargo fmt`

* fix apple

* Add change file
2026-09-17 10:53:14 +08:00
github-actions[bot] 792d0359ba apply version updates (#1817)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
wry-v0.57 wry-v0.57.0 wry-v0
2026-09-08 11:50:47 +08:00
renovate[bot]andTony 105ca17188 chore(deps): update rust crate dirs to v7 (#1834)
* chore(deps): update rust crate dirs to v7

* Add change file

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-09-07 15:10:23 +08:00
Tony c2a50d0f17 fix(ci): give audit permissions (#1835) 2026-09-06 18:12:23 +08:00
Tony c5f3a48f50 ci: add explicit workflow permissions (#1830) 2026-09-03 17:17:33 +08:00
TonyandFabian-Lars bb69d628a9 chore(deps)!: update windows to 0.62 and bump MSRV (#1809)
* chore(deps)!: update windows to 0.62 and bump MSRV

* run ci tests with rust 1.85

* clean up

* tao 0.37

* Update .changes/windows-0.62.md

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>

---------

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
2026-08-31 17:13:10 +08:00
IntellyCode f701e13af8 fix(ios): follow the system background when no color is set (#1824) 2026-08-27 09:21:14 +02:00
Tony d2937514ee perf: only register window.ipc if IPC handler is set (#1816)
* windows

* mac

* linux

* Add change file

* w
2026-08-18 12:03:32 +08:00
Twilight 4d81bbb62d chore: fix typo in custom_protocol_workaround (#1815) 2026-08-17 15:52:03 +08:00
github-actions[bot] 14be448427 apply version updates (#1796)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
wry-v0.56 wry-v0.56.1
2026-08-13 19:04:53 +08:00
Tony a5612a8475 refactor(android): simplify with_asset_loader (#1812)
* refactor(android): simplify `with_asset_loader`

* document `assetLoaderDomain` binding change
2026-08-12 15:19:20 +08:00
Alberto GimenoandCopilot App 62080fabeb perf(android): cache asset loader state (#1811)
Cache the Android asset-loader setting in RustWebViewClient so intercepted resource requests do not cross JNI into Rust state each time. Also initialize the WebViewAssetLoader only when it is enabled.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-11 21:34:32 +08:00
renovate[bot] d13416234a chore(deps): update rust crate glow to 0.18.0 (#1694)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-10 17:01:09 +08:00
3fbf592fea fix(windows): RemoveWindowSubclass first before dropping ICoreWebView2Controller (#1795)
* fix(windows): guard cleared parent subclass refdata

Prevent teardown reentrancy from dereferencing cleared WebView2 controller refdata. Add a native Win32 regression test.

* test(windows): skip native subclass test under Miri

Miri cannot call Win32 foreign functions such as CreateWindowExW. Keep the test active under normal Windows cargo test runs.

* RemoveWindowSubclass instead

* remove test

* clean up

* clippy

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-08-10 10:45:31 +08:00
5ce72b0a9b fix: don't panic on invalid IPC request URI (#1772)
The webview2, webkitgtk and android IPC handlers built an http::Request from the webview's current document URL and unwrapped it, aborting the process whenever that URL was not a valid http::Uri (for example a file:// URL, or one containing a raw space or non-ASCII characters). Invalid IPC requests are now logged under the tracing feature and dropped instead of panicking, mirroring the existing WKWebView delegate behavior.

Co-authored-by: degant <6065982+degant@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-09 10:39:55 +08:00
Velocity Engineering Systems be729e302c fix(android): override getDefaultVideoPoster to suppress placeholder (#1804) 2026-08-06 12:54:51 +02:00
Tony b95a7f81cb fix(windows): ignore MoveFocus error on creation (#1799) 2026-08-03 16:32:03 +08:00
Tony 193992a05b docs(android): why WEBVIEW_ATTRIBUTES exists (#1801)
* docs(android): why `WEBVIEW_ATTRIBUTES` exists

* add link to the config change docs
2026-08-03 16:15:29 +08:00
Tony 6c3d3c783b fix(bench): rlib location on new nightly (#1800) 2026-08-03 15:37:07 +08:00
Fabian-Lars aff28ef5a4 fix(macos): dont register unknown delegate methods in debug mode (#1781) 2026-07-30 12:53:57 +02:00
github-actions[bot] 5c9b89920f apply version updates (#1722)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
wry-v0.56.0
2026-07-30 11:12:58 +08:00
Lucas Fernandes NogueiraandTony affbb3cbcc chore: update tao to 0.36 (#1720)
* chore: updates for tao 0.36

ref https://github.com/tauri-apps/tao/pull/1209

* refactor: changes for tao 0.36 lifecycle renames (#1790)

* refactor: changes for tao 0.36 lifecycle renames

* Update

* Make it easier to see that `onCreate` runs first

* more docs

* Try to use an atomic bool instead of ProcessLifecycleOwner

* Revert "Try to use an atomic bool instead of ProcessLifecycleOwner"

This reverts commit 11dab6bcc0a472f2bd6555d7f545bdd08fda4232.

* update tao

* update change file

* clean up

* Rename binding `wryCreate` to `onFirstActivityCreateWry`

* more docs

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-07-29 21:56:52 +08:00
Tony 3045fdf7e1 docs(linux): new_gtk changed to build_gtk (#1789)
* docs(linux): `new_gtk` changed to `build_gtk`

* Also readme
2026-07-27 21:34:37 +08:00
Tony d29cd57676 refactor!: remove unused protocol feature (#1787)
* refactor!: remove unused `protocol` feature

* Add change file

* Remove docs
2026-07-27 18:33:51 +08:00
Tony 6ea7df3d04 docs: all features (#1786)
* docs: all features

* Merge branch 'dev' of https://github.com/tauri-apps/wry into document-features

* Merge branch 'dev' into document-features
2026-07-27 17:39:33 +08:00
Fabian-Lars bd1decc497 refactor(macos/ios): remove fullscreen and transparent feature flags (#1780) 2026-07-27 10:59:55 +02:00
Fabian-Lars 4ee8c38651 feat(macos/ios): enable fullscreen without private api (#1779) 2026-07-22 13:22:45 +02:00
Tony 6b61fcd58b refactor(android): process all MainPipe messages on wake up (#1773) 2026-07-21 15:12:22 +08:00
Chris Brown a93d04c908 Bump memmap2 to 0.9.11 (RUSTSEC-2026-0186) (#1771)
memmap2 0.9.5 is pulled in via winit (a dev-dependency of wry) ->
smithay-client-toolkit / sctk-adwaita (Linux Wayland decoration
theming). Affected versions under-validated the offset/len parameters
on Mmap::advise_range() and friends, allowing an out-of-bounds pointer
to reach the madvise/msync syscalls (undefined behavior, though the
invalid pointer is never dereferenced).

A plain `cargo update -p memmap2` resolves to the patched 0.9.11 with
no other bumps needed. Cargo.lock only, no source changes.

Verified `cargo check --workspace` passes.

Fixes #1770
2026-07-17 21:00:34 +08:00
renovate[bot] f16325fdb5 chore(deps): update rust crate pollster to v1 (#1766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-14 23:23:27 +08:00
Tony 09f088e93b fix(ci): ignore audits (#1768)
* fix(ci): ignore audits

* Bump action versions
2026-07-14 23:04:30 +08:00
FabianLars fe9e7fb73b docs: drag-drop works on macOS 2026-07-09 12:03:46 +02:00
TonyandFabianLars 0c8004235a docs: with_drag_drop_handler disables HTML drag APIs (#1764)
* docs: `with_drag_drop_handler` disables HTML drag APIs

* Doesn't work on macOS

Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2026-07-09 17:37:09 +08:00
Buncys 871497a726 feat: add back/forward navigation APIs (fix #1735) (#1748)
* feat: add back/forward navigation APIs

* fix: Android channel send error handling

* Add change file
2026-07-03 19:01:48 +08:00
Timur AmirovandTony fe52ff9374 fix(android): Speed up async dev assets loading (#1715)
* fix: release REQUEST_HANDLER sooner on Android

Attempting to speed up assets loading on Android with this

* Update .changes info

* cargo fmt

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2026-07-02 09:41:50 -03:00
Tony 2f768ae859 docs: clean up some typos and inconsistencies (#1750) 2026-06-12 20:45:10 +08:00
F0RLEandTony 9f9a237d78 feat: add permission handler API across webview backends (#1654)
* feat: add permission handler API - implement cross-platform permission handler API, fix combined camera and microphone logic on macOS, update documentation to clarify NFC and Bluetooth support, and simplify permission_handler example using permission.site

* fix(wkwebview): remove leftover PermissionObserver from UIDelegate signature

* Fix `permission_handler` example on linux

* Use type instead of string check

* Add more platform specific notes

* Move permissions to a file

* Add notice about prompt not supported on linux

* fix(webkitgtk): handle combined audio+video permissions and use is_for_display_device on v2_42

* fix: reorder module declarations for rustfmt

* fix(android): scope permission handler per webview

подтверждено

* fix(android): honor permission handler for geolocation

подтверждено

* fix(android): avoid overgranting mixed permission requests

* fix(android): scope permission callbacks by webview

* fix(android): pass existing webview id string

* Migrate `PACKAGE.get().unwrap()`

* Fix `web_chrome_client`

* small refactor on permissionLauncher

* Add `PermissionResponse::Default` docs for all platforms

* fix(android): simplify permission JNI response

* document allow is not supported on android

* refactor: simplify permission responses

* fix: update permission handler example

* fix(android): pass unknown permissions to handler

* fix(android): allow explicit unknown permissions

* onPermissionRequestNative will not return other values

* Send individual permissions to rust side
and support partial allow

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2026-06-11 23:09:00 +08:00
sftse 6ef93b3e99 Rescope unsafe fn blocks (#1737)
* update objc2-foundation to get safe functions

* refactor: rescope unsafe blocks

* fmt

* update other objc2 deps

* Add change file
2026-06-10 11:19:25 +08:00
Tony e49b693925 ci: benchmark on all platforms (#1746)
* Try to run benchmark on all platforms

* Disable other ci for now

* fix get_target

* disable print worker info on mac and windows

* Fix windows .exe extension

* sleep between runs

* `--shell` not `shell`

* output platform specific benchmark results

* Actually run `migrate_old_benchmark_data`

* Revert "Disable other ci for now"

This reverts commit e47e08726fb666be22aa87835e8e31953d3b0155.

* Rename the files directly instead

* Only run benchmark on PR if files changed
2026-06-08 18:12:03 +08:00
Tony f3e53ca6a0 fix(ci): switch to tauri-bot for pushing bench results (#1743) 2026-06-04 21:36:12 +08:00
Tony 0b2a936f78 fix(ci): bench on new rust nightly (#1728)
* fix(ci): bench on new rust nightly

* Bump tao to 0.35

* Well... It's because the webview was dropped...
2026-05-30 19:15:34 +08:00
sftseandTony b054d0ec10 Revert moved package to MainPipe in #1736 (#1741)
* partial revert of 145b36f #1736

* Clean up

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2026-05-30 00:41:53 +08:00
Tony ddbc853019 refactor(android): early returns and format (#1717)
* refactor(android): early returns and format

* Remove extra `.ok`
2026-05-27 16:53:23 +08:00
renovate[bot]andTony 86ac6e8891 chore(deps): update rust crate dom_query to 0.28.0 (#1732)
* chore(deps): update rust crate dom_query to 0.28.0

* Add change file

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-05-27 11:42:59 +08:00
sftse 145b36fb5e refactor!: remove unsafe impl Send and Sync on NewWindowOpener (#1736)
* refactor: make more private

* refactor: remove unwraps

* refactor: remove no longer necessary Send/Sync overrides

* refactor: less thinking about ffi safety of bool

* add change file
2026-05-27 11:05:12 +08:00
Jim Bourke 10fdf73080 feat(windows): add with_profile_name for WebView2 multi-profile support (#1738)
Adds `WebViewBuilderExtWindows::with_profile_name(name)` so embedded
webviews can opt into a named WebView2 profile. Webviews with different
profile names within the same environment have isolated cookies, storage,
IndexedDB, and cache while sharing the runtime — matching WebView2's
documented multi-profile pattern. When unset, behavior is unchanged
(unnamed default profile).

Implementation:
- New `profile_name: Option<String>` field on the Windows
  `PlatformSpecificWebViewAttributes`.
- New trait method on `WebViewBuilderExtWindows`.
- In `create_controller`, when a profile name is configured, call
  `ICoreWebView2ControllerOptions::SetProfileName` before
  `CreateCoreWebView2ControllerWithOptions`.

Profile names must follow WebView2's naming rules (alphanumeric, `.`,
`_`, `-`, ` `, up to 64 chars, not starting/ending with `.` or ` `).

See https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/multi-profile-support
2026-05-27 10:53:22 +08:00