fix: per-tier master-key retrievers for mixed-cipher profiles (#579)

* fix: per-tier master-key retrievers for mixed-cipher profiles
This commit is contained in:
Roger
2026-04-20 17:33:38 +08:00
committed by GitHub
parent e50c623db0
commit 7b9a973c9c
29 changed files with 699 additions and 227 deletions
+7 -5
View File
@@ -125,13 +125,15 @@ func platformBrowsers() []types.BrowserConfig {
}
}
// newPlatformInjector returns a closure that injects the Chromium master-key
// retriever chain into each Browser.
// newPlatformInjector returns a closure that wires the Windows v10 (DPAPI) and v20 (ABE) Chromium
// master-key retrievers into each Browser. Per issue #578 the two tiers are orthogonal — a single
// Chrome profile upgraded from pre-127 carries v20 cookies alongside v10 passwords — so both
// retrievers run independently rather than as a first-success chain.
func newPlatformInjector(_ PickOptions) func(Browser) {
retriever := keyretriever.DefaultRetriever()
retrievers := keyretriever.DefaultRetrievers()
return func(b Browser) {
if s, ok := b.(retrieverSetter); ok {
s.SetRetriever(retriever)
if s, ok := b.(keyRetrieversSetter); ok {
s.SetKeyRetrievers(retrievers)
}
}
}