Hey folks, Last quarter I've been drafting a roadmap to explore the advantages of a new web API, fundamentally different from the DOM. It's aiming to expose similar core web features, but with predictible cost and performance, in a declarative immediate-mode manner.
This research was driven by a desire to reconcile the growing set of differences between today's development practices and existing browser APIs. At the very least, "the UI is a function of state" is a preferred abstraction trend, different from what browsers directly provide yet incredibly prevalent among modern frameworks, so it's worth discussing the implications. "Project Metalhead" is a proposed vector to address that disconnect. It's an alternative to canvas 2D and WebGL, which: * retains accessibility and internationalisation * efficiently renders a direct mapping of existing CSS primitives * supports form controls with native look and feel * makes it easier for web apps to live inside web workers * is specifically designed to work well with frameworks employing a virtual DOM (e.g. React) * can give Mozilla the driving seat for the next round of web performance wins The proposed core graphics API is just a subset of the bigger architectural solution. Investigation is required in order to understand exactly how accessibility, layout and other existing browser behaviour can be a concrete part of this new API. Prior research has given possible but not definitive answers towards making sure there's no room for unintended loss of user control. Obviously such a vector takes us into currently unknown territory, which I'd like us to explore before moving further. I've written a document describing the roadmap, along with details about a proof of concept technical implementation in more detail: https://docs.google.com/document/d/1YLM1_jlTKYvNa04rEHWw6RBEFQO5aAd8vd-S3yXJjI8 There's a lot of info there, so be sure to check out the FAQ, alternatives and implementation. The document is open to everyone at Mozilla, but if you need access to it let me know. Here's a video showcasing the expected performance improvements in action: https://www.youtube.com/watch?v=kDrUfmXLrIU Among other things, the above demo is showing WebRender rendering content running in browsers other than Firefox, powered by a proof of concept of the proposed API. This approach intends to mimic a real world native implementation across various browsers, instead of just a simple polyfill. I'd love getting some opinions and a roadmap review for this. Even though what we have right now is a technically flawed proof of concept implementation and incomplete solution, is it worth pursuing this further? If anyone's interested, I'd also be happy to have a conversation on vidyo about how everything works in more detail. Thanks! Victor *This proposal has been circulating outside of browser-arch last week; in the hopes of getting broader feedback I'm posting it here instead. Apologies if you've seen it already.* _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform