@federicomena Great post! It's cool to see how these various issues can all be solved with a bit more groundwork.

I do wonder though why so many different CSS implementations are required though. Perhaps they can somehow be merged?

@iooioio Historical reasons. ST comes from HippoCanvas and that used libcroco. Librsvg used libcroco but replaced it with servo's stuff. Libcroco became unmaintained more than 10 years ago. GTK3 came up with its own CSS implementation perhaps to avoid using an unmaintained library.

It doesn't really matter that there isn't a single implementation; developers may care about CSS feature parity, but this is never seen by users.

(Now that Mozilla dropped servo too, welp.)

@federicomena Yeah, you're right: From a user perspective it doesn't matter. But now each change requires 3x as much work, right?

The armchair dev in me wonders: If more of these kinds of changes are expected in the future, perhaps it would be more efficient to converge the implementations first and then implement required features once, instead of n times.

Of course, the devil is probably in the details (which I'm not familiar with).

@iooioio I started porting gnome-shell's CSS stuff to Rust, with the idea of having a common implementation with librsvg. gitlab.gnome.org/GNOME/gnome-s

Part of that is seeing what can really be common code, and what is just librsvg-isms. Help appreciated.

Regístrate para participar en la conversación

La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!