Intent to Experiment: HTML-in-canvas

132 views
Skip to first unread message

Philip Rogers

unread,
Apr 9, 2026, 2:50:11 PM (13 hours ago) Apr 9
to blink-dev
Contact emails
chri...@chromium.orgsche...@chromium.orgp...@chromium.orgsza...@chromium.orgfoo...@chromium.org

Explainer
https://github.com/WICG/html-in-canvas

Specification
https://github.com/whatwg/html/pull/11588

Summary
HTML-in-canvas enables customizing the rendering of html using canvas with three new primitives: an attribute to opt-in canvas elements (layoutsubtree), methods to draw child elements (2d: drawElementImage, webgl: texElementImage2D, webgpu: copyElementImageToTexture), and a paint event which fires to handle updates.

Blink component
Blink>Canvas

Web Feature ID
canvas

Goals for experimentation
API shape

Origin Trial documentation link
https://github.com/WICG/html-in-canvas

Goals for experimentation
None

Risks


Interoperability and Compatibility
This API exposes a small amount of new information which carries an interop risk, such as the pixels of gradients and form controls.

Gecko: Negative (https://github.com/mozilla/standards-positions/issues/1076) Mozilla did not object to advancing the spec to stage 2 (consensus around rough API shape), and we are actively working to address their concerns about fingerprinting and compatibility.

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/630)

Web developers: Positive (https://github.com/whatwg/html/issues/10650#issuecomment-3324124682) We have positive signals from users of the DevTrial: https://github.com/whatwg/html/issues/10650#issuecomment-3324124682

Other signals:

Security
https://github.com/WICG/html-in-canvas?tab=readme-ov-file#privacy-preserving-painting

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

No information provided


Debuggability
Content under canvas can be debugged like regular DOM content via devtools.

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/wpt_internal/html/canvas/drawElementImage/

DevTrial instructions
https://github.com/WICG/html-in-canvas?tab=readme-ov-file#developer-trial-dev-trial-information

Flag name on about://flags
chrome://flags/#canvas-draw-element

Finch feature name
CanvasDrawElement

Requires code in //chrome?
False

Tracking bug
https://crbug.com/500967896

Measurement
HTMLInCanvas UseCounter

Estimated milestones
Origin trial desktop first148
Origin trial desktop last151
DevTrial on desktop138
Origin trial Android first148
Origin trial Android last151
DevTrial on Android138
Origin trial WebView first148
Origin trial WebView last151


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5172548013916160

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a473b17f-def6-4bb7-85ee-344947c5ecabn%40chromium.org


This intent message was generated by Chrome Platform Status.

Mike Taylor

unread,
Apr 9, 2026, 3:49:11 PM (12 hours ago) Apr 9
to Philip Rogers, blink-dev

Exciting stuff - 

LGTM to experiment from M148 to M151 inclusive.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJgFLLtkgaP9f_Dz16zP2s3WQ_3iTrwdLs1k2OYCMUeZzbzUxg%40mail.gmail.com.

Mike Taylor

unread,
Apr 9, 2026, 3:50:47 PM (12 hours ago) Apr 9
to Philip Rogers, blink-dev

Let me amend... LGTM once you've requested Privacy, Security, and Debuggability bits in your Chromestatus entry (in the Origin Trial section).

Philip Rogers

unread,
Apr 9, 2026, 3:55:03 PM (12 hours ago) Apr 9
to blink-dev, Mike Taylor, blink-dev, Philip Rogers
Correction: Gecko's position should be "No Signal". I've updated this in the Chromestatus link.

On Thursday, April 9, 2026 at 12:50:47 PM UTC-7 Mike Taylor wrote:

Let me amend... LGTM once you've requested Privacy, Security, and Debuggability bits in your Chromestatus entry (in the Origin Trial section).

On 4/9/26 3:48 p.m., Mike Taylor wrote:

Exciting stuff - 

LGTM to experiment from M148 to M151 inclusive.

On 4/9/26 2:49 p.m., Philip Rogers wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

Jake Archibald

unread,
Apr 9, 2026, 4:10:04 PM (12 hours ago) Apr 9
to blink-dev, Philip Rogers, Mike Taylor, blink-dev
Thank you. We've been giving feedback on this API, and building demos to test parts of it. We definitely have concerns around the API, such as there being no way to set the texture size in WebGL, but we don't have an official positive/negative position right now.

When we have a position, we'll assign a label to https://github.com/mozilla/standards-positions/issues/1076. For comparison, see the current version of the translation API which has a negative position.

Jake.
Reply all
Reply to author
Forward
0 new messages