Repository navigation
refactor: run Chromium through the internal/app pipeline - #656
Merged
Merged
Conversation
Validate, Discover, NewPlan, Execute, and Report run beside today's path: one snapshot per user data dir, each dir's keys retrieved once on first use, every record stamped by the collector. On the Chromium fixtures it writes the extract goldens byte for byte; the CLI switches over later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 5, step 3 of 3 (RFC-012): the
apppipeline, run on the Chromium base.What
New
internal/appwith the stages and values of RFC-001/003:ValidateturnsFlagsinto aRequest: categories are parsed (a repeated one runs once), the format is checked, and the home directory is resolved once. The rules are today's; validate-first ordering and the-pfixes land with the switch-over.Discoverdispatches onDef.Base; Firefox and Safari join in Phase 6.-papplies only with one named browser, as today, and an unreadable user data dir becomes aFailedresult.NewPlanbuildsPlan{Dirs, Files, Extractions, Skipped}. It only stats files. Each file is captured once (Local State, and History for history plus downloads). An extraction isabsentwhen a required source is missing or none of the profile's own optional sources is there;unsupportedwhen the base has no extractor for the category.Executeworks one user data dir at a time: temp snapshot, Capture, extractions in plan order, each one's records to the writer as it finishes, then the snapshot is removed.chromium.KeyLocator+masterkey.RetrieveAll; on macOS the run's login keychain is added to theLocator.Request.Keyssupplies a dump's keys instead, as the parity test does.ok: no problems, including zero records.partial: records plusFails.error: the extractor failed, or there wereFails and no records.absent: a source vanished after planning.Outcomereadsunset, neverok.Reportprints one line per result. It is not wired to the CLI yet; its layout gets a second look when it becomes visible at the switch-over.Parity
TestPipelineGolden(cmd) builds the Chromium fixtures at this OS's table paths under a temp home and runsValidate→Discover→NewPlan→Executewith the fixture keys. It writesextract-csv,extract-json, andextract-cookie-editorbyte for byte, the same goldens today's path writes. The CLI still runs today's path.Tests
Validaterules.Discover: table order,-bfilter,-pwith and without a browser, unreadable dir.Planfor a two-profile dir, compared with DeepEqual.Report.golangci-lintreports 0 issues for darwin, linux, and windows.Merge waits for the Phase 5 Windows smoke.