From 2faab1d0db6855cec536a3857f94773bd115e566 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 27 May 2026 20:23:15 +0800 Subject: [PATCH 1/3] Revert "refactor!: remove unsafe impl Send and Sync on `NewWindowOpener` (#1736)" This reverts commit 145b36fb5e3551851a9afbdf9c34154e2388f85d. --- src/android/binding.rs | 5 +---- src/android/main_pipe.rs | 15 +++++++++------ src/android/mod.rs | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/android/binding.rs b/src/android/binding.rs index c84e6e0e0..6ea24af91 100644 --- a/src/android/binding.rs +++ b/src/android/binding.rs @@ -255,10 +255,7 @@ fn handle_request( #[allow(non_snake_case)] pub unsafe fn wryCreate(env: JNIEnv, _: JClass) { - let mut main_pipe = MainPipe { - env, - package: super::PACKAGE.get().unwrap(), - }; + let mut main_pipe = MainPipe { env }; let looper = ThreadLooper::for_thread().unwrap(); diff --git a/src/android/main_pipe.rs b/src/android/main_pipe.rs index d58226ce0..6b26d4919 100644 --- a/src/android/main_pipe.rs +++ b/src/android/main_pipe.rs @@ -17,7 +17,7 @@ use std::{ sync::{Arc, Mutex}, }; -use super::{find_class, EvalCallback, WebviewId, EVAL_CALLBACKS, EVAL_ID_GENERATOR}; +use super::{find_class, EvalCallback, WebviewId, EVAL_CALLBACKS, EVAL_ID_GENERATOR, PACKAGE}; pub type ActivityId = i32; @@ -126,7 +126,6 @@ pub fn get_webview(activity_id: ActivityId) -> Option { pub struct MainPipe<'a> { pub env: JNIEnv<'a>, - pub package: &'static str, } impl<'a> MainPipe<'a> { @@ -193,7 +192,7 @@ impl<'a> MainPipe<'a> { let rust_webview_class = find_class( &mut self.env, &activity, - format!("{}/RustWebView", self.package), + format!("{}/RustWebView", PACKAGE.get().unwrap()), )?; let webview = self.env.new_object( &rust_webview_class, @@ -242,7 +241,7 @@ impl<'a> MainPipe<'a> { )?; } - let webview_class_name = format!("{}/RustWebView", self.package); + let webview_class_name = format!("{}/RustWebView", PACKAGE.get().unwrap()); self.env.call_method( &activity, "setWebView", @@ -273,7 +272,7 @@ impl<'a> MainPipe<'a> { set_background_color(&mut self.env, &webview, color)?; } // Create and set webview client - let client_class_name = format!("{}/RustWebViewClient", self.package); + let client_class_name = format!("{}/RustWebViewClient", PACKAGE.get().unwrap()); let rust_webview_client_class = find_class(&mut self.env, &activity, client_class_name.clone())?; let webview_client = self.env.new_object( @@ -296,7 +295,11 @@ impl<'a> MainPipe<'a> { )?; // Add javascript interface (IPC) - let ipc_class = find_class(&mut self.env, &activity, format!("{}/Ipc", self.package))?; + let ipc_class = find_class( + &mut self.env, + &activity, + format!("{}/Ipc", PACKAGE.get().unwrap()), + )?; let ipc = self.env.new_object( ipc_class, format!("(L{webview_class_name};L{client_class_name};)V"), diff --git a/src/android/mod.rs b/src/android/mod.rs index 8c0beed76..dd65d241d 100644 --- a/src/android/mod.rs +++ b/src/android/mod.rs @@ -81,7 +81,7 @@ define_static_handlers! { ActivityId, WEBVIEW_ATTRIBUTES = CreateWebViewAttributes; } -static PACKAGE: OnceCell = OnceCell::new(); +pub(crate) static PACKAGE: OnceCell = OnceCell::new(); type EvalCallback = Box; From 38b3d1c88d4cd69c3317a92d8f0b59872bb9ba43 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 27 May 2026 20:26:50 +0800 Subject: [PATCH 2/3] Remove unused `pub(crate)` --- src/android/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/android/mod.rs b/src/android/mod.rs index dd65d241d..8c0beed76 100644 --- a/src/android/mod.rs +++ b/src/android/mod.rs @@ -81,7 +81,7 @@ define_static_handlers! { ActivityId, WEBVIEW_ATTRIBUTES = CreateWebViewAttributes; } -pub(crate) static PACKAGE: OnceCell = OnceCell::new(); +static PACKAGE: OnceCell = OnceCell::new(); type EvalCallback = Box; From 60e1468efd4643cdf1953382704410faaf2b222b Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 27 May 2026 21:38:32 +0800 Subject: [PATCH 3/3] Clean up --- src/android/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/android/mod.rs b/src/android/mod.rs index 8c0beed76..dfa60e14a 100644 --- a/src/android/mod.rs +++ b/src/android/mod.rs @@ -109,7 +109,7 @@ pub unsafe fn android_setup( _looper: &ThreadLooper, activity: GlobalRef, ) { - let package = PACKAGE.get_or_init(|| package.to_string()); + PACKAGE.get_or_init(|| package.to_string()); let vm = env.get_java_vm().unwrap();