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
+2 -2
View File
@@ -155,9 +155,9 @@ func resolveKeychainPassword(flagPassword string) string {
return password
}
// newPlatformInjector lazily wires retrievers (and the macOS keychain password) into each Browser;
// newCredentialInjector lazily wires retrievers (and the macOS keychain password) into each Browser;
// `-b firefox` never triggers a keychain prompt because lazy resolution skips browsers that need neither.
func newPlatformInjector(opts PickOptions) func(Browser) {
func newCredentialInjector(opts PickOptions) browserInjector {
var (
password string
retrievers keyretriever.Retrievers