Close isu issue 374: Bing trending-now carousel hydrates offline master
The Bing carousel useEffect no longer aborts during real-web hydration. With the carousel JSON + PopNow thumbnails cached, the offline bing.com scenario now fetches /hp/api/v1/carousel and renders all 20 TrendingNow tiles into #crs_pane on both desktop (1365x900) and mobile (390x844) viewports during initial load — verified before the click, so it does not depend on the interaction step. This was fixed by previously-merged work: 978e552 (carousel hydration blockers) and a20d53f (rooting due-timer callbacks across mid-drain GC, which kept the Preact effect's timer callbacks alive). The carousel headlines asserted here appear only in the cached carousel JSON, never in the static snapshot shell, so the assertions exercise the live hydration path end to end. Lock the fix in with a regression guard: assert two structurally-distinct TrendingNow headlines ("Nya avslöjanden..." and "Putin: Vill se full demilitarisering av Ukraina") on both viewports. A single coincidental match can no longer pass, and an effect that aborts partway through (the #374 failure mode) is caught. Scope: this resolves the carousel useEffect defect only. The separate modules_wrapper region remains empty and is tracked by isu issue 375; the bing.com.we scenario stays # xfail for the #280/#305 screenshot-parity gap (the snapshot's daily background differs from the Chromium golden). cargo run -p we-e2e -- --real-web --out-dir crates/e2e/artifacts stays green: 16/16 (bing.com counts as xfail, carousel asserts pass). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>