Skip to content

VRT: make the Firefox hot-modules capture deterministic - #107

Merged
BitcoinErrorLog merged 5 commits into
release/shop-v0.6.8from
cursor/firefox-hot-modules-vrt-07d2
Sep 24, 2026
Merged

BitcoinErrorLog merged 5 commits into
release/shop-v0.6.8from
cursor/firefox-hot-modules-vrt-07d2

Conversation

@BitcoinErrorLog

Copy link
Copy Markdown
Owner

Summary

Firefox was compositing .marketplace-card-enter in its from-frame (opacity: 0, translateY(18px)) on MarketplaceSocialSurfaces hot-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-noble under lockf /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 89

Test plan

  • Unit tests reject an intrinsic 8×8 image and accept a 280×280 decoded cover.
  • Five clean Linux container runs of MarketplaceSocialSurfaces.vrt.test.tsx.
  • scripts/prepush.sh exit 0.

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.
@BitcoinErrorLog
BitcoinErrorLog merged commit 8165f96 into release/shop-v0.6.8 Sep 24, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant