wry
Cross-platform WebView rendering library in Rust.
0.57.x
Section titled “0.57.x”0.57.1
Section titled “0.57.1”f9b8bee(#1885 by @LucaCappelletti94) On Android, read__wryActivityIdonly 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 supportsDOCUMENT_START_SCRIPT, instead of a second time fromonPageStarted.b6bef41(#1865 by @velocitysystems) On Android, stop the WebView from applying theRangeheader a second time to a custom protocol206response, and serve ranges past 2 GiB.d8fe88d(#1847 by @Legend-Master) Moved to edition 202475f2b48(#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) Logevalexceptions whentracingfeature's enabled atdebuglevel. (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 viaNSPasteboard.readObjectsForClasses:options:instead of the deprecatedNSFilenamesPboardType, fixing a panic indrag_drop::collect_pathswhen the drag source only publishes per-itempublic.file-urltypes or file reference URLs that AppKit cannot map toNSFilenamesPboardType. The legacy type is kept as a fallback.926dd15(#1876 by @rterence) On macOS, a webview built on its opener's configuration (NewWindowResponse::CreatewithWebViewBuilderExtMacos::with_webview_configuration) shares the opener'sWKUserContentController, so it no longer adds its own initialization scripts and IPC handler to it: the opener's scripts andipchandler 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'sipchandler.
0.57.0
Section titled “0.57.0”105ca17(#1834 by @renovate) Updated dependencydirsfrom v6 to v7f701e13(#1824 by @IntellyCode) On iOS, follow the system background color when nobackground_coloris set, so the webview no longer flashes its opaque white default before the page paints.bb69d62(#1809 by @Legend-Master) Bumped MSRV to 1.85d293751(#1816 by @Legend-Master) Only injectwindow.ipcif the webview is built withWebViewBuilder::with_ipc_handlerbb69d62(#1809 by @Legend-Master) Updatedwindowsandwindows-coreto 0.62,webview2-comto 0.39, this drops Windows 7 support, see https://github.com/microsoft/windows-rs/issues/3808
0.56.x
Section titled “0.56.x”0.56.1
Section titled “0.56.1”62080fa(#1811 by @gimenete) On Android, cache the asset-loader setting inRustWebViewClientso intercepted requests avoid repeated JNI calls into Rust state.a5612a8(#1812 by @Legend-Master) On Android, removed unusedwithAssetLoaderbinding andassetLoaderDomaincan now returnnull.5ce72b0(#1772 by @degant) Don't panic in the IPC handler when the webview's current document URL is not a validhttp::Uri(for example afile://URL, or one containing a raw space or non-ASCII characters). Such invalid IPC requests are now logged (under thetracingfeature) 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 registerrequestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:delegate method on macOS 11 or older to prevent a debug_assertion startup panic.be729e3(#1804 by @velocitysystems) OverridegetDefaultVideoPoster()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.
0.56.0
Section titled “0.56.0”-
affbb3c(#1720) Updated Android lifecycle JNI calls inWryActivityfor Tao 0.36's renames:> -
createtoonFirstActivityCreate> -onActivityCreatetoonCreate> -starttoonStart> -resumetoonResume> -pausetoonPause> -stoptoonStop> - RemovedonActivitySaveInstanceState> -onActivityDestroytoonDestroy> -onActivityLowMemorytoonLowMemory> >onLowMemoryno longer takes any parameters. >onFirstActivityCreateno 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, andcan_go_forward) toWebView. -
fe52ff9(#1715) On Android, release REQUEST_HANDLER mutex sooner by cloning the underlying Send + Sync handler. -
9d0a9fe(#1712) On Windows, AddWebViewExtWindows::hwndgetter 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 intoNSData. -
6ef93b3(#1737) On macOS, updatedobjc2-*dependencies to 0.3.2 -
9f9a237(#1654) Add an expanded permission handling API for WebView2, WKWebView, WebKitGTK, and Android. This includes:PermissionKindexpansion:DisplayCapture,Midi,Sensors,MediaKeySystemAccess,LocalFonts,WindowManagement,PointerLock,AutomaticDownloads,FileSystemAccess,Autoplay.- Support for
PermissionResponse::Promptto trigger native system dialogs. - Android support via JNI bridge (
onPermissionRequestinRustWebChromeClient). - macOS: Split camera/microphone requests;
CameraAndMicrophoneresolved from individual responses. - Linux:
DisplayCapturedetection for WebKitGTK < 2.42 (getDisplayMedia fix). - Windows: Full coverage of all 12
COREWEBVIEW2_PERMISSION_KINDvalues.
-
bd1decc(#1780) Breaking Change: Removed the macOS/iOS specifictransparentandfullscreenfeature flags. The functionalities are now always enabled. Please reach out immediatly if you see issues in the App Store submission process. -
d29cd57(#1787) Removedprotocolfeature, previously gatedWebViewBuilder::with_custom_protocol,WebViewBuilder::with_asynchronous_custom_protocolandWebViewBuilder::with_asset_loaderare now always available -
10fdf73(#1738) On Windows, addWebViewBuilderExtWindows::with_profile_nameto 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.
0.55.x
Section titled “0.55.x”0.55.1
Section titled “0.55.1”3860359(#1721 by @lucasfernog) Tweak ProGuard rules to keep the getId required activity method.
0.55.0
Section titled “0.55.0”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) Runnew_window_req_handleron main thread and remove theSend + Syncrestriction on it92114b2(#1634 by @lucasfernog) CallonNewIntentfor tao's 0.35 Opened event.05440b8(#1688 by @Legend-Master) Removeddrag-dropfeature, previously gatedWebViewAttributes::drag_drop_handlerandWebViewBuilder::with_drag_drop_handlerare now always available222c63d(#1698 by @FabianLars) RemoveWebViewAttributes,WebView::newandWebView::new_as_childfrom public API. UseWebViewBuilderinstead.
0.54.x
Section titled “0.54.x”0.54.4
Section titled “0.54.4”0.54.3
Section titled “0.54.3”40a7032(#1677 by @russellmcc) Fix bug where wry would crash when loaded by multiple dylibs in the same process on macOS.
Dependencies
Section titled “Dependencies”146e36e(#1671 by @thomaseizinger) Refactors HTML manipulation on Android to usedom_queryinstead ofkuchikiki.
enhance
Section titled “enhance”e430558(#1649 by @aoxiangtianyu-go) Add an option to control browser-level autofill behavior on Windows.
a7de137(#1680 by @Legend-Master) Fix infinite loop on main thread if creating the webview failed or getting cookie failed
0.54.2
Section titled “0.54.2”1d1b870(#1662 by @JSKitty) On macOS, implementbackground_colorsupport for WKWebView behind thetransparentfeature. Disables the default white background via thedrawsBackgroundKVC key at init and appliesunderPageBackgroundColoron macOS 12+ for both initial creation and runtimeset_background_colorcalls.e3761e5(#1668 by @zeta-gundam) Fixed an issue that caused "Symbol not found: _NSHTTPCookieSameSite…" panics on macOS10.13&10.14.e3761e5(#1668 by @zeta-gundam) Fixed an issue that caused "[<WKWebViewConfiguration 0x6000003f4d00> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key drawsBackground." panics on macOS10.13
0.54.1
Section titled “0.54.1”0.54.0
Section titled “0.54.0”-
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. -
27ba73fAdd handler for web content process termination. -
4fcff14(#1547) SetWebsiteDataManagerBuilder::base_cache_directorywith the same path asbase_data_directory.This change allows the cache directory to be changed instead of using the default one from WebKitGTK.
0.53.x
Section titled “0.53.x”0.53.5
Section titled “0.53.5”- #1622 Fixed an issue that caused docs.rs builds to fail. No user facing changes.
0.53.4
Section titled “0.53.4”093856a(#1622 by @lucasfernog) Add flag to opt out of automatic back navigation handling on Android viaWryActivity#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.
0.53.3
Section titled “0.53.3”6aa5854(#1609 by @lucasfernog) Enhance error handling of thewebview_versionfunction on macOS.
0.53.2
Section titled “0.53.2”1743e7f(#1608 by @lucasfernog) Fix new_window_req_handler craashing when creating new window for webview that has a custom data_store_identifier.
0.53.1
Section titled “0.53.1”ccdf912(#1603 by @lucasfernog) Fix the build when not enabling thex11feature.
0.53.0
Section titled “0.53.0”1456f8e(#1602 by @FabianLars) Enabled all downloads by default to match WebView2 and browser behavior on all platforms. To disable this, provide a customdownload_started_handler.43e78ff(#1588 by @zphrs) AddWebViewBuilder::with_limit_navigations_to_app_bound_domainsonly on iOS. Function is a no-op if iOS version is less than iOS 14.60dba38(#1569 by @WSH032) AddWebView::set_cookieandWebView::delete_cookieAPIs.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 firenew_window_req_handleron navigation events on macOS and iOS.78634b3(#1594 by @FabianLars) On Linux, macOS and iOS, thedownload_started_handlerwill now get the correct suggested destination path.5399823(#1600 by @lucasfernog) Fixesnew_window_req_handlernot creating the webview on Linux when executingwindow.open().eb562ca(#1596 by @lucasfernog) Fixesnew_window_req_handlernot fired on macOS when executingwindow.open().3f978d3(#1601 by @lucasfernog) RefactorWebViewBuilder::with_new_window_req_handlerto allow creating the webview manually.3f978d3(#1601 by @lucasfernog) Disable new window creation by default on Windows to match behavior of other platforms. UseWebViewBuilder::with_new_window_req_handlerto enable.
0.52.x
Section titled “0.52.x”0.52.1
Section titled “0.52.1”63eaab8(#1573 by @Legend-Master) Fixwry::DragDropEvent::Drop::pathsreturns random data on Windows
0.52.0
Section titled “0.52.0”5e6b0e6(#1555 by @FabianLars) Added iOS support forset_background_color.99dab51(#1570 by @renovate) Updatedwebview2-comto0.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 theRemoveRedirectionBitmapbrowser flag (v134+) was removed due to crashes on Insider builds.eb40ac8(#1528 by @aurelj) Addedx11feature flag (enabled by default).
breaking
Section titled “breaking”-
1567635(#1558 by @amrbashir) RenameWebViewBuildermethods for consistency and clarity:- Renamed
WebViewBuilder::with_web_contexttoWebViewBuilder::new_with_web_context - Renamed
WebViewBuilder::with_attributestoWebViewBuilder::new_with_attributes
- Renamed
-
f868658(#1556 by @Legend-Master)WebContext::is_custom_protocol_registerednow takes&strinstead ofString
Full Changelog
Section titled “Full Changelog”Version List
Section titled “Version List”- v0.57.1 Oct 23, 2026
- v0.57.0 Sep 8, 2026
- v0.56.1 Aug 13, 2026
- v0.56.0 Jul 30, 2026
- v0.55.1 May 4, 2026
- v0.55.0 Mar 23, 2026
- v0.54.4 Mar 17, 2026
- v0.54.3 Mar 9, 2026
- v0.54.2 Feb 14, 2026
- v0.54.1 Jan 18, 2026
- v0.54.0 Jan 15, 2026
- v0.53.5 Oct 22, 2025
- v0.53.4 Oct 6, 2025
- v0.53.3 Aug 27, 2025
- v0.53.2 Aug 25, 2025
- v0.53.1 Aug 16, 2025
- v0.53.0 Aug 16, 2025
- v0.52.1 Jun 26, 2025
- v0.52.0 Jun 24, 2025
- v0.51.2 Apr 12, 2025
- v0.51.1 Apr 11, 2025
- v0.51.0 Apr 7, 2025
- v0.50.5 Mar 15, 2025
- v0.50.4 Mar 8, 2025
- v0.50.3 Mar 2, 2025
- v0.50.2 Mar 2, 2025
- v0.50.1 Feb 26, 2025
- v0.50.0 Feb 25, 2025
- v0.49.0 Feb 21, 2025
- v0.48.1 Jan 13, 2025
- v0.48.0 Jan 1, 2025
- v0.47.2 Nov 20, 2024
- v0.47.1 Nov 18, 2024
- v0.47.0 Nov 9, 2024
- v0.46.3 Oct 21, 2024
- v0.46.2 Oct 16, 2024
- v0.46.1 Oct 15, 2024
- v0.46.0 Oct 12, 2024
- v0.45.0 Sep 26, 2024
- v0.44.1 Sep 20, 2024
- v0.44.0 Sep 18, 2024
- v0.43.1 Sep 4, 2024
- v0.43.0 Sep 2, 2024
- v0.42.0 Aug 16, 2024
- v0.41.0 Jun 12, 2024
- v0.40.1 Jun 1, 2024
- v0.40.0 May 21, 2024
- v0.39.5 May 9, 2024
- v0.39.4 May 7, 2024
- v0.39.3 Apr 24, 2024
- v0.39.2 Apr 22, 2024
- v0.39.1 Apr 15, 2024
- v0.39.0 Apr 1, 2024
- v0.38.2 Mar 25, 2024
- v0.38.1 Mar 19, 2024
- v0.38.0 Mar 19, 2024
- v0.37.0 Feb 21, 2024
- v0.36.0 Feb 6, 2024
- v0.35.2 Jan 2, 2024
- v0.35.1 Dec 19, 2023
- v0.35.0 Nov 21, 2023
- v0.34.2 Oct 26, 2023
- v0.34.1 Oct 24, 2023
- v0.34.0 Oct 23, 2023
- v0.33.1 Oct 10, 2023
- v0.33.0 Sep 11, 2023
- v0.32.0 Sep 6, 2023
- v0.31.0 Aug 13, 2023
- v0.30.0 Jul 14, 2023
- v0.29.0 Jun 13, 2023
- v0.28.3 Apr 27, 2023
- v0.28.2 Apr 24, 2023
- v0.28.1 Apr 23, 2023
- v0.28.0 Apr 18, 2023
- v0.27.3 Apr 10, 2023
- v0.27.2 Apr 5, 2023
- v0.27.1 Mar 23, 2023
- v0.27.0 Feb 13, 2023
- v0.26.0 Jan 31, 2023
- v0.25.0 Jan 26, 2023
- v0.24.1 Jan 11, 2023
- v0.24.0 Jan 11, 2023
- v0.23.4 Dec 13, 2022
- v0.23.3 Dec 10, 2022
- v0.23.2 Dec 9, 2022
- v0.23.1 Dec 5, 2022
- v0.23.0 Dec 5, 2022
- v0.22.6 Dec 5, 2022
- v0.22.5 Nov 25, 2022
- v0.22.4 Nov 24, 2022
- v0.22.3 Nov 21, 2022
- v0.22.2 Nov 21, 2022
- v0.22.1 Nov 16, 2022
- v0.22.0 Nov 8, 2022
- v0.21.1 Sep 15, 2022
- v0.21.0 Sep 13, 2022
- v0.20.2 Aug 14, 2022
- v0.20.1 Aug 9, 2022
- v0.20.0 Jul 27, 2022
- v0.19.0 Jun 28, 2022
- v0.18.3 Jun 14, 2022
- v0.18.2 Jun 7, 2022
- v0.18.1 May 31, 2022
- v0.18.0 May 31, 2022
- v0.17.0 May 24, 2022
- v0.16.2 May 10, 2022
- v0.16.1 May 8, 2022
- v0.16.0 May 4, 2022
- v0.15.1 Apr 27, 2022
- v0.15.0 Apr 7, 2022
- v0.14.0 Mar 28, 2022
- v0.13.3 Feb 27, 2022
- v0.13.2 Feb 18, 2022
- v0.13.1 Feb 7, 2022
- v0.13.0 Feb 5, 2022
- v0.12.2 Aug 23, 2021
- v0.12.1 Aug 12, 2021
- v0.12.0 Aug 9, 2021
- v0.11.0 Jul 15, 2021
- v0.10.3 Jun 29, 2021
- v0.10.2 Jun 23, 2021
- v0.10.1 Jun 22, 2021
- v0.10.0 Jun 22, 2021
- v0.9.4 May 18, 2021
- v0.9.3 May 17, 2021
- v0.9.2 May 10, 2021
- v0.9.1 May 9, 2021
- v0.9.0 Apr 28, 2021
- v0.8.0 Apr 14, 2021
- v0.7.0 Apr 2, 2021
- v0.6.2 Apr 1, 2021
- v0.6.1 Mar 21, 2021
- v0.6.0 Mar 11, 2021
© 2026 Tauri Contributors. CC-BY / MIT