refactor(browser): split installation and profile abstractions

A Chromium installation shares one master key across its profiles, but
modeling each profile as its own Browser re-derived the key per profile.
Browser now represents one installation holding its profiles and derives
the key once; new types.Profile/ExtractResult/CountResult carry per-profile
results.
This commit is contained in:
moonD4rk
2026-05-31 03:58:12 +08:00
parent d5dc81f1c0
commit c9f89dc682
28 changed files with 1359 additions and 1205 deletions
+1 -1
View File
@@ -72,4 +72,4 @@ make payload-clean # rm crypto/*.bin
- `modernc.org/sqlite` pinned at v1.31.1 (v1.32+ requires Go 1.21)
- `golang.org/x/text` will be removed in refactoring (use 3-byte UTF-8 BOM instead)
- No `pkg/` + `internal/` directory structure — keep it simple
- No root-level library API — CLI calls `browser.PickBrowsers()` directly
- No root-level library API — CLI calls `browser.DiscoverBrowsersWithKeys()` directly