diff --git a/src-tauri/src/camoufox_manager.rs b/src-tauri/src/camoufox_manager.rs index f4b73f4..1d8609f 100644 --- a/src-tauri/src/camoufox_manager.rs +++ b/src-tauri/src/camoufox_manager.rs @@ -111,7 +111,15 @@ impl CamoufoxManager { ) -> Result> { // Get executable path let executable_path = if let Some(path) = &config.executable_path { - PathBuf::from(path) + let p = PathBuf::from(path); + if p.exists() { + p + } else { + log::warn!("Stored Camoufox executable path does not exist: {path}, falling back to dynamic resolution"); + BrowserRunner::instance() + .get_browser_executable_path(profile) + .map_err(|e| format!("Failed to get Camoufox executable path: {e}"))? + } } else { BrowserRunner::instance() .get_browser_executable_path(profile) @@ -204,7 +212,15 @@ impl CamoufoxManager { // Get executable path let executable_path = if let Some(path) = &config.executable_path { - PathBuf::from(path) + let p = PathBuf::from(path); + if p.exists() { + p + } else { + log::warn!("Stored Camoufox executable path does not exist: {path}, falling back to dynamic resolution"); + BrowserRunner::instance() + .get_browser_executable_path(profile) + .map_err(|e| format!("Failed to get Camoufox executable path: {e}"))? + } } else { BrowserRunner::instance() .get_browser_executable_path(profile) diff --git a/src-tauri/src/wayfern_manager.rs b/src-tauri/src/wayfern_manager.rs index f647d1d..69f4aa6 100644 --- a/src-tauri/src/wayfern_manager.rs +++ b/src-tauri/src/wayfern_manager.rs @@ -231,7 +231,15 @@ impl WayfernManager { config: &WayfernConfig, ) -> Result> { let executable_path = if let Some(path) = &config.executable_path { - PathBuf::from(path) + let p = PathBuf::from(path); + if p.exists() { + p + } else { + log::warn!("Stored Wayfern executable path does not exist: {path}, falling back to dynamic resolution"); + BrowserRunner::instance() + .get_browser_executable_path(profile) + .map_err(|e| format!("Failed to get Wayfern executable path: {e}"))? + } } else { BrowserRunner::instance() .get_browser_executable_path(profile) @@ -400,7 +408,15 @@ impl WayfernManager { proxy_url: Option<&str>, ) -> Result> { let executable_path = if let Some(path) = &config.executable_path { - PathBuf::from(path) + let p = PathBuf::from(path); + if p.exists() { + p + } else { + log::warn!("Stored Wayfern executable path does not exist: {path}, falling back to dynamic resolution"); + BrowserRunner::instance() + .get_browser_executable_path(profile) + .map_err(|e| format!("Failed to get Wayfern executable path: {e}"))? + } } else { BrowserRunner::instance() .get_browser_executable_path(profile)