VRT: make the Firefox hot-modules capture deterministic - #107
Merged
BitcoinErrorLog merged 5 commits intoSep 24, 2026
Merged
Conversation
MarketplaceSocialSurfaces hot-marketplace-modules-desktop was re-pinned when Firefox composited the card-enter from-frame (opacity 0, translateY(18px)) and the boots cover was missing. The capture now cancels that animation, pins the settled frame, and waits until the cover has a real layout box. The existing Linux baselines are unchanged.
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.
Summary
Firefox was compositing
.marketplace-card-enterin its from-frame (opacity: 0,translateY(18px)) onMarketplaceSocialSurfaceshot-marketplace-modules-desktop. The boots cover then stayed invisible and the gradient icon showed through. That is the difference between the re-pinned Linux baseline (96cd7f284, cover present) and the baseline it replaced (cover absent). Re-pinning recorded whichever frame CI happened to capture.The capture now cancels in-flight animations, pins the settled frame on the card, and waits until each expected cover has a decoded bitmap and a layout box of at least 64px. An 8×8 data URL that has not stretched into the card does not count. The existing Linux baselines are unchanged.
Proof
Five consecutive runs in
mcr.microsoft.com/playwright:v1.60.0-nobleunderlockf /Volumes/t7/vibes-dev/.locks/heavy.lock, browsers chromium and firefox. Each run: 2 files, 12 tests passed. No screenshot files changed.PREPUSH OK 8c85755cb94846a7498eae9004e47786bc668198 89Test plan
MarketplaceSocialSurfaces.vrt.test.tsx.scripts/prepush.shexit 0.