docs: cross-host decryption guide and comment cleanup (#614)

* docs(readme): document cross-host decryption workflow

* docs: drop RFC citations and what-comments
This commit is contained in:
Roger
2026-06-13 21:17:00 +08:00
committed by GitHub
parent dc610d3c63
commit 2860bb82f9
31 changed files with 176 additions and 103 deletions
+2 -2
View File
@@ -72,7 +72,7 @@ func TestDiscoverSafariProfiles_OrphanUUIDWithoutDBEntry(t *testing.T) {
// Profile directory with a History.db exists on disk but is absent from
// SafariTabs.db. When the DB is readable and doesn't mention it, we trust
// the DB — the orphan stays hidden because production filters profiles
// with no resolvable data in NewBrowsers anyway. Here we assert discovery
// with no resolvable data in NewBrowser anyway. Here we assert discovery
// returns only what the DB declares.
const dbUUID = "AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE"
const orphanUUID = "11111111-2222-3333-4444-555555555555"
@@ -182,7 +182,7 @@ func TestDiscoverSafariProfiles_DefaultProfileSentinelIgnored(t *testing.T) {
func TestDiscoverSafariProfiles_EmptyProfileDirectoryFiltersOutInNewBrowsers(t *testing.T) {
// Matches the real 4E2D8DD0 orphan on the author's Mac: a profile dir
// listed in neither SafariTabs.db nor containing any extractable data.
// Discovery without the DB surfaces it; NewBrowsers then drops it when
// Discovery without the DB surfaces it; NewBrowser then drops it when
// resolveSourcePaths yields zero matches.
const uuid = "4E2D8DD0-A7D2-4684-939A-898B7675C700"
library := t.TempDir()
+3 -4
View File
@@ -107,10 +107,9 @@ func resolveSourcePaths(sources map[types.Category][]sourcePath) map[types.Categ
// Offset from the Core Data epoch (2001-01-01 UTC) to the Unix epoch.
const coreDataEpochOffset = 978307200
// maxCoreDataSeconds is the largest CFAbsoluteTime that still lands inside
// time.Time.MarshalJSON's [1, 9999] year window. Also bounds the float
// int64 conversion below; Go's spec makes out-of-range conversions return
// an implementation-dependent int64, which could silently corrupt results.
// maxCoreDataSeconds guards against CFAbsoluteTime values that would exceed
// time.Time.MarshalJSON's year-9999 ceiling, and bounds the float→int64
// conversion below (Go spec: out-of-range result is implementation-dependent).
const maxCoreDataSeconds = 252423993600
// coredataTimestamp converts Core Data seconds (CFAbsoluteTime) to UTC.
+1 -1
View File
@@ -76,7 +76,7 @@ func TestNewBrowsers(t *testing.T) {
}
// ---------------------------------------------------------------------------
// NewBrowsers — multi-profile (macOS 14+ named profiles)
// NewBrowser — multi-profile (macOS 14+ named profiles)
// ---------------------------------------------------------------------------
func TestNewBrowsers_MultiProfile(t *testing.T) {