mirror of
https://github.com/black-ant/Ant-Browser.git
synced 2026-07-14 18:48:55 +08:00
channel: master
version: 1.2.0
source-ref: D:\code\open_source\ant-chrome master
source-commit: f3d7ec5
merged-public-base: 3d264eb
88 lines
3.1 KiB
Go
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
|
|
}
|