Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Let's build a browser engine, part 7: Intro to Painting (limpet.net)
90 points by mbrubeck on Nov 5, 2014 | hide | past | favorite | 9 comments


Thank you for making these. It is a neat way to see what goes on behind the scenes.


You're welcome! :D


Nice work. Very well explained.

However, the main difficulty of building a browser engine is (IMHO) the fact that it should update the display incrementally whenever a change in the DOM-tree or the CSS occurs. That is, an update should cause a minimal (or close-to-minimal) number of (paint) operations to be performed. I'm looking forward to the discussion of this topic :)


I doubt that I'll manage to implement incremental layout or display-list invalidation in robinson. If you're curious about how it works other browsers, though, check out http://www.html5rocks.com/en/tutorials/internals/howbrowsers...


Even if you don't implement it, it could be nice if you discussed it in abstract terms. That is describe the architecture, rather than write a complete implementation.

IMHO, architecture is more important than implementation, especially when explaining things.


Perhaps you could add a footnote at the end regarding this?


I think I'll discuss some "advanced topics" like this in a separate post near the end of the series.


This is currently implemented in Servo, but it is not a trivial problem. It was only added in the past several months, if I recall correctly (pcwalton will have to clarify). This is but a demonstration engine for educational purposes - kind of like Featherweight Java.


For reference, here the starting point of the Servo implementation:

https://github.com/servo/servo/pull/3590




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: