So, what software components do I want to discuss next?

1. GtkInfobar - used in place of dialog windows
2. GtkOverlay - for overlaying info ontop of the webpage
3. Granite.OverlayBar - for showing target URLs, etc
4. WebKit embedding

Regarding downloads:
5. GtkFlowBox
6. GtkGrid
7. The MimeInfo database - for describing what's being downloaded

Then I'd want move onto graphics libraries and kernel features...

Cairo/Pixman, Mesa, and GNOME Scene Kit will all be fascinating topics to discuss.

And so will be the user- and kernel-space implementations of randomness, time, storage, event handling etc. This could get quite philosophical.

@alcinnz if you dive into Cairo... and can make sense of the lifetime of cairo_boxes_t->limits, I'd love to hear about it. I don't understand how it doesn't crash; AFAICT _cairo_boxes_intersect() can call _cairo_boxes_intersect_with_box() with the address of a stack variable, but the returned struct outlives that stack frame‽

@alcinnz It may very well be a bug in a code path that is not commonly hit...

Sigh, I want to make all those internals testable. There is *so* *much* to refactor to get to that point.

@alcinnz I'd love to learn more about Mesa. For example, what are the actual APIs it uses to communicate to the kernel drivers / GPUs? What does it do to upload/download buffers/textures from and to a GPU?

@bugaevc I'm glad I've got some interest here!

And honestly I'll be learning all this stuff then too, I really struggled to comprehend it last time.

Sign in to participate in the conversation

For people who care about, support, or build Free, Libre, and Open Source Software (FLOSS).