Skip to content

Commit 196ace3

Browse files
fix: return error on window creation failed (#13970)
* fix: return error on window creation failed * Add todo about adding error inside `CreateWindow`
1 parent 82e2645 commit 196ace3

File tree

5 files changed

+16
-7
lines changed

5 files changed

+16
-7
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri-runtime-wry": "patch:bug"
3+
---
4+
5+
Return `tauri_runtime::Error::CreateWindow` instead of panic on window creation failed

crates/tauri-cli/src/mobile/android/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ fn detect_target_ok<'a>(env: &Env) -> Option<&'a Target<'a>> {
303303
fn open_and_wait(config: &AndroidConfig, env: &Env) -> ! {
304304
log::info!("Opening Android Studio");
305305
if let Err(e) = os::open_file_with("Android Studio", config.project_dir(), &env.base) {
306-
log::error!("{}", e);
306+
log::error!("{e}");
307307
}
308308
loop {
309309
sleep(Duration::from_secs(24 * 60 * 60));

crates/tauri-cli/src/mobile/ios/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ fn detect_target_ok<'a>(env: &Env) -> Option<&'a Target<'a>> {
389389
fn open_and_wait(config: &AppleConfig, env: &Env) -> ! {
390390
log::info!("Opening Xcode");
391391
if let Err(e) = os::open_file_with("Xcode", config.project_dir(), env) {
392-
log::error!("{}", e);
392+
log::error!("{e}");
393393
}
394394
loop {
395395
sleep(Duration::from_secs(24 * 60 * 60));

crates/tauri-runtime-wry/src/lib.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3521,14 +3521,14 @@ fn handle_user_message<T: UserEvent>(
35213521
WebviewMessage::EvaluateScript(script, tx, span) => {
35223522
let _span = span.entered();
35233523
if let Err(e) = webview.evaluate_script(&script) {
3524-
log::error!("{}", e);
3524+
log::error!("{e}");
35253525
}
35263526
tx.send(()).unwrap();
35273527
}
35283528
#[cfg(not(all(feature = "tracing", not(target_os = "android"))))]
35293529
WebviewMessage::EvaluateScript(script) => {
35303530
if let Err(e) = webview.evaluate_script(&script) {
3531-
log::error!("{}", e);
3531+
log::error!("{e}");
35323532
}
35333533
}
35343534
WebviewMessage::Navigate(url) => {
@@ -3800,7 +3800,7 @@ fn handle_user_message<T: UserEvent>(
38003800
});
38013801
}
38023802
Err(e) => {
3803-
log::error!("{}", e);
3803+
log::error!("{e}");
38043804
}
38053805
}
38063806
}
@@ -3810,7 +3810,7 @@ fn handle_user_message<T: UserEvent>(
38103810
windows.0.borrow_mut().insert(window_id, webview);
38113811
}
38123812
Err(e) => {
3813-
log::error!("{}", e);
3813+
log::error!("{e}");
38143814
}
38153815
},
38163816
Message::CreateRawWindow(window_id, handler, sender) => {
@@ -4303,7 +4303,10 @@ fn create_window<T: UserEvent, F: Fn(RawWindow) + Send + 'static>(
43034303
}
43044304
};
43054305

4306-
let window = window_builder.inner.build(event_loop).unwrap();
4306+
let window = window_builder
4307+
.inner
4308+
.build(event_loop)
4309+
.map_err(|_| Error::CreateWindow)?;
43074310

43084311
#[cfg(feature = "tracing")]
43094312
{

crates/tauri-runtime/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ pub enum Error {
126126
/// Failed to create webview.
127127
#[error("failed to create webview: {0}")]
128128
CreateWebview(Box<dyn std::error::Error + Send + Sync>),
129+
// TODO: Make it take an error like `CreateWebview` in v3
129130
/// Failed to create window.
130131
#[error("failed to create window")]
131132
CreateWindow,

0 commit comments

Comments
 (0)