Implement the Prometheus Chromium browser through Phase 22 - #1
Draft
LakshmanTurlapati wants to merge 463 commits into
Draft
Implement the Prometheus Chromium browser through Phase 22#1LakshmanTurlapati wants to merge 463 commits into
LakshmanTurlapati wants to merge 463 commits into
Conversation
added 30 commits
July 15, 2026 15:59
- Track nested Chromium RED contract commit 2253a8f814 - Preserve ordered non-empty Phase 20 patch 0011
Track Chromium commit 7e59c5126f as ordered Phase 20 patch 0014.
- Freeze fourteen assertion-only adapter and service failures - Compile and link the dedicated extension Agent cohort directly - Preserve reviewed Ninja metadata and export the nested source patch
- Select three nonempty WebUI and native-dialog contract tests - Reject compile, link, crash, timeout, and unexpected-pass failures - Preserve reviewed Ninja metadata and export the nested source patch
- Export nested commit c3dc3f6104 as ordered patch 0015. - Extend verify-phase-22-extension-fixtures.sh: compile and link the new compatibility-catalog objects from a genuinely Siso-known template, run the closed catalog unit suite and the MV2 pinned-policy observation test (separately filtered, exactly-one-test gated), and on a full run generate/validate 22-COMPATIBILITY.json/.md and 22-MV2-OBSERVATION.json against the compiled catalog, plus static claim-language and no-bypass gates and a WebUI-projection check. - Extend verify-phase-22-webui.sh to compile the new catalog object (from the same genuine template) so its focused link keeps working, and widen its focused filter to include the new Parity Matrix regression test. - Add generated 22-COMPATIBILITY.json/.md (five Verified MV3 rows with exact fixture hash/version, build/revision, and bounded limitation) and 22-MV2-OBSERVATION.json (manifest_version 2, native result "rejected", reason "unpacked_load_failed", kept outside the five-row catalog).
…tion - Export nested commit 5c4263e8ed as ordered patch 0016. - Regenerate 22-COMPATIBILITY.json/.md and 22-MV2-OBSERVATION.json from a fresh fixture run at the new nested revision (MV2 result unchanged: rejected, unpacked_load_failed).
Compiles the smoke bootstrap/controller/browsertest and the developer-private caller browser-test pair into a custom browser_tests-derived binary via direct Siso compile-command synthesis, lists all three cohorts, and runs --focused with an --expect-failure mode that freezes the one intended RED assertion (developer-private caller not yet copied into SelectFileDialog::SelectFile).
…mode The developer-private committed-caller cohort now passes for real, so --focused (no --expect-failure) is the correct invocation going forward; --expect-failure is retained only as a historical record of the RED commit this plan started from.
Task 1 (retained RED contract) is complete and verified. Task 2 (GREEN against the built app) is partial: the developer-private caller integration and native install/inspect/reload are verified end to end, but disable onward, the deterministic smoke-phase-22-extensions.sh script, and Tasks 3-4 were not completed. Phase 22 remains open.
Records the blocker, session stopping point, and operator next step for Plan 22-05's partial completion. Does not advance the plan counter or mark Phase 22 progress complete, since Tasks 2 (partial), 3, and 4 remain. Also reverts an unintended side effect from an earlier `gsd-sdk query state.add-blocker` call: that call failed to find STATE.md's actual "Blockers and Deferred Items" heading (its regex expects an exact "Blockers"/"Concerns" heading) but still bumped the frontmatter progress counters (completed_phases 11->12, completed_plans 96->97) as a side effect, which would have falsely implied Phase 22 / Plan 22-05 was complete.
Full scientific-method trail for the kReloaded stall: 10 evidence entries, the three hypotheses eliminated before the confirmed one, the instrumented observation that established it, and the reasoning checkpoint with its falsification test and blind spots. Root cause: the enable-toggle click was issued synchronously from inside the previous transition's ExtensionRegistryObserver callback, so chrome://extensions still rendered stale card state and setEnabled() was called with the value the extension already had -- a silent no-op producing no registry transition. Fix committed separately in the nested Chromium repo. Session intentionally stays open. It exposed two further defects, recorded under "Findings Handed Back", that block an honest kComplete: a renderer terminated for the bad Mojo message "Tried to manipulate an event listener for an unauthorized extension ID." after re-enable, and remove_not_observed_timeout despite an accepted confirmation dialog. Plan 22-05 Tasks 3 and 4 remain unstarted and no requirement is marked complete.
22-05-SUMMARY.md item 6 filed the weak_ptr.h:408 shutdown DCHECK as pre-existing test-environment flakiness. It is Prometheus-owned code: PrometheusBrowserMainExtraParts::PostMainMessageLoopRun() + 96, the same offset in all four occurrences across the 110-run sweep, including 2/30 in an arm with zero extension contact. Corrected in place, with the superseded text preserved inline so the correction is auditable. Folded in the measured crash-list corrections: - "base sequence manager" and the ref_counted.h DCHECK are one crash, not two (single stack through BrowserTaskExecutor::Shutdown()). - Mojo ReceiverSetState: not observed in 110 runs. Recorded as such, NOT upgraded to "benign" - this sweep does not characterize it. - LaunchServices BUS_ADRALN: not observed in 110 runs. Same caveat. - Two previously undocumented SEGV_ACCERR signatures added. New finding doc 22-FINDING-shutdown-weakptr-use-after-destroy.md answers the release-build question rather than assuming the DCHECK is cosmetic. ptr_ == 0 is written by exactly one surviving code path, ~WeakPtrFactoryBase(), so the object is already destroyed. With DCHECKs compiled out the site executes WeakReferenceOwner::Invalidate() on a destroyed owner: an atomic write through a dangling Flag pointer, then a second Release() of a reference the owner already dropped - a double free, or a refcount underflow that frees a Flag still referenced by live WeakPtrs. Not cosmetic. Also corrected two errors that would otherwise have propagated: the ProcessMap race window is a 560-567 ms spread across four measured launches, not a single 562 ms figure; and the build is is_debug=false with dcheck_always_on, an optimized build rather than a debug build.
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.
What changed
Why
This branch carries the Prometheus browser from its Chromium baseline through the first complete native-control and extension-ecosystem milestone. It preserves the Chromium changes as auditable patch stacks while keeping the orchestration, validation, and MCP tooling in this repository.
Impact
The branch introduces the browser implementation and its supporting verification infrastructure. It also hardens extension lifecycle behavior, supervision shutdown, privacy boundaries, and deterministic packaged-app smoke coverage.
Validation
npm testintools/prometheus-mcp: 85/85 passed.