@@ -1399,6 +1399,8 @@ pub enum WebviewMessage {
13991399 EvaluateScript ( String , Sender < ( ) > , tracing:: Span ) ,
14001400 CookiesForUrl ( Url , Sender < Result < Vec < tauri_runtime:: Cookie < ' static > > > > ) ,
14011401 Cookies ( Sender < Result < Vec < tauri_runtime:: Cookie < ' static > > > > ) ,
1402+ SetCookie ( tauri_runtime:: Cookie < ' static > ) ,
1403+ DeleteCookie ( tauri_runtime:: Cookie < ' static > ) ,
14021404 WebviewEvent ( WebviewEvent ) ,
14031405 SynthesizedWindowEvent ( SynthesizedWindowEvent ) ,
14041406 Navigate ( Url ) ,
@@ -1688,6 +1690,30 @@ impl<T: UserEvent> WebviewDispatch<T> for WryWebviewDispatcher<T> {
16881690 webview_getter ! ( self , WebviewMessage :: Cookies ) ?
16891691 }
16901692
1693+ fn set_cookie ( & self , cookie : Cookie < ' _ > ) -> Result < ( ) > {
1694+ send_user_message (
1695+ & self . context ,
1696+ Message :: Webview (
1697+ * self . window_id . lock ( ) . unwrap ( ) ,
1698+ self . webview_id ,
1699+ WebviewMessage :: SetCookie ( cookie. into_owned ( ) ) ,
1700+ ) ,
1701+ ) ?;
1702+ Ok ( ( ) )
1703+ }
1704+
1705+ fn delete_cookie ( & self , cookie : Cookie < ' _ > ) -> Result < ( ) > {
1706+ send_user_message (
1707+ & self . context ,
1708+ Message :: Webview (
1709+ * self . window_id . lock ( ) . unwrap ( ) ,
1710+ self . webview_id ,
1711+ WebviewMessage :: DeleteCookie ( cookie. clone ( ) . into_owned ( ) ) ,
1712+ ) ,
1713+ ) ?;
1714+ Ok ( ( ) )
1715+ }
1716+
16911717 fn set_auto_resize ( & self , auto_resize : bool ) -> Result < ( ) > {
16921718 send_user_message (
16931719 & self . context ,
@@ -3685,6 +3711,18 @@ fn handle_user_message<T: UserEvent>(
36853711 . unwrap ( ) ;
36863712 }
36873713
3714+ WebviewMessage :: SetCookie ( cookie) => {
3715+ if let Err ( e) = webview. set_cookie ( & cookie) {
3716+ log:: error!( "failed to set webview cookie: {e}" ) ;
3717+ }
3718+ }
3719+
3720+ WebviewMessage :: DeleteCookie ( cookie) => {
3721+ if let Err ( e) = webview. delete_cookie ( & cookie) {
3722+ log:: error!( "failed to delete webview cookie: {e}" ) ;
3723+ }
3724+ }
3725+
36883726 WebviewMessage :: CookiesForUrl ( url, tx) => {
36893727 let webview_cookies = webview
36903728 . cookies_for_url ( url. as_str ( ) )
0 commit comments