Skip to content

blitz-script: web compat needed by Flexbox Froggy (localStorage, createHTMLDocument, select options) - #757

Open
nicoburns wants to merge 1 commit into
js-wpt-runnerfrom
devin/1787153760-flexbox-froggy-compat
Open

blitz-script: web compat needed by Flexbox Froggy (localStorage, createHTMLDocument, select options)#757
nicoburns wants to merge 1 commit into
js-wpt-runnerfrom
devin/1787153760-flexbox-froggy-compat

Conversation

@nicoburns

@nicoburns nicoburns commented Aug 19, 2026

Copy link
Copy Markdown
Member

Summary

Makes https://flexboxfroggy.com/ work on top of #738. The site failed for three reasons, fixed in order of discovery:

  1. jQuery never initialized: jQuery 3.x's support probes call document.implementation.createHTMLDocument("").body, which threw (implementation was undefined), so $ was never defined and every site script failed. Added a bootstrap-JS document.implementation shim whose createHTMLDocument(title) builds a detached html/head/body tree in the current document's arena and returns a document-like object delegating node creation to the main document (covers jQuery's parseHTML-style template parsing; not a real separate Document).
  2. localStorage is not defined: game.js reads localStorage.colorblind at top level. Added in-memory localStorage/sessionStorage shims (Proxy-based, so named access like localStorage.level follows Storage's WebIDL named getter/setter semantics).
  3. game.start() threw:
    • window.navigator.language.split("-") — added navigator.language/navigator.platform.
    • jQuery's .val(...) on <select> uses elem.options, elem.selectedIndex, and option .selected. Added native accessors in element.rs:
select.options        -> array of <option> wrappers (undefined for non-selects)
select.selectedIndex  -> first option with `selected` attr, else 0 (or -1 when empty/multiple); setter moves the attr
option.selected       -> attribute-backed, with fallback to the select's computed selected index
select.value          -> value of the selected option
option.value          -> `value` attr, falling back to text content

Also extends examples/screenshot_script.rs (offscreen JS+render harness) to load http(s) URLs with prefetched external scripts and to pump JS timers before rendering — jQuery fires its deferred-ready callback via setTimeout, so game.start() only runs once timers are pumped.

After the fixes, the live site renders the full game (level selector "1 of 24", instructions, CSS editor, frog + lilypad on the pond):

flexboxfroggy rendered by blitz

Remaining JS errors on the page are from Google ads/analytics only (adsbygoogle.js internal console.error, and XMLHttpRequest is not defined from analytics.js) and don't affect the game.

Added tests/dom.rs coverage for localStorage, createHTMLDocument, and the <select> accessors (24 tests pass).

Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/446d0cb01a7b4cb3bced0e16920f5e28
Requested by: @nicoburns

WPT results

2825 newly passing, 208 newly failing (net +2617), 4406 other status changes.

Full diff (7439 changed tests)
! Skip => Fail css/CSS2/abspos/abspos-in-block-in-inline-in-relpos-inline.html
! Skip => Fail css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html
! Skip => Fail css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html
+ Fail => Pass css/CSS2/abspos/static-inside-table-cell.html
+ Fail => Pass css/CSS2/borders/border-dynamic-001.xht
+ Fail => Pass css/CSS2/borders/border-dynamic-002.xht
! Skip => Fail css/CSS2/borders/discrete-no-interpolation.html
+ Fail => Pass css/CSS2/box-display/delete-block-in-inlines-beginning-001.xht
+ Fail => Pass css/CSS2/box-display/delete-block-in-inlines-end-001.xht
+ Fail => Pass css/CSS2/box-display/delete-block-in-inlines-middle-001.xht
+ Fail => Pass css/CSS2/box-display/delete-inline-in-blocks-beginning-001.xht
+ Fail => Pass css/CSS2/box-display/delete-inline-in-blocks-end-001.xht
+ Fail => Pass css/CSS2/box-display/delete-inline-in-blocks-middle-001.xht
+ Fail => Pass css/CSS2/box-display/delete-inline-in-blocks-middle-002.xht
+ Fail => Pass css/CSS2/box-display/delete-inline-in-blocks-middle-003.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-begin-001.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-begin-002.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-begin-003.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-end-001.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-end-002.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-end-003.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-middle-001.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-middle-002.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-blocks-n-inlines-middle-003.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-inlines-beginning-001.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-inlines-end-001.xht
+ Fail => Pass css/CSS2/box-display/insert-block-in-inlines-middle-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-beginning-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-end-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-middle-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-middle-002.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-begin-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-begin-002.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-begin-003.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-end-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-end-002.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-end-003.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-middle-001.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-middle-002.xht
+ Fail => Pass css/CSS2/box-display/insert-inline-in-blocks-n-inlines-middle-003.xht
- Pass => Fail css/CSS2/cascade-import/cascade-import-dynamic-001.xht
- Pass => Fail css/CSS2/cascade-import/cascade-import-dynamic-002.xht
- Pass => Fail css/CSS2/cascade-import/cascade-import-dynamic-003.xht
- Pass => Fail css/CSS2/cascade-import/cascade-import-dynamic-004.xht
+ Fail => Pass css/CSS2/cascade-import/cascade-import-dynamic-control.xht
+ Skip => Pass css/CSS2/floats-clear/adjoining-float-new-fc-crash.html
! Skip => Fail css/CSS2/floats-clear/clear-no-interpolation.html
+ Fail => Pass css/CSS2/floats-clear/clear-on-parent-and-child.html
+ Skip => Pass css/CSS2/floats-clear/clearance-containing-fragmented-float-crash.html
+ Fail => Pass css/CSS2/floats-clear/margin-collapse-166.xht
+ Fail => Pass css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html
+ Fail => Pass css/CSS2/floats/adjoining-floats-dynamic.html
+ Fail => Pass css/CSS2/floats/block-in-inline-become-float.html
! Skip => Fail css/CSS2/floats/computed-float-position-absolute.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-1.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-2.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-3.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-4.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-5.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-6.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-7.html
+ Skip => Pass css/CSS2/floats/crashtests/float-dynamic-change-8.html
+ Skip => Pass css/CSS2/floats/float-in-self-painting-inline.html
! Skip => Fail css/CSS2/floats/float-no-interpolation.html
+ Fail => Pass css/CSS2/floats/float-paint-relayout.html
+ Skip => Pass css/CSS2/floats/floats-saturated-position-crash.html
- Pass => Fail css/CSS2/floats/floats-wrap-bfc-with-margin-001.html
- Pass => Fail css/CSS2/floats/floats-wrap-bfc-with-margin-001a.tentative.html
- Pass => Fail css/CSS2/floats/floats-wrap-bfc-with-margin-002.tentative.html
- Pass => Fail css/CSS2/floats/floats-wrap-bfc-with-margin-003.tentative.html
+ Skip => Pass css/CSS2/floats/hit-test-floats-001.html
+ Skip => Pass css/CSS2/floats/hit-test-floats-002.html
+ Skip => Pass css/CSS2/floats/hit-test-floats-003.html
+ Skip => Pass css/CSS2/floats/hit-test-floats-004.html
! Skip => Fail css/CSS2/floats/hit-test-floats-005.html
+ Skip => Pass css/CSS2/floats/inheritance.html
+ Skip => Pass css/CSS2/floats/list-item-taller-than-opportunity-001.html
+ Skip => Pass css/CSS2/floats/remove-float-in-first-line.html
+ Skip => Pass css/CSS2/floats/remove-float-then-abspos-in-inline.html
- Pass => Fail css/CSS2/fonts/font-family-invalid-characters-001.xht
- Pass => Fail css/CSS2/fonts/font-family-invalid-characters-003.xht
! Skip => Fail css/CSS2/linebox/animations/line-height-interpolation.html
+ Skip => Pass css/CSS2/linebox/crashtests/dir-change-simplifed-crash.html
+ Skip => Pass css/CSS2/linebox/inline-children-root-linebox-crash-001.html
+ Skip => Pass css/CSS2/linebox/inline-negative-margin-minmax-crash-001.html
+ Skip => Pass css/CSS2/linebox/needs-layout-transform.html
! Skip => Fail css/CSS2/linebox/vertical-align-top-bottom-001.html
+ Skip => Pass css/CSS2/linebox/video-needs-layout-crash.html
! Skip => Fail css/CSS2/normal-flow/auto-margins-root-element.html
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-append-001.xht
! Skip => Fail css/CSS2/normal-flow/block-in-inline-client-rects-001.html
+ Skip => Pass css/CSS2/normal-flow/block-in-inline-hittest-001.html
! Skip => Fail css/CSS2/normal-flow/block-in-inline-hittest-002.html
+ Skip => Pass css/CSS2/normal-flow/block-in-inline-hittest-float-001.html
+ Skip => Pass css/CSS2/normal-flow/block-in-inline-hittest-float-002.html
+ Skip => Pass css/CSS2/normal-flow/block-in-inline-hittest-margin.html
+ Skip => Pass css/CSS2/normal-flow/block-in-inline-hittest-relpos-zindex.html
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001b.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001c.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001d.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001e.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001f.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001g.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001h.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001i.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001j.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001k.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-001l.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002b.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002c.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002d.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002e.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002f.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002g.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002h.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-002i.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-008b.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-insert-008c.xht
+ Skip => Pass css/CSS2/normal-flow/block-in-inline-insert-018.html
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-remove-000.xht
+ Fail => Pass css/CSS2/normal-flow/block-in-inline-remove-002.xht
+ Fail => Pass css/CSS2/normal-flow/containing-block-percent-margin-bottom.html
+ Fail => Pass css/CSS2/normal-flow/containing-block-percent-margin-left.html
+ Fail => Pass css/CSS2/normal-flow/containing-block-percent-margin-right.html
+ Fail => Pass css/CSS2/normal-flow/containing-block-percent-margin-top.html
+ Fail => Pass css/CSS2/normal-flow/containing-block-percent-padding-left.html
+ Fail => Pass css/CSS2/normal-flow/containing-block-percent-padding-right.html
+ Skip => Pass css/CSS2/normal-flow/crashtests/block-in-inline-ax-crash.html
+ Skip => Pass css/CSS2/normal-flow/crashtests/block-in-inline-remove-crash.html
+ Fail => Pass css/CSS2/normal-flow/dynamic-percentage-height.html
+ Skip => Pass css/CSS2/normal-flow/hit-test-anonymous-block.html
! Skip => Fail css/CSS2/normal-flow/margin-collapse-through-for-various-height-values.tentative.html
+ Fail => Pass css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html
+ Skip => Pass css/CSS2/normal-flow/video-controls-hit-test-order.html
+ Skip => Pass css/CSS2/positioning/abspos-change-in-inline-block.html
+ Skip => Pass css/CSS2/positioning/abspos-inline-container-in-inline-block.html
+ Fail => Pass css/CSS2/positioning/abspos-width-change-inline-container-001.html
+ Skip => Pass css/CSS2/positioning/detach-abspos-before-layout.html
+ Fail => Pass css/CSS2/positioning/dynamic-top-change-001.xht
! Skip => Fail css/CSS2/positioning/line-break-after-leading-float.html
+ Skip => Pass css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html
+ Skip => Pass css/CSS2/positioning/relpos-percentage-left-in-scrollable.html
+ Skip => Pass css/CSS2/positioning/relpos-percentage-top-in-scrollable.html
+ Skip => Pass css/CSS2/replace-root-with-trailing-comment-crash.html
+ Fail => Pass css/CSS2/selectors/dynamic-sibling-combinator-001.xht
+ Fail => Pass css/CSS2/selectors/first-letter-dynamic-003a.xht
+ Fail => Pass css/CSS2/selectors/first-letter-dynamic-003b.xht
+ Fail => Pass css/CSS2/selectors/first-line-floats-004.xht
+ Skip => Pass css/CSS2/syntax/colors-007.html
+ Fail => Pass css/CSS2/tables/border-collapse-dynamic-cell-003.xht
+ Fail => Pass css/CSS2/tables/border-collapse-dynamic-cell-004.xht
+ Fail => Pass css/CSS2/tables/border-collapse-dynamic-cell-005.xht
+ Fail => Pass css/CSS2/tables/border-collapse-dynamic-table-001.xht
+ Fail => Pass css/CSS2/tables/border-collapse-dynamic-table-002.xht
+ Fail => Pass css/CSS2/tables/border-collapse-dynamic-table-003.xht
! Skip => Fail css/CSS2/tables/border-collapse-no-interpolation.html
! Skip => Fail css/CSS2/tables/empty-cells-no-interpolation.html
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-115.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-116.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-121.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-122.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-173.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-174.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-175.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-176.xht
+ Fail => Pass css/CSS2/tables/table-anonymous-objects-214.html
+ Fail => Pass css/CSS2/tables/table-anonymous-text-indent.xht
+ Fail => Pass css/CSS2/tables/table-vertical-align-baseline-008.xht
+ Fail => Pass css/CSS2/text/painting-order-underline-001.xht
! Skip => Fail css/CSS2/visufx/animation/visibility-interpolation.html
+ Fail => Pass css/CSS2/visuren/remove-from-split-inline-1.html
+ Fail => Pass css/CSS2/visuren/remove-from-split-inline-2.html
+ Fail => Pass css/CSS2/visuren/remove-from-split-inline-3.html
+ Fail => Pass css/CSS2/visuren/remove-from-split-inline-4.html
+ Fail => Pass css/CSS2/visuren/remove-from-split-inline-5.html
+ Fail => Pass css/CSS2/visuren/remove-from-split-inline-6.html
+ Fail => Pass css/CSS2/visuren/remove-split-inline-1.html
+ Fail => Pass css/CSS2/zindex/z-index-dynamic-001.xht
+ Skip => Pass css/compositing/background-blending/crashtests/bgblend-root-change.html
! Skip => Fail css/compositing/canvas-composite-modes.html
+ Skip => Pass css/compositing/inheritance.html
! Skip => Fail css/compositing/isolation/animation/isolation-no-interpolation.html
! Skip => Fail css/compositing/mix-blend-mode/mix-blend-mode-creates-stacking-context.html
+ Skip => Pass css/compositing/mix-blend-mode/mix-blend-mode-parsing.html
+ Skip => Pass css/compositing/opacity-and-transform-animation-crash.html
+ Skip => Pass css/compositing/parsing/background-blend-mode-computed-multiple.html
+ Skip => Pass css/compositing/parsing/background-blend-mode-computed.html
+ Skip => Pass css/compositing/parsing/background-blend-mode-invalid.html
+ Skip => Pass css/compositing/parsing/background-blend-mode-valid.html
+ Skip => Pass css/compositing/parsing/isolation-computed.html
+ Skip => Pass css/compositing/parsing/isolation-invalid.html
+ Skip => Pass css/compositing/parsing/isolation-valid.html
+ Skip => Pass css/compositing/parsing/mix-blend-mode-computed.html
+ Skip => Pass css/compositing/parsing/mix-blend-mode-invalid.html
+ Skip => Pass css/compositing/parsing/mix-blend-mode-valid.html
+ Skip => Pass css/compositing/root-element-filter-background-clip-text-crash.html
! Skip => Fail css/css-align/animation/align-no-interpolation.html
! Skip => Fail css/css-align/animation/column-gap-composition.html
! Skip => Fail css/css-align/animation/column-gap-interpolation.html
! Skip => Fail css/css-align/animation/justify-no-interpolation.html
! Skip => Fail css/css-align/animation/row-gap-composition.html
! Skip => Fail css/css-align/animation/row-gap-interpolation.html
! Skip => Fail css/css-align/baseline-of-single-axis-scroll-container.html
! Skip => Fail css/css-align/blocks/align-content-block-display-coverage.html
+ Skip => Pass css/css-align/blocks/align-content-block-simple-height-change.html
! Skip => Fail css/css-align/blocks/align-content-table-cell.html
+ Skip => Pass css/css-align/content-distribution/parse-align-content-001.html
+ Skip => Pass css/css-align/content-distribution/parse-align-content-002.html
+ Skip => Pass css/css-align/content-distribution/parse-align-content-003.html
+ Skip => Pass css/css-align/content-distribution/parse-align-content-004.html
+ Skip => Pass css/css-align/content-distribution/parse-align-content-005.html
+ Skip => Pass css/css-align/content-distribution/parse-justify-content-001.html
+ Skip => Pass css/css-align/content-distribution/parse-justify-content-002.html
+ Skip => Pass css/css-align/content-distribution/parse-justify-content-003.html
+ Skip => Pass css/css-align/content-distribution/parse-justify-content-004.html
+ Skip => Pass css/css-align/content-distribution/parse-justify-content-005.html
+ Skip => Pass css/css-align/content-distribution/place-content-shorthand-001.html
+ Skip => Pass css/css-align/content-distribution/place-content-shorthand-002.html
+ Skip => Pass css/css-align/content-distribution/place-content-shorthand-003.html
+ Skip => Pass css/css-align/content-distribution/place-content-shorthand-004.html
+ Skip => Pass css/css-align/content-distribution/place-content-shorthand-005.html
+ Skip => Pass css/css-align/content-distribution/place-content-shorthand-006.html
! Skip => Fail css/css-align/default-alignment/justify-items-legacy-001.html
+ Skip => Pass css/css-align/default-alignment/parse-align-items-001.html
+ Skip => Pass css/css-align/default-alignment/parse-align-items-002.html
+ Skip => Pass css/css-align/default-alignment/parse-align-items-003.html
+ Skip => Pass css/css-align/default-alignment/parse-align-items-004.html
+ Skip => Pass css/css-align/default-alignment/parse-align-items-005.html
+ Skip => Pass css/css-align/default-alignment/parse-justify-items-001.html
+ Skip => Pass css/css-align/default-alignment/parse-justify-items-002.html
+ Skip => Pass css/css-align/default-alignment/parse-justify-items-003.html
+ Skip => Pass css/css-align/default-alignment/parse-justify-items-004.html
+ Skip => Pass css/css-align/default-alignment/parse-justify-items-005.html
! Skip => Fail css/css-align/default-alignment/parse-justify-items-006.html
+ Skip => Pass css/css-align/default-alignment/place-items-shorthand-001.html
+ Skip => Pass css/css-align/default-alignment/place-items-shorthand-002.html
+ Skip => Pass css/css-align/default-alignment/place-items-shorthand-003.html
+ Skip => Pass css/css-align/default-alignment/place-items-shorthand-004.html
+ Skip => Pass css/css-align/default-alignment/place-items-shorthand-005.html
+ Skip => Pass css/css-align/default-alignment/place-items-shorthand-006.html
+ Skip => Pass css/css-align/default-alignment/shorthand-serialization-001.html
+ Skip => Pass css/css-align/gaps/column-gap-animation-001.html
+ Skip => Pass css/css-align/gaps/column-gap-animation-002.html
+ Skip => Pass css/css-align/gaps/column-gap-animation-003.html
+ Skip => Pass css/css-align/gaps/column-gap-parsing-001.html
+ Skip => Pass css/css-align/gaps/gap-animation-001.html
+ Skip => Pass css/css-align/gaps/gap-animation-002.html
+ Skip => Pass css/css-align/gaps/gap-animation-003.html
+ Skip => Pass css/css-align/gaps/gap-animation-004.html
+ Skip => Pass css/css-align/gaps/gap-normal-computed-001.html
+ Skip => Pass css/css-align/gaps/gap-parsing-001.html
+ Skip => Pass css/css-align/gaps/gap-parsing-002.html
+ Skip => Pass css/css-align/gaps/grid-column-gap-parsing-001.html
+ Skip => Pass css/css-align/gaps/grid-gap-parsing-001.html
+ Skip => Pass css/css-align/gaps/grid-row-gap-parsing-001.html
+ Skip => Pass css/css-align/gaps/legacy-gap-aliases-001.html
+ Skip => Pass css/css-align/gaps/row-gap-animation-001.html
+ Skip => Pass css/css-align/gaps/row-gap-animation-002.html
+ Skip => Pass css/css-align/gaps/row-gap-animation-003.html
+ Skip => Pass css/css-align/gaps/row-gap-parsing-001.html
! Skip => Fail css/css-align/inheritance.html
! Skip => Fail css/css-align/multicol/align-content-multicol.html
+ Skip => Pass css/css-align/parsing/align-content-computed.html
+ Skip => Pass css/css-align/parsing/align-content-invalid.html
+ Skip => Pass css/css-align/parsing/align-content-valid.html
+ Skip => Pass css/css-align/parsing/align-items-computed.html
+ Skip => Pass css/css-align/parsing/align-items-invalid.html
+ Skip => Pass css/css-align/parsing/align-items-valid.html
+ Skip => Pass css/css-align/parsing/align-self-computed.html
+ Skip => Pass css/css-align/parsing/align-self-invalid.html
+ Skip => Pass css/css-align/parsing/align-self-valid.html
+ Skip => Pass css/css-align/parsing/column-gap-computed.html
+ Skip => Pass css/css-align/parsing/column-gap-invalid.html
+ Skip => Pass css/css-align/parsing/column-gap-valid.html
+ Skip => Pass css/css-align/parsing/gap-computed.html
+ Skip => Pass css/css-align/parsing/gap-invalid.html
+ Skip => Pass css/css-align/parsing/gap-shorthand.html
+ Skip => Pass css/css-align/parsing/gap-valid.html
+ Skip => Pass css/css-align/parsing/grid-column-gap-computed.html
+ Skip => Pass css/css-align/parsing/grid-column-gap-invalid.html
+ Skip => Pass css/css-align/parsing/grid-column-gap-valid.html
+ Skip => Pass css/css-align/parsing/grid-gap-computed.html
+ Skip => Pass css/css-align/parsing/grid-gap-invalid.html
+ Skip => Pass css/css-align/parsing/grid-gap-shorthand.html
+ Skip => Pass css/css-align/parsing/grid-gap-valid.html
+ Skip => Pass css/css-align/parsing/grid-row-gap-computed.html
+ Skip => Pass css/css-align/parsing/grid-row-gap-invalid.html
+ Skip => Pass css/css-align/parsing/grid-row-gap-valid.html
+ Skip => Pass css/css-align/parsing/justify-content-computed.html
+ Skip => Pass css/css-align/parsing/justify-content-invalid.html
+ Skip => Pass css/css-align/parsing/justify-content-valid.html
! Skip => Fail css/css-align/parsing/justify-items-computed.html
+ Skip => Pass css/css-align/parsing/justify-items-invalid.html
+ Skip => Pass css/css-align/parsing/justify-items-valid.html
+ Skip => Pass css/css-align/parsing/justify-self-computed.html
+ Skip => Pass css/css-align/parsing/justify-self-invalid.html
+ Skip => Pass css/css-align/parsing/justify-self-valid.html
+ Skip => Pass css/css-align/parsing/place-content-computed.html
+ Skip => Pass css/css-align/parsing/place-content-invalid.html
+ Skip => Pass css/css-align/parsing/place-content-shorthand.html
+ Skip => Pass css/css-align/parsing/place-content-valid.html
! Skip => Fail css/css-align/parsing/place-items-computed.html
+ Skip => Pass css/css-align/parsing/place-items-invalid.html
+ Skip => Pass css/css-align/parsing/place-items-shorthand.html
+ Skip => Pass css/css-align/parsing/place-items-valid.html
+ Skip => Pass css/css-align/parsing/place-self-computed.html
+ Skip => Pass css/css-align/parsing/place-self-invalid.html
+ Skip => Pass css/css-align/parsing/place-self-shorthand.html
+ Skip => Pass css/css-align/parsing/place-self-valid.html
+ Skip => Pass css/css-align/parsing/row-gap-computed.html
+ Skip => Pass css/css-align/parsing/row-gap-invalid.html
+ Skip => Pass css/css-align/parsing/row-gap-valid.html
+ Skip => Pass css/css-align/self-alignment/parse-align-self-001.html
+ Skip => Pass css/css-align/self-alignment/parse-align-self-002.html
+ Skip => Pass css/css-align/self-alignment/parse-align-self-003.html
+ Skip => Pass css/css-align/self-alignment/parse-align-self-004.html
+ Skip => Pass css/css-align/self-alignment/parse-align-self-005.html
+ Skip => Pass css/css-align/self-alignment/parse-justify-self-001.html
+ Skip => Pass css/css-align/self-alignment/parse-justify-self-002.html
+ Skip => Pass css/css-align/self-alignment/parse-justify-self-003.html
+ Skip => Pass css/css-align/self-alignment/parse-justify-self-004.html
+ Skip => Pass css/css-align/self-alignment/parse-justify-self-005.html
+ Skip => Pass css/css-align/self-alignment/place-self-shorthand-001.html
+ Skip => Pass css/css-align/self-alignment/place-self-shorthand-002.html
+ Skip => Pass css/css-align/self-alignment/place-self-shorthand-003.html
+ Skip => Pass css/css-align/self-alignment/place-self-shorthand-004.html
+ Skip => Pass css/css-align/self-alignment/place-self-shorthand-005.html
+ Skip => Pass css/css-align/self-alignment/place-self-shorthand-006.html
+ Fail => Pass css/css-anchor-position/anchor-abspos-to-fixedpos-002.html
+ Fail => Pass css/css-anchor-position/anchor-abspos-to-fixedpos-003.html
! Skip => Fail css/css-anchor-position/anchor-animation-dynamic-default.html
! Skip => Fail css/css-anchor-position/anchor-animation-dynamic-name.html
! Skip => Fail css/css-anchor-position/anchor-animation-iacvt.html
! Skip => Fail css/css-anchor-position/anchor-animation.html
! Skip => Fail css/css-anchor-position/anchor-center-001.html
! Skip => Fail css/css-anchor-position/anchor-center-fallback-transition-behavior.html
! Skip => Fail css/css-anchor-position/anchor-center-offset-change.html
+ Skip => Pass css/css-anchor-position/anchor-display-none-crash.html
! Skip => Fail css/css-anchor-position/anchor-fallback-invalidation.html
! Skip => Fail css/css-anchor-position/anchor-fallback-scroll-axis.html
! Skip => Fail css/css-anchor-position/anchor-function-chain.html
! Skip => Fail css/css-anchor-position/anchor-function-pseudo-element-basic.html
! Skip => Fail css/css-anchor-position/anchor-function-pseudo-element-implicit-anchor.html
! Skip => Fail css/css-anchor-position/anchor-function-zero-fallback.html
! Skip => Fail css/css-anchor-position/anchor-getComputedStyle-001.html
! Skip => Fail css/css-anchor-position/anchor-getComputedStyle-002.html
! Skip => Fail css/css-anchor-position/anchor-getComputedStyle-003.html
! Skip => Fail css/css-anchor-position/anchor-getComputedStyle-004.html
! Skip => Fail css/css-anchor-position/anchor-ident-function.html
! Skip => Fail css/css-anchor-position/anchor-in-anchor-positioned.html
! Skip => Fail css/css-anchor-position/anchor-in-popover.html
! Skip => Fail css/css-anchor-position/anchor-in-scroller-with-left-side-scrollbar.html
! Skip => Fail css/css-anchor-position/anchor-inherited.html
! Skip => Fail css/css-anchor-position/anchor-invalid-fallback.html
+ Skip => Pass css/css-anchor-position/anchor-mathml-crash.html
! Skip => Fail css/css-anchor-position/anchor-name-001.html
! Skip => Fail css/css-anchor-position/anchor-name-002.html
! Skip => Fail css/css-anchor-position/anchor-name-003.html
! Skip => Fail css/css-anchor-position/anchor-name-004.html
! Skip => Fail css/css-anchor-position/anchor-name-008.html
! Skip => Fail css/css-anchor-position/anchor-name-basics.html
! Skip => Fail css/css-anchor-position/anchor-name-cross-shadow.html
! Skip => Fail css/css-anchor-position/anchor-name-in-shadow-002.html
! Skip => Fail css/css-anchor-position/anchor-name-in-shadow.html
! Skip => Fail css/css-anchor-position/anchor-name-inline-001.html
+ Skip => Pass css/css-anchor-position/anchor-name-multicol-001.html
! Skip => Fail css/css-anchor-position/anchor-name-multicol-002.html
! Skip => Fail css/css-anchor-position/anchor-name-mutation.html
+ Skip => Pass css/css-anchor-position/anchor-name-table-col-crash.html
+ Skip => Pass css/css-anchor-position/anchor-parse-invalid.html
! Skip => Fail css/css-anchor-position/anchor-parse-valid.html
! Skip => Fail css/css-anchor-position/anchor-position-001.html
! Skip => Fail css/css-anchor-position/anchor-position-002.html
! Skip => Fail css/css-anchor-position/anchor-position-003.html
! Skip => Fail css/css-anchor-position/anchor-position-004.html
! Skip => Fail css/css-anchor-position/anchor-position-borders-001.html
! Skip => Fail css/css-anchor-position/anchor-position-borders-002.html
! Skip => Fail css/css-anchor-position/anchor-position-dynamic-001.html
! Skip => Fail css/css-anchor-position/anchor-position-dynamic-002.html
! Skip => Fail css/css-anchor-position/anchor-position-dynamic-003.html
! Skip => Fail css/css-anchor-position/anchor-position-dynamic-004.html
! Skip => Fail css/css-anchor-position/anchor-position-flip-sibling-index.html
! Skip => Fail css/css-anchor-position/anchor-position-inline-001.html
! Skip => Fail css/css-anchor-position/anchor-position-inline-002.html
! Skip => Fail css/css-anchor-position/anchor-position-inline-003.html
! Skip => Fail css/css-anchor-position/anchor-position-multicol-001.html
! Skip => Fail css/css-anchor-position/anchor-position-multicol-005.html
! Skip => Fail css/css-anchor-position/anchor-position-multicol-006.html
! Skip => Fail css/css-anchor-position/anchor-position-multicol-colspan-001.html
! Skip => Fail css/css-anchor-position/anchor-position-multicol-colspan-002.html
+ Fail => Pass css/css-anchor-position/anchor-position-non-anchored-fallback.html
+ Skip => Pass css/css-anchor-position/anchor-position-principal-box.html
! Skip => Fail css/css-anchor-position/anchor-position-sibling-index.html
! Skip => Fail css/css-anchor-position/anchor-position-writing-modes-001.html
! Skip => Fail css/css-anchor-position/anchor-position-writing-modes-002.html
! Skip => Fail css/css-anchor-position/anchor-positioned-containing-block-resize.html
! Skip => Fail css/css-anchor-position/anchor-query-custom-property-registration.html
! Skip => Fail css/css-anchor-position/anchor-query-fallback.html
! Skip => Fail css/css-anchor-position/anchor-scope-basic.html
! Skip => Fail css/css-anchor-position/anchor-scope-display-contents.tentative.html
# ... and 7039 more (see the workflow logs)

Generated by the WPT workflow.

@staging-devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@staging-devin-ai-integration

Copy link
Copy Markdown
Contributor

GUI test: Flexbox Froggy plays end-to-end in the Blitz browser

Tested this branch in the full browser GUI (release build, cpu-pixels, software Vulkan on a headless VM) against live https://flexboxfroggy.com/.

It should render the Flexbox Froggy game UI — ✅
It should move the frog when typing justify-content: flex-end; and advance to Level 2 via Next — ✅

🟢 Level 1 rendered 🟢 Frog moved after typing CSS
Level 1 Frog moved
Level progression (localStorage shim)

Clicking Next advanced to Level 2 of 24:

Level 2

Note: unrelated blank-window issue with plain cargo builds

With cargo build (no dx), the browser chrome's asset!("../assets/browser.css") resolves to the dx placeholder ("This should be replaced by dx as part of the build process…"), leaving the chrome unstyled and collapsing .tab-content — so the page area looks blank. Worked around for testing by inlining browser.css (reverted afterwards). Not caused by this PR; dx on the test box is 0.8.0-alpha.1 vs dioxus 0.7.9 in-repo.

Blank before workaround

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