diff --git a/.changes/main-thread-api-calls.md b/.changes/main-thread-api-calls.md index 454192905..a9bddb9fe 100644 --- a/.changes/main-thread-api-calls.md +++ b/.changes/main-thread-api-calls.md @@ -3,4 +3,4 @@ "tauri-runtime-wry": patch --- -Allow window, global shortcut and clipboard APIs to be called on the main thread (except window's `close` and `create_window`). +Allow window, global shortcut and clipboard APIs to be called on the main thread. diff --git a/core/tauri-runtime-wry/src/lib.rs b/core/tauri-runtime-wry/src/lib.rs index fda21e2ce..5c0f1fc80 100644 --- a/core/tauri-runtime-wry/src/lib.rs +++ b/core/tauri-runtime-wry/src/lib.rs @@ -92,6 +92,7 @@ use std::{ convert::TryFrom, fmt, fs::read, + ops::Deref, path::PathBuf, sync::{ mpsc::{channel, Sender}, @@ -117,6 +118,13 @@ pub type MenuEventHandler = Box; pub type MenuEventListeners = Arc>>; pub type WindowMenuEventListeners = Arc>>; +macro_rules! getter { + ($self: ident, $rx: expr, $message: expr) => {{ + send_user_message(&$self.context, $message)?; + $rx.recv().unwrap() + }}; +} + macro_rules! window_getter { ($self: ident, $message: expr) => {{ let (tx, rx) = channel(); @@ -124,45 +132,33 @@ macro_rules! window_getter { }}; } -macro_rules! send_user_message { - ($self: ident, $message: expr) => {{ - if current_thread().id() == $self.context.main_thread_id { - handle_user_message( - &mut ControlFlow::Wait, - None, - $message, - UserMessageContext { - callback: None, - window_event_listeners: &$self.context.window_event_listeners, - global_shortcut_manager: $self.context.main_thread.global_shortcut_manager.clone(), - clipboard_manager: $self.context.main_thread.clipboard_manager.clone(), - menu_event_listeners: &$self.context.menu_event_listeners, - windows: $self.context.main_thread.windows.clone(), - #[cfg(feature = "system-tray")] - tray_context: &$self.context.main_thread.tray_context, - }, - &$self.context.main_thread.web_context, - ); - Ok(()) - } else { - $self - .context - .proxy - .send_event($message) - .map_err(|_| Error::FailedToSendMessage) - } - }}; -} - -macro_rules! getter { - ($self: ident, $rx: expr, $message: expr) => {{ - send_user_message!($self, $message)?; - $rx.recv().unwrap() - }}; +fn send_user_message(context: &Context, message: Message) -> Result<()> { + if current_thread().id() == context.main_thread_id { + handle_user_message( + &context.main_thread.window_target, + message, + UserMessageContext { + window_event_listeners: &context.window_event_listeners, + global_shortcut_manager: context.main_thread.global_shortcut_manager.clone(), + clipboard_manager: context.main_thread.clipboard_manager.clone(), + menu_event_listeners: &context.menu_event_listeners, + windows: context.main_thread.windows.clone(), + #[cfg(feature = "system-tray")] + tray_context: &context.main_thread.tray_context, + }, + &context.main_thread.web_context, + ); + Ok(()) + } else { + context + .proxy + .send_event(message) + .map_err(|_| Error::FailedToSendMessage) + } } #[derive(Clone)] -struct EventLoopContext { +struct Context { main_thread_id: ThreadId, proxy: EventLoopProxy, window_event_listeners: WindowEventListeners, @@ -170,9 +166,23 @@ struct EventLoopContext { main_thread: DispatcherMainThreadContext, } -impl fmt::Debug for EventLoopContext { +#[derive(Debug, Clone)] +struct DispatcherMainThreadContext { + window_target: EventLoopWindowTarget, + web_context: WebContextStore, + global_shortcut_manager: Arc>, + clipboard_manager: Arc>, + windows: Arc>>, + #[cfg(feature = "system-tray")] + tray_context: TrayContext, +} + +// the main thread context is only used on the main thread +unsafe impl Send for DispatcherMainThreadContext {} + +impl fmt::Debug for Context { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("EventLoopContext") + f.debug_struct("Context") .field("main_thread_id", &self.main_thread_id) .field("proxy", &self.proxy) .field("main_thread", &self.main_thread) @@ -372,7 +382,7 @@ unsafe impl Send for GlobalShortcutWrapper {} /// Wrapper around [`WryShortcutManager`]. #[derive(Clone)] pub struct GlobalShortcutManagerHandle { - context: EventLoopContext, + context: Context, shortcuts: Arc>>, listeners: GlobalShortcutListeners, } @@ -447,7 +457,7 @@ impl GlobalShortcutManager for GlobalShortcutManagerHandle { #[derive(Debug, Clone)] pub struct ClipboardManagerWrapper { - context: EventLoopContext, + context: Context, } impl ClipboardManager for ClipboardManagerWrapper { @@ -1005,34 +1015,17 @@ pub enum Message { Clipboard(ClipboardMessage), } -#[derive(Clone)] -struct DispatcherContext { - main_thread_id: ThreadId, - proxy: EventLoopProxy, - window_event_listeners: WindowEventListeners, - menu_event_listeners: MenuEventListeners, - main_thread: DispatcherMainThreadContext, -} - -#[derive(Debug, Clone)] -struct DispatcherMainThreadContext { - web_context: WebContextStore, - global_shortcut_manager: Arc>, - clipboard_manager: Arc>, - windows: Arc>>, - #[cfg(feature = "system-tray")] - tray_context: TrayContext, -} - -// the main thread context is only used on the main thread -unsafe impl Send for DispatcherMainThreadContext {} - -impl fmt::Debug for DispatcherContext { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("DispatcherContext") - .field("main_thread_id", &self.main_thread_id) - .field("proxy", &self.proxy) - .finish() +impl Clone for Message { + fn clone(&self) -> Self { + match self { + Self::Window(i, m) => Self::Window(*i, m.clone()), + Self::Webview(i, m) => Self::Webview(*i, m.clone()), + #[cfg(feature = "system-tray")] + Self::Tray(m) => Self::Tray(m.clone()), + Self::GlobalShortcut(m) => Self::GlobalShortcut(m.clone()), + Self::Clipboard(m) => Self::Clipboard(m.clone()), + _ => unimplemented!(), + } } } @@ -1040,7 +1033,7 @@ impl fmt::Debug for DispatcherContext { #[derive(Debug, Clone)] pub struct WryDispatcher { window_id: WindowId, - context: DispatcherContext, + context: Context, } impl Dispatch for WryDispatcher { @@ -1048,7 +1041,7 @@ impl Dispatch for WryDispatcher { type WindowBuilder = WindowBuilderWrapper; fn run_on_main_thread(&self, f: F) -> Result<()> { - send_user_message!(self, Message::Task(Box::new(f))) + send_user_message(&self.context, Message::Task(Box::new(f))) } fn on_window_event(&self, f: F) -> Uuid { @@ -1175,19 +1168,19 @@ impl Dispatch for WryDispatcher { } fn print(&self) -> Result<()> { - send_user_message!( - self, - Message::Webview(self.window_id, WebviewMessage::Print) + send_user_message( + &self.context, + Message::Webview(self.window_id, WebviewMessage::Print), ) } fn request_user_attention(&self, request_type: Option) -> Result<()> { - send_user_message!( - self, + send_user_message( + &self.context, Message::Window( self.window_id, WindowMessage::RequestUserAttention(request_type.map(Into::into)), - ) + ), ) } @@ -1197,24 +1190,19 @@ impl Dispatch for WryDispatcher { &mut self, pending: PendingWindow, ) -> Result> { - if current_thread().id() == self.context.main_thread_id { - panic!("This API cannot be called on the main thread. Try using `std::thread::spawn` or `tauri::async_runtime::spawn`."); - } - let (tx, rx) = channel(); let label = pending.label.clone(); let context = self.context.clone(); - self - .context - .proxy - .send_event(Message::CreateWebview( + send_user_message( + &self.context, + Message::CreateWebview( Box::new(move |event_loop, web_context| { create_webview(event_loop, web_context, context, pending) }), tx, - )) - .map_err(|_| Error::FailedToSendMessage)?; + ), + )?; let window_id = rx.recv().unwrap(); let dispatcher = WryDispatcher { @@ -1225,73 +1213,77 @@ impl Dispatch for WryDispatcher { } fn set_resizable(&self, resizable: bool) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetResizable(resizable),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetResizable(resizable)), ) } fn set_title>(&self, title: S) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetTitle(title.into()),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetTitle(title.into())), ) } fn maximize(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::Maximize) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::Maximize), ) } fn unmaximize(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::Unmaximize) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::Unmaximize), ) } fn minimize(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::Minimize) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::Minimize), ) } fn unminimize(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::Unminimize) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::Unminimize), ) } fn show_menu(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::ShowMenu) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::ShowMenu), ) } fn hide_menu(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::HideMenu) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::HideMenu), ) } fn show(&self) -> Result<()> { - send_user_message!(self, Message::Window(self.window_id, WindowMessage::Show)) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::Show), + ) } fn hide(&self) -> Result<()> { - send_user_message!(self, Message::Window(self.window_id, WindowMessage::Hide)) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::Hide), + ) } fn close(&self) -> Result<()> { - if current_thread().id() == self.context.main_thread_id { - panic!("This API cannot be called on the main thread. Try using `std::thread::spawn` or `tauri::async_runtime::spawn`."); - } + // NOTE: close cannot use the `send_user_message` function because it accesses the event loop callback self .context .proxy @@ -1300,99 +1292,99 @@ impl Dispatch for WryDispatcher { } fn set_decorations(&self, decorations: bool) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetDecorations(decorations),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetDecorations(decorations)), ) } fn set_always_on_top(&self, always_on_top: bool) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetAlwaysOnTop(always_on_top),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetAlwaysOnTop(always_on_top)), ) } fn set_size(&self, size: Size) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetSize(size),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetSize(size)), ) } fn set_min_size(&self, size: Option) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetMinSize(size),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetMinSize(size)), ) } fn set_max_size(&self, size: Option) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetMaxSize(size),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetMaxSize(size)), ) } fn set_position(&self, position: Position) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetPosition(position),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetPosition(position)), ) } fn set_fullscreen(&self, fullscreen: bool) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetFullscreen(fullscreen),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetFullscreen(fullscreen)), ) } fn set_focus(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetFocus) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetFocus), ) } fn set_icon(&self, icon: Icon) -> Result<()> { - send_user_message!( - self, + send_user_message( + &self.context, Message::Window( self.window_id, WindowMessage::SetIcon(WryIcon::try_from(icon)?.0), - ) + ), ) } fn set_skip_taskbar(&self, skip: bool) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::SetSkipTaskbar(skip),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::SetSkipTaskbar(skip)), ) } fn start_dragging(&self) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::DragWindow) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::DragWindow), ) } fn eval_script>(&self, script: S) -> Result<()> { - send_user_message!( - self, + send_user_message( + &self.context, Message::Webview( self.window_id, WebviewMessage::EvaluateScript(script.into()), - ) + ), ) } fn update_menu_item(&self, id: u16, update: MenuUpdate) -> Result<()> { - send_user_message!( - self, - Message::Window(self.window_id, WindowMessage::UpdateMenuItem(id, update),) + send_user_message( + &self.context, + Message::Window(self.window_id, WindowMessage::UpdateMenuItem(id, update)), ) } } @@ -1460,7 +1452,7 @@ pub struct Wry { /// A handle to the Wry runtime. #[derive(Debug, Clone)] pub struct WryHandle { - dispatcher_context: DispatcherContext, + context: Context, } impl WryHandle { @@ -1469,22 +1461,15 @@ impl WryHandle { &self, f: F, ) -> Result> { - if current_thread().id() == self.dispatcher_context.main_thread_id { - panic!("This API cannot be called on the main thread. Try using `std::thread::spawn` or `tauri::async_runtime::spawn`."); - } let (tx, rx) = channel(); - self - .dispatcher_context - .proxy - .send_event(Message::CreateWindow(Box::new(f), tx)) - .map_err(|_| Error::FailedToSendMessage)?; + send_user_message(&self.context, Message::CreateWindow(Box::new(f), tx))?; rx.recv().unwrap() } /// Send a message to the event loop. pub fn send_event(&self, message: Message) -> Result<()> { self - .dispatcher_context + .context .proxy .send_event(message) .map_err(|_| Error::FailedToSendMessage)?; @@ -1503,22 +1488,21 @@ impl RuntimeHandle for WryHandle { ) -> Result> { let (tx, rx) = channel(); let label = pending.label.clone(); - let dispatcher_context = self.dispatcher_context.clone(); - self - .dispatcher_context - .proxy - .send_event(Message::CreateWebview( + let context = self.context.clone(); + send_user_message( + &self.context, + Message::CreateWebview( Box::new(move |event_loop, web_context| { - create_webview(event_loop, web_context, dispatcher_context, pending) + create_webview(event_loop, web_context, context, pending) }), tx, - )) - .map_err(|_| Error::FailedToSendMessage)?; + ), + )?; let window_id = rx.recv().unwrap(); let dispatcher = WryDispatcher { window_id, - context: self.dispatcher_context.clone(), + context: self.context.clone(), }; Ok(DetachedWindow { label, dispatcher }) } @@ -1552,12 +1536,13 @@ impl Runtime for Wry { #[cfg(feature = "system-tray")] let tray_context = TrayContext::default(); - let event_loop_context = EventLoopContext { + let event_loop_context = Context { main_thread_id, proxy, window_event_listeners: window_event_listeners.clone(), menu_event_listeners: menu_event_listeners.clone(), main_thread: DispatcherMainThreadContext { + window_target: event_loop.deref().clone(), web_context: web_context.clone(), global_shortcut_manager: global_shortcut_manager.clone(), clipboard_manager: clipboard_manager.clone(), @@ -1594,12 +1579,13 @@ impl Runtime for Wry { fn handle(&self) -> Self::Handle { WryHandle { - dispatcher_context: DispatcherContext { + context: Context { main_thread_id: self.main_thread_id, proxy: self.event_loop.create_proxy(), window_event_listeners: self.window_event_listeners.clone(), menu_event_listeners: self.menu_event_listeners.clone(), main_thread: DispatcherMainThreadContext { + window_target: self.event_loop.deref().clone(), web_context: self.web_context.clone(), global_shortcut_manager: self.global_shortcut_manager.clone(), clipboard_manager: self.clipboard_manager.clone(), @@ -1625,12 +1611,13 @@ impl Runtime for Wry { let webview = create_webview( &self.event_loop, &self.web_context, - DispatcherContext { + Context { main_thread_id: self.main_thread_id, proxy: proxy.clone(), window_event_listeners: self.window_event_listeners.clone(), menu_event_listeners: self.menu_event_listeners.clone(), main_thread: DispatcherMainThreadContext { + window_target: self.event_loop.deref().clone(), web_context: self.web_context.clone(), global_shortcut_manager: self.global_shortcut_manager.clone(), clipboard_manager: self.clipboard_manager.clone(), @@ -1682,12 +1669,13 @@ impl Runtime for Wry { let dispatcher = WryDispatcher { window_id: webview.inner.window().id(), - context: DispatcherContext { + context: Context { main_thread_id: self.main_thread_id, proxy, window_event_listeners: self.window_event_listeners.clone(), menu_event_listeners: self.menu_event_listeners.clone(), main_thread: DispatcherMainThreadContext { + window_target: self.event_loop.deref().clone(), web_context: self.web_context.clone(), global_shortcut_manager: self.global_shortcut_manager.clone(), clipboard_manager: self.clipboard_manager.clone(), @@ -1858,7 +1846,6 @@ struct EventLoopIterationContext<'a> { } struct UserMessageContext<'a> { - callback: Option<&'a mut (dyn FnMut(RunEvent) + 'static)>, window_event_listeners: &'a WindowEventListeners, global_shortcut_manager: Arc>, clipboard_manager: Arc>, @@ -1869,14 +1856,12 @@ struct UserMessageContext<'a> { } fn handle_user_message( - control_flow: &mut ControlFlow, - event_loop: Option<&EventLoopWindowTarget>, + event_loop: &EventLoopWindowTarget, message: Message, context: UserMessageContext<'_>, web_context: &WebContextStore, ) -> RunIteration { let UserMessageContext { - callback, window_event_listeners, menu_event_listeners, global_shortcut_manager, @@ -1959,19 +1944,7 @@ fn handle_user_message( WindowMessage::HideMenu => window.hide_menu(), WindowMessage::Show => window.set_visible(true), WindowMessage::Hide => window.set_visible(false), - WindowMessage::Close => { - if let Some(callback) = callback { - on_window_close( - callback, - id, - windows.lock().expect("poisoned webview collection"), - control_flow, - #[cfg(target_os = "linux")] - window_event_listeners, - menu_event_listeners.clone(), - ); - } - } + WindowMessage::Close => panic!("cannot handle `WindowMessage::Close` on the main thread"), WindowMessage::SetDecorations(decorations) => window.set_decorations(decorations), WindowMessage::SetAlwaysOnTop(always_on_top) => window.set_always_on_top(always_on_top), WindowMessage::SetSize(size) => { @@ -2063,55 +2036,47 @@ fn handle_user_message( } } }, - Message::CreateWebview(handler, sender) => { - if let Some(event_loop) = event_loop { - match handler(event_loop, web_context) { - Ok(webview) => { - let window_id = webview.inner.window().id(); - windows - .lock() - .expect("poisoned webview collection") - .insert(window_id, webview); - sender.send(window_id).unwrap(); - } - Err(e) => { - eprintln!("{}", e); - } - } + Message::CreateWebview(handler, sender) => match handler(event_loop, web_context) { + Ok(webview) => { + let window_id = webview.inner.window().id(); + windows + .lock() + .expect("poisoned webview collection") + .insert(window_id, webview); + sender.send(window_id).unwrap(); } - } + Err(e) => { + eprintln!("{}", e); + } + }, Message::CreateWindow(handler, sender) => { - if let Some(event_loop) = event_loop { - let (label, builder) = handler(); - if let Ok(window) = builder.build(event_loop) { - let window_id = window.id(); + let (label, builder) = handler(); + if let Ok(window) = builder.build(event_loop) { + let window_id = window.id(); - context - .window_event_listeners - .lock() - .unwrap() - .insert(window.id(), WindowEventListenersMap::default()); + window_event_listeners + .lock() + .unwrap() + .insert(window.id(), WindowEventListenersMap::default()); - context - .menu_event_listeners - .lock() - .unwrap() - .insert(window.id(), WindowMenuEventListeners::default()); + menu_event_listeners + .lock() + .unwrap() + .insert(window.id(), WindowMenuEventListeners::default()); - let w = Arc::new(window); + let w = Arc::new(window); - windows.lock().expect("poisoned webview collection").insert( - window_id, - WindowWrapper { - label, - inner: WindowHandle::Window(w.clone()), - menu_items: Default::default(), - }, - ); - sender.send(Ok(Arc::downgrade(&w))).unwrap(); - } else { - sender.send(Err(Error::CreateWindow)).unwrap(); - } + windows.lock().expect("poisoned webview collection").insert( + window_id, + WindowWrapper { + label, + inner: WindowHandle::Window(w.clone()), + menu_items: Default::default(), + }, + ); + sender.send(Ok(Arc::downgrade(&w))).unwrap(); + } else { + sender.send(Err(Error::CreateWindow)).unwrap(); } } @@ -2361,22 +2326,32 @@ fn handle_event_loop( } } Event::UserEvent(message) => { - return handle_user_message( - control_flow, - Some(event_loop), - message, - UserMessageContext { - callback: Some(callback), + if let Message::Window(id, WindowMessage::Close) = message { + on_window_close( + callback, + id, + windows.lock().expect("poisoned webview collection"), + control_flow, + #[cfg(target_os = "linux")] window_event_listeners, - global_shortcut_manager, - clipboard_manager, - menu_event_listeners, - windows, - #[cfg(feature = "system-tray")] - tray_context, - }, - web_context, - ) + menu_event_listeners.clone(), + ); + } else { + return handle_user_message( + event_loop, + message, + UserMessageContext { + window_event_listeners, + global_shortcut_manager, + clipboard_manager, + menu_event_listeners, + windows, + #[cfg(feature = "system-tray")] + tray_context, + }, + web_context, + ); + } } _ => (), } @@ -2515,7 +2490,7 @@ fn to_wry_menu( fn create_webview( event_loop: &EventLoopWindowTarget, web_context: &WebContextStore, - context: DispatcherContext, + context: Context, pending: PendingWindow, ) -> Result { #[allow(unused_mut)] @@ -2617,7 +2592,7 @@ fn create_webview( /// Create a wry rpc handler from a tauri rpc handler. fn create_rpc_handler( - context: DispatcherContext, + context: Context, label: String, handler: WebviewRpcHandler, ) -> Box Option + 'static> { @@ -2638,7 +2613,7 @@ fn create_rpc_handler( /// Create a wry file drop handler from a tauri file drop handler. fn create_file_drop_handler( - context: DispatcherContext, + context: Context, label: String, handler: FileDropHandler, ) -> Box bool + 'static> { diff --git a/core/tauri/src/app.rs b/core/tauri/src/app.rs index e0221993e..89c816ab8 100644 --- a/core/tauri/src/app.rs +++ b/core/tauri/src/app.rs @@ -324,13 +324,6 @@ macro_rules! shared_app_impl { ($app: ty) => { impl $app { /// Creates a new webview window. - /// - /// # Panics - /// - /// - Panics if the event loop is not running yet, usually when called on the [`setup`](crate::Builder#method.setup) closure. - /// - Panics when called on the main thread, usually on the [`run`](crate::App#method.run) closure. - /// - /// You can spawn a task to use the API using [`crate::async_runtime::spawn`] or [`std::thread::spawn`] to prevent the panic. pub fn create_window( &self, label: impl Into, diff --git a/core/tauri/src/window.rs b/core/tauri/src/window.rs index d0113301e..307133aef 100644 --- a/core/tauri/src/window.rs +++ b/core/tauri/src/window.rs @@ -155,13 +155,6 @@ impl Window { } /// Creates a new webview window. - /// - /// # Panics - /// - /// - Panics if the event loop is not running yet, usually when called on the [`setup`](crate::Builder#method.setup) closure. - /// - Panics when called on the main thread, usually on the [`run`](crate::App#method.run) closure. - /// - /// You can spawn a task to use the API using [`crate::async_runtime::spawn`] or [`std::thread::spawn`] to prevent the panic. pub fn create_window( &mut self, label: String, diff --git a/examples/api/src-tauri/Cargo.lock b/examples/api/src-tauri/Cargo.lock index 0aab49fbc..1be18d703 100644 --- a/examples/api/src-tauri/Cargo.lock +++ b/examples/api/src-tauri/Cargo.lock @@ -359,7 +359,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -569,7 +569,7 @@ dependencies = [ "proc-macro2", "quote 1.0.9", "smallvec", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -579,7 +579,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -603,7 +603,7 @@ dependencies = [ "proc-macro2", "quote 1.0.9", "strsim 0.9.3", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -614,7 +614,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -645,7 +645,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -658,7 +658,7 @@ dependencies = [ "proc-macro2", "quote 1.0.9", "rustc_version", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -753,7 +753,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -913,7 +913,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1135,7 +1135,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1246,7 +1246,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1284,7 +1284,7 @@ dependencies = [ "markup5ever", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1464,9 +1464,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.102" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "lock_api" @@ -1546,12 +1546,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" version = "2.4.1" @@ -1657,7 +1651,7 @@ dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1764,7 +1758,7 @@ dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2012,7 +2006,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2026,7 +2020,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2061,9 +2055,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "png" @@ -2142,7 +2136,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "version_check", ] @@ -2551,7 +2545,7 @@ checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2573,7 +2567,7 @@ checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2746,7 +2740,7 @@ dependencies = [ "heck", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2758,7 +2752,7 @@ dependencies = [ "heck", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2774,9 +2768,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" dependencies = [ "proc-macro2", "quote 1.0.9", @@ -2828,7 +2822,7 @@ dependencies = [ [[package]] name = "tao" version = "0.5.2" -source = "git+https://github.com/tauri-apps/tao?branch=next#e1e9b61993e18422efa7810a17ed1aaa2000621a" +source = "git+https://github.com/tauri-apps/tao?branch=next#69ee3f1474007c6e6acc20bcfc71ed3f43ca5414" dependencies = [ "bitflags 1.3.2", "cairo-rs", @@ -2980,7 +2974,7 @@ version = "1.0.0-beta.5" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "tauri-codegen", ] @@ -3098,7 +3092,7 @@ checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3122,9 +3116,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5241dd6f21443a3606b432718b166d3cedc962fd4b8bea54a8bc7f514ebda986" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -3322,7 +3316,7 @@ dependencies = [ "log", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "wasm-bindgen-shared", ] @@ -3356,7 +3350,7 @@ checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3442,7 +3436,7 @@ checksum = "2eba35fdbb8fbc8de7e7479532a356dbbf2754d8a6e9c9fbfa430896cbb1ca89" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3531,7 +3525,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5566b8c51118769e4a9094a688bf1233a3f36aacbfc78f3b15817fe0b6e0442f" dependencies = [ - "syn 1.0.76", + "syn 1.0.77", "windows_gen", "windows_quote", "windows_reader", @@ -3610,13 +3604,12 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.19.0" +version = "2.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eab1e810da9042813865ebe3477261aa77d1f2241f6be747ef8c0e442bc1fa3" +checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59" dependencies = [ "lazy_static", "libc", - "maybe-uninit", "pkg-config", ] @@ -3670,7 +3663,7 @@ dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3738,5 +3731,5 @@ dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] diff --git a/examples/updater/src-tauri/Cargo.lock b/examples/updater/src-tauri/Cargo.lock index e45d637e8..809107ad5 100644 --- a/examples/updater/src-tauri/Cargo.lock +++ b/examples/updater/src-tauri/Cargo.lock @@ -341,37 +341,6 @@ dependencies = [ "objc", ] -[[package]] -name = "com" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a30a2b2a013da986dc5cc3eda3d19c0d59d53f835be1b2356eb8d00f000c793" -dependencies = [ - "com_macros", -] - -[[package]] -name = "com_macros" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7606b05842fea68ddcc89e8053b8860ebcb2a0ba8d6abfe3a148e5d5a8d3f0c1" -dependencies = [ - "com_macros_support", - "proc-macro2", - "syn 1.0.76", -] - -[[package]] -name = "com_macros_support" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e9a6d20f4ac8830e309a455d7e9416e65c6af5a97c88c55fbb4c2012e107da" -dependencies = [ - "proc-macro2", - "quote 1.0.9", - "syn 1.0.76", -] - [[package]] name = "concurrent-queue" version = "1.2.2" @@ -381,6 +350,12 @@ dependencies = [ "cache-padded", ] +[[package]] +name = "const-sha1" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -542,7 +517,7 @@ dependencies = [ "proc-macro2", "quote 1.0.9", "smallvec", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -552,7 +527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -576,7 +551,7 @@ dependencies = [ "proc-macro2", "quote 1.0.9", "strsim", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -587,7 +562,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -618,7 +593,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -631,7 +606,7 @@ dependencies = [ "proc-macro2", "quote 1.0.9", "rustc_version", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -726,7 +701,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -886,7 +861,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1108,7 +1083,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1219,7 +1194,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1251,7 +1226,7 @@ dependencies = [ "markup5ever", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1421,9 +1396,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.102" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "lock_api" @@ -1503,12 +1478,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" version = "2.4.1" @@ -1614,7 +1583,7 @@ dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1721,7 +1690,7 @@ dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1963,7 +1932,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -1977,7 +1946,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2012,9 +1981,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "png" @@ -2093,7 +2062,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "version_check", ] @@ -2502,7 +2471,7 @@ checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2524,7 +2493,7 @@ checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2691,7 +2660,7 @@ dependencies = [ "heck", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2703,7 +2672,7 @@ dependencies = [ "heck", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -2719,9 +2688,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" dependencies = [ "proc-macro2", "quote 1.0.9", @@ -2773,8 +2742,7 @@ dependencies = [ [[package]] name = "tao" version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aa57de7c282b68f8906278543a724ed8f5a2568f069dd0cc05fc10d1f07036b" +source = "git+https://github.com/tauri-apps/tao?branch=next#69ee3f1474007c6e6acc20bcfc71ed3f43ca5414" dependencies = [ "bitflags 1.3.2", "cairo-rs", @@ -2805,7 +2773,8 @@ dependencies = [ "scopeguard", "serde", "unicode-segmentation", - "winapi", + "webview2-com-sys", + "windows", "x11-dl", ] @@ -2902,7 +2871,7 @@ version = "1.0.0-beta.5" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "tauri-codegen", ] @@ -2919,7 +2888,7 @@ dependencies = [ "tauri-utils", "thiserror", "uuid", - "winapi", + "webview2-com-sys", ] [[package]] @@ -2933,7 +2902,7 @@ dependencies = [ "tauri-runtime", "tauri-utils", "uuid", - "winapi", + "webview2-com", "wry", ] @@ -2954,19 +2923,6 @@ dependencies = [ "zstd", ] -[[package]] -name = "tauri-webview2" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7685d17e9007618d13f011f916e28a8830c7108c46cf263bd3ab53a19e1a4fc3" -dependencies = [ - "com", - "once_cell", - "webview2-sys", - "widestring", - "winapi", -] - [[package]] name = "tempfile" version = "3.2.0" @@ -3015,7 +2971,7 @@ checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3039,9 +2995,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5241dd6f21443a3606b432718b166d3cedc962fd4b8bea54a8bc7f514ebda986" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -3237,7 +3193,7 @@ dependencies = [ "log", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "wasm-bindgen-shared", ] @@ -3271,7 +3227,7 @@ checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3339,13 +3295,38 @@ dependencies = [ ] [[package]] -name = "webview2-sys" -version = "0.1.1" +name = "webview2-com" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b7889e893ac4c50d7346356be3ce13a85e56512c38b8fde0526559b8012a4c" +checksum = "f2294dee38668da0d71019097dddc6cef525fde7aa4784243dd83f0752e08aa5" dependencies = [ - "com", - "winapi", + "webview2-com-macros", + "webview2-com-sys", + "windows", +] + +[[package]] +name = "webview2-com-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eba35fdbb8fbc8de7e7479532a356dbbf2754d8a6e9c9fbfa430896cbb1ca89" +dependencies = [ + "proc-macro2", + "quote 1.0.9", + "syn 1.0.77", +] + +[[package]] +name = "webview2-com-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14690dcb8b57c5238c4502cfc321f858fa1306edd4109e8e1d7ddee0c29b06a5" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows", ] [[package]] @@ -3357,12 +3338,6 @@ dependencies = [ "cc", ] -[[package]] -name = "widestring" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" - [[package]] name = "wildmatch" version = "1.1.0" @@ -3400,6 +3375,51 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef84dd25f4c69a271b1bba394532bf400523b43169de21dfc715e8f8e491053d" +dependencies = [ + "const-sha1", + "windows_gen", + "windows_macros", +] + +[[package]] +name = "windows_gen" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac7bb21b8ff5e801232b72a6ff554b4cc0cef9ed9238188c3ca78fe3968a7e5d" +dependencies = [ + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_macros" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5566b8c51118769e4a9094a688bf1233a3f36aacbfc78f3b15817fe0b6e0442f" +dependencies = [ + "syn 1.0.77", + "windows_gen", + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_quote" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4af8236a9493c38855f95cdd11b38b342512a5df4ee7473cffa828b5ebb0e39c" + +[[package]] +name = "windows_reader" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d5cf83fb08083438c5c46723e6206b2970da57ce314f80b57724439aaacab" + [[package]] name = "winres" version = "0.1.11" @@ -3434,7 +3454,7 @@ dependencies = [ [[package]] name = "wry" version = "0.12.2" -source = "git+https://github.com/tauri-apps/wry?rev=21692d986138570d2edc31f84bddb442a3c84a9c#21692d986138570d2edc31f84bddb442a3c84a9c" +source = "git+https://github.com/tauri-apps/wry?rev=e056fb2a15e29de1b8ed85a548cfeb1f85031357#e056fb2a15e29de1b8ed85a548cfeb1f85031357" dependencies = [ "cocoa", "core-graphics 0.22.2", @@ -3451,24 +3471,22 @@ dependencies = [ "serde", "serde_json", "tao", - "tauri-webview2", "thiserror", "url", "webkit2gtk", "webkit2gtk-sys", - "webview2-sys", - "winapi", + "webview2-com", + "windows", ] [[package]] name = "x11-dl" -version = "2.19.0" +version = "2.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eab1e810da9042813865ebe3477261aa77d1f2241f6be747ef8c0e442bc1fa3" +checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59" dependencies = [ "lazy_static", "libc", - "maybe-uninit", "pkg-config", ] @@ -3522,7 +3540,7 @@ dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] [[package]] @@ -3590,5 +3608,5 @@ dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", "quote 1.0.9", - "syn 1.0.76", + "syn 1.0.77", ] diff --git a/tooling/bench/Cargo.lock b/tooling/bench/Cargo.lock index 4d89ba0ce..27080f681 100644 --- a/tooling/bench/Cargo.lock +++ b/tooling/bench/Cargo.lock @@ -58,9 +58,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "libc" -version = "0.2.102" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "num-integer" @@ -202,9 +202,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" +checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" dependencies = [ "proc-macro2", "quote",