Files
Ant-Browser/backend/app_browser_config_api.go
T
ant-black 70132417ad publish: 1.2.0 snapshot (f3d7ec5)
channel: master

version: 1.2.0

source-ref: D:\code\open_source\ant-chrome master

source-commit: f3d7ec5

merged-public-base: 3d264eb
2026-05-05 18:08:10 +08:00

88 lines
3.1 KiB
Go

package backend
import (
"ant-chrome/backend/internal/config"
"ant-chrome/backend/internal/logger"
"fmt"
"strings"
)
func (a *App) GetBrowserSettings() BrowserSettings {
return BrowserSettings{
UserDataRoot: a.config.Browser.UserDataRoot,
DefaultFingerprintArgs: append([]string{}, a.config.Browser.DefaultFingerprintArgs...),
DefaultLaunchArgs: append([]string{}, a.config.Browser.DefaultLaunchArgs...),
DefaultStartURLs: append([]string{}, a.config.Browser.DefaultStartURLs...),
RestoreLastSession: a.config.Browser.RestoreLastSession,
StartReadyTimeoutMs: browserStartReadyTimeoutMillis(a.config),
StartStableWindowMs: browserStartStableWindowMillis(a.config),
}
}
func (a *App) SaveBrowserSettings(settings BrowserSettings) error {
log := logger.New("Browser")
a.config.Browser.UserDataRoot = strings.TrimSpace(settings.UserDataRoot)
a.config.Browser.DefaultFingerprintArgs = append([]string{}, settings.DefaultFingerprintArgs...)
a.config.Browser.DefaultLaunchArgs = append([]string{}, settings.DefaultLaunchArgs...)
if settings.DefaultStartURLs != nil {
a.config.Browser.DefaultStartURLs = normalizeNonEmptyStrings(settings.DefaultStartURLs)
} else if a.config.Browser.DefaultStartURLs == nil {
a.config.Browser.DefaultStartURLs = config.DefaultBrowserStartURLs()
}
a.config.Browser.RestoreLastSession = settings.RestoreLastSession
if settings.StartReadyTimeoutMs > 0 {
a.config.Browser.StartReadyTimeoutMs = settings.StartReadyTimeoutMs
} else if a.config.Browser.StartReadyTimeoutMs <= 0 {
a.config.Browser.StartReadyTimeoutMs = browserStartReadyTimeoutMillis(nil)
}
if settings.StartStableWindowMs > 0 {
a.config.Browser.StartStableWindowMs = settings.StartStableWindowMs
} else if a.config.Browser.StartStableWindowMs <= 0 {
a.config.Browser.StartStableWindowMs = browserStartStableWindowMillis(nil)
}
if err := a.config.Save(a.resolveAppPath("config.yaml")); err != nil {
log.Error("浏览器配置保存失败", logger.F("error", err))
return err
}
return nil
}
func (a *App) BrowserCoreList() []BrowserCore {
return a.browserMgr.ListCores()
}
func (a *App) BrowserCoreSave(input BrowserCoreInput) error {
return a.browserMgr.SaveCore(input)
}
func (a *App) BrowserCoreDelete(coreId string) error {
return a.browserMgr.DeleteCore(coreId)
}
func (a *App) BrowserCoreSetDefault(coreId string) error {
return a.browserMgr.SetDefaultCore(coreId)
}
func (a *App) BrowserCoreValidate(corePath string) BrowserCoreValidateResult {
return a.browserMgr.ValidateCorePath(corePath)
}
func (a *App) BrowserCoreExtendedInfo() []BrowserCoreExtendedInfo {
return a.browserMgr.GetCoresExtendedInfo()
}
// BrowserCoreScan 重新扫描 chrome 目录,自动注册新内核
func (a *App) BrowserCoreScan() []BrowserCore {
a.autoDetectCores()
return a.browserMgr.ListCores()
}
// BrowserCoreDownload 在线下载并自动解压配置内核
func (a *App) BrowserCoreDownload(coreName, url, proxyConfig string) error {
if a.ctx == nil {
return fmt.Errorf("app context is nil")
}
go a.browserMgr.DownloadAndExtractCore(a.ctx, coreName, url, proxyConfig)
return nil
}