feat: add Safari browser support with history extraction (#564)

* feat: add Safari browser support with history extraction
* fix: use correlated subquery to ensure title matches latest visit
This commit is contained in:
Roger
2026-04-11 23:47:53 +08:00
committed by GitHub
parent 26817b44d5
commit 509cdc2468
11 changed files with 639 additions and 0 deletions
+12
View File
@@ -8,6 +8,7 @@ import (
"github.com/moond4rk/hackbrowserdata/browser/chromium"
"github.com/moond4rk/hackbrowserdata/browser/firefox"
"github.com/moond4rk/hackbrowserdata/browser/safari"
"github.com/moond4rk/hackbrowserdata/crypto/keyretriever"
"github.com/moond4rk/hackbrowserdata/log"
"github.com/moond4rk/hackbrowserdata/types"
@@ -150,6 +151,17 @@ func newBrowsers(cfg types.BrowserConfig) ([]Browser, error) {
}
return result, nil
case types.Safari:
found, err := safari.NewBrowsers(cfg)
if err != nil {
return nil, err
}
result := make([]Browser, len(found))
for i, b := range found {
result[i] = b
}
return result, nil
default:
return nil, fmt.Errorf("unknown browser kind: %d", cfg.Kind)
}