Add cache-invalidation tests for dynamic containing-block changes - #1146
Closed
nicoburns wants to merge 2 commits into
Closed
Add cache-invalidation tests for dynamic containing-block changes#1146nicoburns wants to merge 2 commits into
nicoburns wants to merge 2 commits into
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787415512-oof-invalidation-tests
branch
from
August 22, 2026 21:01
a214d51 to
16a1739
Compare
staging-devin-ai-integration
Bot
changed the base branch from
devin/1787404843-oof-dispatcher
to
devin/1787413254-grid-oof-edge-cases
August 22, 2026 21:01
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787415512-oof-invalidation-tests
branch
from
August 23, 2026 19:04
16a1739 to
c1f655d
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787413254-grid-oof-edge-cases
branch
2 times, most recently
from
August 23, 2026 19:15
38df075 to
7376524
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787415512-oof-invalidation-tests
branch
from
August 23, 2026 19:15
c1f655d to
93e5553
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787413254-grid-oof-edge-cases
branch
from
August 24, 2026 19:15
7376524 to
0c4873c
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787415512-oof-invalidation-tests
branch
from
August 24, 2026 19:15
93e5553 to
290551f
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787413254-grid-oof-edge-cases
branch
from
August 25, 2026 16:26
0c4873c to
12784ef
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787415512-oof-invalidation-tests
branch
from
August 25, 2026 16:26
290551f to
817c012
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787415512-oof-invalidation-tests
branch
from
August 25, 2026 16:38
817c012 to
cda9158
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787413254-grid-oof-edge-cases
branch
from
August 25, 2026 16:38
12784ef to
3917df7
Compare
|
Absorbed into #1144 (the PerformLayout-only gating fix and the cache-invalidation tests now live there). |
staging-devin-ai-integration
Bot
deleted the branch
devin/1787413254-grid-oof-edge-cases
August 25, 2026 17:09
staging-devin-ai-integration
Bot
deleted the
devin/1787415512-oof-invalidation-tests
branch
August 25, 2026 17:09
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.
Objective
Add hand-written test coverage verifying that out-of-flow hoisting stays correct across relayouts with hot caches when the containing-block structure changes dynamically. Test-only change (no
RELEASES.mdupdate needed).New tests in
tests/hand_written/oof_hoisting.rs:claim_change_relayouts_with_hot_cache: an intermediate ancestor togglesposition: static↔relative; the abspos box must be claimed by (and positioned relative to) the new containing block, and move back when the style is reverted.fixed_claim_change_relayouts_with_hot_cache: a fixed box inside an abspos ancestor is claimed by the root; dirtying only the fixed box still relays it out via the root.content_change_inside_hoisted_subtree: growing a leaf inside a hoisted abspos subtree resizes the hoisted box even when siblings hit the cache.Context
The CSS WPT tests for dynamic containing-block changes (e.g.
transform-containing-block-dynamic-1b) are script-driven and can't run in the current test infrastructure, so these scenarios are ported to hand-written Rust tests instead. Companion Blitz-side tests (style-attribute mutation,:hover-driven restyles, DOM insertion/removal) are added on DioxusLabs/blitz#763.Stacked on #1144. All tests pass against the current implementation — this locks in the cache-invalidation behavior rather than fixing a bug.
Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/65c5463061c8403bade7888271d5eeb4
Open in Devin Desktop: https://dioxus.staging.devinenterprise.com/desktop/session/65c5463061c8403bade7888271d5eeb4?variant=devin-insiders
Requested by: @nicoburns