The HTML-in-Canvas API origin trial

(developer.chrome.com)

32 points | by andrewstuart 12 hours ago

7 comments

  • artpar 3 minutes ago

    I wanted to implement a whole canvas native workspace, I started with a html only implementation and "fake canvas" approach but even for moderate number of panels (~50) the responsiveness dropped quite a lot. So I went with a new implementation with "real canvas" and worked out the panels/interaction.

    In terms of performance this approach worked out much better (able to easily handle 1000+ panels/nested panels at 60+ fps) but the complexity goes very high in the implementation of each panel. As in I cant just use for eg a markdown rendering js library or any third party ui component. And frequently make a change would result in massive performance degradation.

    https://canaster.in/

    Currently I have text/markdown/image/audio/video and pdf panel (you can drag and drop files)

    I wonder if i should take another go at it and implement using html-in-canvas api. Afraid of the api being not maintained if they dont see benefit or usage?

    • dvh 1 hour ago

      Wouldn't it make more logical sense to add canvas to html elements? I.e. checkbox.getContext("2d").fillRect(...)

      • azangru 31 minutes ago

        Not if you need your html to adapt to the shape of a 3d object drawn in the canvas.

        What you described is the CSS painting api (part of CSS Houdini)

        • aroman 1 hour ago

          I guess there are uses for that, but as a web game developer, that wouldn’t really help me. The killer feature is input and text rendering.

        • chrismorgan 1 hour ago

          (May 2026.)

          Related bunch of comments from that time: https://news.ycombinator.com/item?id=48201222

          • prathje 48 minutes ago

            I would use it to render HTML elements such as inputs or a website in videos. Even though HTML is powerful the control over every pixel is important for high quality videos.

            • avaer 1 hour ago

              Back in the WebVR days the sentiment was we can never do this because security.

              In my experience with standards bodies/Chrome, anything outside of the owning company's product goals is "no, because security", and then then they flip-flop on that when the browser feature becomes a dependency for something an internal team is working on (which happened many times with WebVR, now WebXR).

              So I'm curious what is Google working on that has this as a dependency, now that they've 180'd on it?

              • bawolff 50 minutes ago

                "Security" is usually not a binary, but how much money you are willing to spend to figure out a way to do it securely. It shouldn't be surprising that chrome spends more resources on things that have a business case than things that do not.

                • thomasikzelf 1 hour ago

                  This had to do with leaking privacy sensitive information such as visited links by reading back pixels from a rendered <a>. They fixed this with a concept they call "read-back-allowed rendering"

                • chews 10 hours ago

                  Yo dog, we put a DOM in your Canvas in your DOM.

                  • drrotmos 25 minutes ago

                    Of course, the natural question is "Can you put a Canvas in the DOM in the Canvas in the DOM?"

                    Here's hoping for it being DOM-in-Canvas all they way down.