Skip to content

wry

Cross-platform WebView rendering library in Rust.

Oct 23, 2026
  • f9b8bee (#1885 by @LucaCappelletti94) On Android, read __wryActivityId only when the intent or saved state contains it.
  • 1f86475 (#1895 by @Arthurmtro) On Android, run initialization scripts once on URLs that are not intercepted by a custom protocol when the WebView supports DOCUMENT_START_SCRIPT, instead of a second time from onPageStarted.
  • b6bef41 (#1865 by @velocitysystems) On Android, stop the WebView from applying the Range header a second time to a custom protocol 206 response, and serve ranges past 2 GiB.
  • d8fe88d (#1847 by @Legend-Master) Moved to edition 2024
  • 75f2b48 (#1893 by @TimeToBuildBob) On Linux, isolate download failure state per download so a canceled or failed download does not make later successful downloads report failure.
  • 9a5f3aa (#1868 by @Legend-Master) Log eval exceptions when tracing feature's enabled at debug level. (thanks #1849 for bring this up)
  • 66cdfa1 (#1866 by @steipete) On macOS, only activate the application and request initial keyboard focus when the new webview is both visible and focused. Creating hidden or unfocused webviews no longer steals focus.
  • d93a812 (#1844 by @cpruijsen) On macOS, collect dragged file paths via NSPasteboard.readObjectsForClasses:options: instead of the deprecated NSFilenamesPboardType, fixing a panic in drag_drop::collect_paths when the drag source only publishes per-item public.file-url types or file reference URLs that AppKit cannot map to NSFilenamesPboardType. The legacy type is kept as a fallback.
  • 926dd15 (#1876 by @rterence) On macOS, a webview built on its opener's configuration (NewWindowResponse::Create with WebViewBuilderExtMacos::with_webview_configuration) shares the opener's WKUserContentController, so it no longer adds its own initialization scripts and IPC handler to it: the opener's scripts and ipc handler already serve it. This stops every opened window from growing the opener's script set, and stops dropping the new webview from removing the opener's ipc handler.
  • 78a7056 (#1883 by @LucaCappelletti94) On Android, load with_html and load_html content at about:blank so IPC messages reach the handler.
  • cab3eac (#1839 by @zackees) Only inject the Linux WebKitGTK window.ipc bridge when an IPC handler is configured.
Sep 8, 2026
Aug 13, 2026
  • 62080fa (#1811 by @gimenete) On Android, cache the asset-loader setting in RustWebViewClient so intercepted requests avoid repeated JNI calls into Rust state.
  • a5612a8 (#1812 by @Legend-Master) On Android, removed unused withAssetLoader binding and assetLoaderDomain can now return null.
  • 5ce72b0 (#1772 by @degant) Don't panic in the IPC handler when the webview's current document URL is not a valid http::Uri (for example a file:// URL, or one containing a raw space or non-ASCII characters). Such invalid IPC requests are now logged (under the tracing feature) and dropped instead of aborting the process, matching the existing behavior of the WKWebView backend.
  • b95a7f8 (#1799 by @Legend-Master) On Windows, ignore set webview focus error on create as it fails if the hosting window is minimized.
  • aff28ef (#1781 by @FabianLars) On macOS in debug mode, don't register requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler: delegate method on macOS 11 or older to prevent a debug_assertion startup panic.
  • be729e3 (#1804 by @velocitysystems) Override getDefaultVideoPoster() on Android to return a transparent bitmap instead of null, preventing Chromium from painting its default gray play-button placeholder on <video> elements.
  • 3fbf592 (#1795 by @qwerfunch) Fix a Windows crash when the WebView2 parent subclass is re-entered after its controller reference data is cleared during teardown.
Jul 30, 2026
  • affbb3c (#1720) Updated Android lifecycle JNI calls in WryActivity for Tao 0.36's renames:

    > - create to onFirstActivityCreate > - onActivityCreate to onCreate > - start to onStart > - resume to onResume > - pause to onPause > - stop to onStop > - Removed onActivitySaveInstanceState > - onActivityDestroy to onDestroy > - onActivityLowMemory to onLowMemory > > onLowMemory no longer takes any parameters. > onFirstActivityCreate no longer takes any parameters.

    and also emitting them as window-specific events.

  • 145b36f (#1736) Remove Send, Sync bounds from NewWindowOpener.

  • 871497a (#1748) Add back/forward navigation APIs (go_back, go_forward, can_go_back, and can_go_forward) to WebView.

  • fe52ff9 (#1715) On Android, release REQUEST_HANDLER mutex sooner by cloning the underlying Send + Sync handler.

  • 9d0a9fe (#1712) On Windows, Add WebViewExtWindows::hwnd getter to access the child HWND containing the webview.

  • 4ee8c38 (#1779) Enable WebView element fullscreen support on macOS 12.3+ and iOS 15.4+ without using private APIs.

  • 5bdda32 (#1719) On macOS, avoid an extra copy for owned custom protocol response bodies by transferring the body buffer into NSData.

  • 6ef93b3 (#1737) On macOS, updated objc2-* dependencies to 0.3.2

  • 9f9a237 (#1654) Add an expanded permission handling API for WebView2, WKWebView, WebKitGTK, and Android. This includes:

    • PermissionKind expansion: DisplayCapture, Midi, Sensors, MediaKeySystemAccess, LocalFonts, WindowManagement, PointerLock, AutomaticDownloads, FileSystemAccess, Autoplay.
    • Support for PermissionResponse::Prompt to trigger native system dialogs.
    • Android support via JNI bridge (onPermissionRequest in RustWebChromeClient).
    • macOS: Split camera/microphone requests; CameraAndMicrophone resolved from individual responses.
    • Linux: DisplayCapture detection for WebKitGTK < 2.42 (getDisplayMedia fix).
    • Windows: Full coverage of all 12 COREWEBVIEW2_PERMISSION_KIND values.
  • bd1decc (#1780) Breaking Change: Removed the macOS/iOS specific transparent and fullscreen feature flags. The functionalities are now always enabled. Please reach out immediatly if you see issues in the App Store submission process.

  • d29cd57 (#1787) Removed protocol feature, previously gated WebViewBuilder::with_custom_protocol, WebViewBuilder::with_asynchronous_custom_protocol and WebViewBuilder::with_asset_loader are now always available

  • 86ac6e8 (#1732) Updated dom_query dependency to 0.28.0

  • 10fdf73 (#1738) On Windows, add WebViewBuilderExtWindows::with_profile_name to opt the webview 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.

May 4, 2026
Mar 23, 2026
  • a535fd9 (#1699 by @FabianLars) On Android, fixed panics on custom protocol timeouts. Increased timeout for non-internal requests to 30 seconds.
  • 781f371 (#1633 by @lucasfernog) Update to latest tao to support multi-window on Android and iOS.
  • 848aff7 (#1660 by @Legend-Master) Run new_window_req_handler on main thread and remove the Send + Sync restriction on it
  • 92114b2 (#1634 by @lucasfernog) Call onNewIntent for tao's 0.35 Opened event.
  • 05440b8 (#1688 by @Legend-Master) Removed drag-drop feature, previously gated WebViewAttributes::drag_drop_handler and WebViewBuilder::with_drag_drop_handler are now always available
  • 222c63d (#1698 by @FabianLars) Remove WebViewAttributes, WebView::new and WebView::new_as_child from public API. Use WebViewBuilder instead.
Mar 17, 2026
  • 47d9470 (#1693 by @Legend-Master) Updated dependency dom_query to 0.27.0, this fixed a bug where initialization scripts were escaped incorrectly on Android
  • 1540788 (#1692 by @Sbenazar) fix(webkitgtk): normalize background color values to 0.0–1.0
Mar 9, 2026
  • 40a7032 (#1677 by @russellmcc) Fix bug where wry would crash when loaded by multiple dylibs in the same process on macOS.
Feb 14, 2026
  • 1d1b870 (#1662 by @JSKitty) On macOS, implement background_color support for WKWebView behind the transparent feature. Disables the default white background via the drawsBackground KVC key at init and applies underPageBackgroundColor on macOS 12+ for both initial creation and runtime set_background_color calls.
  • e3761e5 (#1668 by @zeta-gundam) Fixed an issue that caused "Symbol not found: _NSHTTPCookieSameSite…" panics on macOS 10.13 & 10.14.
  • e3761e5 (#1668 by @zeta-gundam) Fixed an issue that caused "[&lt;WKWebViewConfiguration 0x6000003f4d00> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key drawsBackground." panics on macOS 10.13
Jan 18, 2026
Jan 15, 2026
  • 5fdd1a9 (#1625) Use OnBackPressedCallback instead of the deprecated onKeyDown for back navigation on Android.

  • 51d06d0 (#1646) Remove redundant clones in WebView and download handling. No user facing changes.

  • 7b77322 (#1647) Fix clippy io_other_error. No user facing changes.

  • ff8876d (#1652) Improve wkwebview performance. No user-facing changes.

  • 27ba73f Add handler for web content process termination.

  • 4fcff14 (#1547) Set WebsiteDataManagerBuilder::base_cache_directory with the same path as base_data_directory.

    This change allows the cache directory to be changed instead of using the default one from WebKitGTK.

  • 64d9296 (#1640) Update webkit2gtk-rs crates to 2.0.2.

Oct 22, 2025
  • #1622 Fixed an issue that caused docs.rs builds to fail. No user facing changes.
Oct 6, 2025
  • 093856a (#1622 by @lucasfernog) Add flag to opt out of automatic back navigation handling on Android via WryActivity#handleBackNavigation.
  • 0f51d67 (#1605 by @dgerhardt) On Linux, removed a workaround which forced inital requests for multiple webviews to be handled sequentially. The workaround was intended to fix a concurrency bug with loading multiple URIs at the same time on WebKitGTK. But it prevented parallelization and could cause a deadlock in certain situations. It is no longer needed with newer WebKitGTK versions.
Aug 27, 2025
Aug 25, 2025
  • 1743e7f (#1608 by @lucasfernog) Fix new_window_req_handler craashing when creating new window for webview that has a custom data_store_identifier.
Aug 16, 2025
Aug 16, 2025
  • 1456f8e (#1602 by @FabianLars) Enabled all downloads by default to match WebView2 and browser behavior on all platforms. To disable this, provide a custom download_started_handler.
  • 43e78ff (#1588 by @zphrs) Add WebViewBuilder::with_limit_navigations_to_app_bound_domains only on iOS. Function is a no-op if iOS version is less than iOS 14.
  • 60dba38 (#1569 by @WSH032) Add WebView::set_cookie and WebView::delete_cookie APIs.
  • 88cbb01 (#1561 by @dgerhardt) On Linux, fix a deadlock, which could occur when destroying a WebView before loading has finished.
  • eb562ca (#1596 by @lucasfernog) Do not fire new_window_req_handler on navigation events on macOS and iOS.
  • 78634b3 (#1594 by @FabianLars) On Linux, macOS and iOS, the download_started_handler will now get the correct suggested destination path.
  • 5399823 (#1600 by @lucasfernog) Fixes new_window_req_handler not creating the webview on Linux when executing window.open().
  • eb562ca (#1596 by @lucasfernog) Fixes new_window_req_handler not fired on macOS when executing window.open().
  • 3f978d3 (#1601 by @lucasfernog) Refactor WebViewBuilder::with_new_window_req_handler to allow creating the webview manually.
  • 3f978d3 (#1601 by @lucasfernog) Disable new window creation by default on Windows to match behavior of other platforms. Use WebViewBuilder::with_new_window_req_handler to enable.
Jun 26, 2025
Jun 24, 2025
  • 5e6b0e6 (#1555 by @FabianLars) Added iOS support for set_background_color.
  • 99dab51 (#1570 by @renovate) Updated webview2-com to 0.38.
  • 41f4a3a (#1572 by @FabianLars) On Windows on systems running WebView2 v137+ wry now uses a new default background color API which should reduce white flashes. The use of the RemoveRedirectionBitmap browser flag (v134+) was removed due to crashes on Insider builds.
  • eb40ac8 (#1528 by @aurelj) Added x11 feature flag (enabled by default).
  • 1567635 (#1558 by @amrbashir) Rename WebViewBuilder methods for consistency and clarity:

    • Renamed WebViewBuilder::with_web_context to WebViewBuilder::new_with_web_context
    • Renamed WebViewBuilder::with_attributes to WebViewBuilder::new_with_attributes
  • f868658 (#1556 by @Legend-Master) WebContext::is_custom_protocol_registered now takes &str instead of String

wry full changelog


© 2026 Tauri Contributors. CC-BY / MIT