Files
sousa-gecko/testing/web-platform/tests/html/canvas
Philip Rogers c6e0034548 Bug 2054262 [wpt PR 61224] - [html-in-canvas] Support nested html-in-canvas, a=testonly
Automatic update from web-platform-tests
[html-in-canvas] Support nested html-in-canvas

Allow <canvas layoutsubtree> elements to contain other nested
<canvas layoutsubtree> elements, with proper `paint` event ordering,
placeholder recording, snapshot replacement, and origin-clean checks.

Key changes:
1. Compositing decisions: Assign CompositingReason::kCanvasChild to
   direct children of nested layoutsubtree canvases.
2. Paint event ordering: Remove the IsInCanvasSubtree restriction in
   LocalFrameView::DidPaintCanvasChild and RequestCanvasOnpaint. Sort
   canvas_elements_needing_onpaint by DOM tree depth in descending
   order so deeper canvases fire onpaint events first.
3. Placeholder recording: Record a CustomDataOp containing the nested
   canvas's DOMNodeId as a placeholder in HTMLCanvasPainter.
4. cc::PaintRecord placeholder replacement: Add ReplaceCustomData to
   PaintOpBuffer and PaintRecord to swap CustomDataOp placeholders
   with replacement PaintRecords.
5. Snapshot resolution: Add GetCanvasSnapshotCallback to
   PaintArtifactCompositor to retrieve unaccelerated snapshots for
   nested canvases, and update GetCanvasChildPaintRecord to swap
   placeholders with full snapshots.

Bug: 527969910
Change-Id: I65c56531a5e530bd31abbdc2db30fd3b46e6dead
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7964051
Reviewed-by: Stefan Zager <szager@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1660605}

--

wpt-commits: 30e31f4c0f83f093c8d4ad878605a95942633632
wpt-pr: 61224
2026-07-13 14:38:02 +00:00
..
…
…

To update the generated tests, run wpt update-built --include canvas.