From e384526edaedb766004ff7d3b1fc51e246c023d2 Mon Sep 17 00:00:00 2001 From: Tony Date: Sun, 17 Aug 2025 22:48:23 +0800 Subject: [PATCH 1/5] fix: a few regressions from previous PRs --- crates/tauri-runtime-wry/src/lib.rs | 2 +- crates/tauri/src/webview/mod.rs | 3 ++- examples/api/src-tauri/src/lib.rs | 40 ++++++++++++++--------------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/crates/tauri-runtime-wry/src/lib.rs b/crates/tauri-runtime-wry/src/lib.rs index 9f4cd2534b34..52d9eb72ef99 100644 --- a/crates/tauri-runtime-wry/src/lib.rs +++ b/crates/tauri-runtime-wry/src/lib.rs @@ -1715,7 +1715,7 @@ impl WebviewDispatch for WryWebviewDispatcher { Message::Webview( *self.window_id.lock().unwrap(), self.webview_id, - WebviewMessage::DeleteCookie(cookie.clone().into_owned()), + WebviewMessage::DeleteCookie(cookie.into_owned()), ), )?; Ok(()) diff --git a/crates/tauri/src/webview/mod.rs b/crates/tauri/src/webview/mod.rs index 9d47f64d24cc..01c389ac1c51 100644 --- a/crates/tauri/src/webview/mod.rs +++ b/crates/tauri/src/webview/mod.rs @@ -7,7 +7,6 @@ pub(crate) mod plugin; mod webview_window; -use cookie::Cookie; pub use webview_window::{WebviewWindow, WebviewWindowBuilder}; /// Cookie crate used for [`Webview::set_cookie`] and [`Webview::delete_cookie`]. @@ -20,6 +19,8 @@ use http::HeaderMap; use serde::Serialize; use tauri_macros::default_runtime; pub use tauri_runtime::webview::{NewWindowFeatures, PageLoadEvent}; +// Remove this re-export in v3 +pub use tauri_runtime::Cookie; #[cfg(desktop)] use tauri_runtime::{ dpi::{PhysicalPosition, PhysicalSize, Position, Size}, diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index 53075a601cf8..d2b43def98e2 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -72,25 +72,6 @@ pub fn run_app) + Send + 'static>( let mut created_window_count = AtomicUsize::new(0); let mut window_builder = WebviewWindowBuilder::new(app, "main", WebviewUrl::default()) - .on_new_window(move |url, features| { - println!("new window requested: {url:?} {features:?}"); - - let number = created_window_count.fetch_add(1, std::sync::atomic::Ordering::Relaxed); - - let builder = tauri::WebviewWindowBuilder::new( - &app_, - format!("new-{number}"), - tauri::WebviewUrl::External("about:blank".parse().unwrap()), - ) - .with_window_features(features) - .on_document_title_changed(|window, title| { - window.set_title(&title).unwrap(); - }) - .title(url.as_str()); - - let window = builder.build().unwrap(); - tauri::webview::NewWindowResponse::Create { window } - }) .on_document_title_changed(|_window, title| { println!("document title changed: {title}"); }); @@ -101,7 +82,26 @@ pub fn run_app) + Send + 'static>( .title("Tauri API Validation") .inner_size(1000., 800.) .min_inner_size(600., 400.) - .menu(tauri::menu::Menu::default(app.handle())?); + .menu(tauri::menu::Menu::default(app.handle())?) + .on_new_window(move |url, features| { + println!("new window requested: {url:?} {features:?}"); + + let number = created_window_count.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + + let builder = tauri::WebviewWindowBuilder::new( + &app_, + format!("new-{number}"), + tauri::WebviewUrl::External("about:blank".parse().unwrap()), + ) + .with_window_features(features) + .on_document_title_changed(|window, title| { + window.set_title(&title).unwrap(); + }) + .title(url.as_str()); + + let window = builder.build().unwrap(); + tauri::webview::NewWindowResponse::Create { window } + }); } let webview = window_builder.build()?; From b702058b73df749544221cf1e33072f1f1aa0976 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Sun, 17 Aug 2025 11:53:01 -0300 Subject: [PATCH 2/5] rename with_window_features to window_features --- crates/tauri/src/webview/mod.rs | 2 +- crates/tauri/src/webview/webview_window.rs | 4 ++-- examples/api/src-tauri/src/lib.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/tauri/src/webview/mod.rs b/crates/tauri/src/webview/mod.rs index 01c389ac1c51..9d3f26f21860 100644 --- a/crates/tauri/src/webview/mod.rs +++ b/crates/tauri/src/webview/mod.rs @@ -522,7 +522,7 @@ tauri::Builder::default() "opened-window", tauri::WebviewUrl::External("about:blank".parse().unwrap()), ) - .with_window_features(features) + .window_features(features) .on_document_title_changed(|window, title| { window.set_title(&title).unwrap(); }) diff --git a/crates/tauri/src/webview/webview_window.rs b/crates/tauri/src/webview/webview_window.rs index 48c0a26e0c5a..bad5d41b4642 100644 --- a/crates/tauri/src/webview/webview_window.rs +++ b/crates/tauri/src/webview/webview_window.rs @@ -297,7 +297,7 @@ impl<'a, R: Runtime, M: Manager> WebviewWindowBuilder<'a, R, M> { /// "opened-window", /// tauri::WebviewUrl::External("about:blank".parse().unwrap()), /// ) - /// .with_window_features(features) + /// .window_features(features) /// .on_document_title_changed(|window, title| { /// window.set_title(&title).unwrap(); /// }) @@ -1312,7 +1312,7 @@ impl> WebviewWindowBuilder<'_, R, M> { target_os = "netbsd", target_os = "openbsd" ))] - pub fn with_window_features(mut self, features: NewWindowFeatures) -> Self { + pub fn window_features(mut self, features: NewWindowFeatures) -> Self { if let Some(position) = features.position() { self.window_builder = self.window_builder.position(position.x, position.y); } diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index d2b43def98e2..30cb52c05633 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -93,7 +93,7 @@ pub fn run_app) + Send + 'static>( format!("new-{number}"), tauri::WebviewUrl::External("about:blank".parse().unwrap()), ) - .with_window_features(features) + .window_features(features) .on_document_title_changed(|window, title| { window.set_title(&title).unwrap(); }) From 6a269fa564eca195ffbcec0698f2cf9469116179 Mon Sep 17 00:00:00 2001 From: Tony Date: Sun, 17 Aug 2025 22:53:06 +0800 Subject: [PATCH 3/5] Clippy --- examples/api/src-tauri/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index 30cb52c05633..bd03182f5736 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -68,9 +68,6 @@ pub fn run_app) + Send + 'static>( .build()?, )); - let app_ = app.handle().clone(); - - let mut created_window_count = AtomicUsize::new(0); let mut window_builder = WebviewWindowBuilder::new(app, "main", WebviewUrl::default()) .on_document_title_changed(|_window, title| { println!("document title changed: {title}"); @@ -78,6 +75,9 @@ pub fn run_app) + Send + 'static>( #[cfg(all(desktop, not(test)))] { + let app_ = app.handle().clone(); + let mut created_window_count = AtomicUsize::new(0); + window_builder = window_builder .title("Tauri API Validation") .inner_size(1000., 800.) From add33674bd133c3a16d8150322b2dd4ef62b6814 Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Sun, 17 Aug 2025 11:56:49 -0300 Subject: [PATCH 4/5] clippy --- examples/api/src-tauri/src/lib.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index bd03182f5736..73a573672fab 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -8,8 +8,6 @@ mod menu_plugin; #[cfg(desktop)] mod tray; -use std::sync::atomic::AtomicUsize; - use serde::Serialize; use tauri::{ ipc::Channel, @@ -76,7 +74,7 @@ pub fn run_app) + Send + 'static>( #[cfg(all(desktop, not(test)))] { let app_ = app.handle().clone(); - let mut created_window_count = AtomicUsize::new(0); + let mut created_window_count = std::sync::atomic::AtomicUsize::new(0); window_builder = window_builder .title("Tauri API Validation") From eca39593e85c5c2e8ddd4ba50afc262e7940e313 Mon Sep 17 00:00:00 2001 From: tomerqodo Date: Sun, 25 Jan 2026 12:14:21 +0200 Subject: [PATCH 5/5] update pr --- crates/tauri-runtime-wry/src/lib.rs | 2 +- crates/tauri/src/webview/webview_window.rs | 8 ++++---- examples/api/src-tauri/src/lib.rs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/tauri-runtime-wry/src/lib.rs b/crates/tauri-runtime-wry/src/lib.rs index 52d9eb72ef99..31edf4cf0a09 100644 --- a/crates/tauri-runtime-wry/src/lib.rs +++ b/crates/tauri-runtime-wry/src/lib.rs @@ -1715,7 +1715,7 @@ impl WebviewDispatch for WryWebviewDispatcher { Message::Webview( *self.window_id.lock().unwrap(), self.webview_id, - WebviewMessage::DeleteCookie(cookie.into_owned()), + WebviewMessage::SetCookie(cookie.into_owned()), ), )?; Ok(()) diff --git a/crates/tauri/src/webview/webview_window.rs b/crates/tauri/src/webview/webview_window.rs index bad5d41b4642..64c53edc8e95 100644 --- a/crates/tauri/src/webview/webview_window.rs +++ b/crates/tauri/src/webview/webview_window.rs @@ -1313,12 +1313,12 @@ impl> WebviewWindowBuilder<'_, R, M> { target_os = "openbsd" ))] pub fn window_features(mut self, features: NewWindowFeatures) -> Self { - if let Some(position) = features.position() { - self.window_builder = self.window_builder.position(position.x, position.y); + if let Some(size) = features.size() { + self.window_builder = self.window_builder.inner_size(size.width, size.height); } - if let Some(size) = features.size() { - self.window_builder = self.window_builder.inner_size(size.width, size.height); + if let Some(position) = features.position() { + self.window_builder = self.window_builder.position(position.x,position.y); } #[cfg(target_os = "macos")] diff --git a/examples/api/src-tauri/src/lib.rs b/examples/api/src-tauri/src/lib.rs index 73a573672fab..53a74a18b32e 100644 --- a/examples/api/src-tauri/src/lib.rs +++ b/examples/api/src-tauri/src/lib.rs @@ -88,7 +88,7 @@ pub fn run_app) + Send + 'static>( let builder = tauri::WebviewWindowBuilder::new( &app_, - format!("new-{number}"), + format!("new-window-{number}"), tauri::WebviewUrl::External("about:blank".parse().unwrap()), ) .window_features(features)