I think I'll list out the components of a browser engine to see if I get any bites:

* URI parser
* HTTP client
* HTML parser
* CSS engine
* Block layout
* Inline layout (this is where all the inherent complexity lies, but it's not hard to create something Euro-centric)
* Rendering
* Hooking this pipeline together

Moving beyond the basics of rendering to an image:
* Event dispatch/handling
* Forms
* A browser UI

Anyone interested in tackling any of these?

As for what exists already:

* I've implemented a CSS engine
* Most languages have a URI parser, HTTP client, and HTML parser
* GNOME's Pango can be used for inline layout at least starting off
* Servo's WebRender or GNOME's GSK implements GPU-rendering of the CSS Box Model

The caveat on Pango though is that it would need to be reimplemented in order to support things like floats and webfonts, that's explicitly out of scope for them.

Show thread
Follow

@alcinnz Is this the part where we make our own standard subset? (saying "we don't support floats, etc")

@zachdecook It would be reasonable to say "here's the things we don't support on principle, and here's the things we're struggling with."

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml