mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-07-09 22:38:37 +02:00
refactor: partially migrate to singleton pattern
This commit is contained in:
@@ -137,7 +137,7 @@ impl BrowserRunner {
|
||||
local_proxy_settings: Option<&ProxySettings>,
|
||||
) -> Result<BrowserProfile, Box<dyn std::error::Error + Send + Sync>> {
|
||||
// Check if browser is disabled due to ongoing update
|
||||
let auto_updater = crate::auto_updater::AutoUpdater::new();
|
||||
let auto_updater = crate::auto_updater::AutoUpdater::instance();
|
||||
if auto_updater.is_browser_disabled(&profile.browser)? {
|
||||
return Err(
|
||||
format!(
|
||||
@@ -1094,7 +1094,7 @@ impl BrowserRunner {
|
||||
}
|
||||
|
||||
// Check if browser is supported on current platform before attempting download
|
||||
let version_service = BrowserVersionService::new();
|
||||
let version_service = BrowserVersionService::instance();
|
||||
|
||||
if !version_service
|
||||
.is_browser_supported(&browser_str)
|
||||
@@ -1491,13 +1491,13 @@ pub fn delete_profile(_app_handle: tauri::AppHandle, profile_name: String) -> Re
|
||||
|
||||
#[tauri::command]
|
||||
pub fn get_supported_browsers() -> Result<Vec<String>, String> {
|
||||
let service = BrowserVersionService::new();
|
||||
let service = BrowserVersionService::instance();
|
||||
Ok(service.get_supported_browsers())
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub fn is_browser_supported_on_platform(browser_str: String) -> Result<bool, String> {
|
||||
let service = BrowserVersionService::new();
|
||||
let service = BrowserVersionService::instance();
|
||||
service
|
||||
.is_browser_supported(&browser_str)
|
||||
.map_err(|e| format!("Failed to check browser support: {e}"))
|
||||
@@ -1507,14 +1507,14 @@ pub fn is_browser_supported_on_platform(browser_str: String) -> Result<bool, Str
|
||||
pub async fn fetch_browser_versions_cached_first(
|
||||
browser_str: String,
|
||||
) -> Result<Vec<BrowserVersionInfo>, String> {
|
||||
let service = BrowserVersionService::new();
|
||||
let service = BrowserVersionService::instance();
|
||||
|
||||
// Get cached versions immediately if available
|
||||
if let Some(cached_versions) = service.get_cached_browser_versions_detailed(&browser_str) {
|
||||
// Check if we should update cache in background
|
||||
if service.should_update_cache(&browser_str) {
|
||||
// Start background update but return cached data immediately
|
||||
let service_clone = BrowserVersionService::new();
|
||||
let service_clone = BrowserVersionService::instance();
|
||||
let browser_str_clone = browser_str.clone();
|
||||
tokio::spawn(async move {
|
||||
if let Err(e) = service_clone
|
||||
@@ -1539,14 +1539,14 @@ pub async fn fetch_browser_versions_cached_first(
|
||||
pub async fn fetch_browser_versions_with_count_cached_first(
|
||||
browser_str: String,
|
||||
) -> Result<BrowserVersionsResult, String> {
|
||||
let service = BrowserVersionService::new();
|
||||
let service = BrowserVersionService::instance();
|
||||
|
||||
// Get cached versions immediately if available
|
||||
if let Some(cached_versions) = service.get_cached_browser_versions(&browser_str) {
|
||||
// Check if we should update cache in background
|
||||
if service.should_update_cache(&browser_str) {
|
||||
// Start background update but return cached data immediately
|
||||
let service_clone = BrowserVersionService::new();
|
||||
let service_clone = BrowserVersionService::instance();
|
||||
let browser_str_clone = browser_str.clone();
|
||||
tokio::spawn(async move {
|
||||
if let Err(e) = service_clone
|
||||
@@ -1648,7 +1648,7 @@ pub async fn update_camoufox_config(
|
||||
pub async fn fetch_browser_versions_with_count(
|
||||
browser_str: String,
|
||||
) -> Result<BrowserVersionsResult, String> {
|
||||
let service = BrowserVersionService::new();
|
||||
let service = BrowserVersionService::instance();
|
||||
service
|
||||
.fetch_browser_versions_with_count(&browser_str, false)
|
||||
.await
|
||||
@@ -1666,7 +1666,7 @@ pub fn get_downloaded_browser_versions(browser_str: String) -> Result<Vec<String
|
||||
pub async fn get_browser_release_types(
|
||||
browser_str: String,
|
||||
) -> Result<crate::browser_version_service::BrowserReleaseTypes, String> {
|
||||
let service = BrowserVersionService::new();
|
||||
let service = BrowserVersionService::instance();
|
||||
service
|
||||
.get_browser_release_types(&browser_str)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user