There is lots to learn about the Chromium code base, both at a macro level (how the processes are laid out, how IPC works, the flow of a URL load), and at a micro level (code idioms such as smart pointer usage guidelines, message loops, common threads, threading guidelines, string usage guidelines, etc). Learning to do things the Chromium wayCoding style: If you’ve coded elsewhere, the chrome guidelines (and code reviewer comments) might seem strict. For example, extra spaces at the end of lines are forbidden. All comments should be legitimate English sentences, including the ending period. There is a strict 80 column limit (with exceptions for things that can’t possibly be broken up). A personal learning planEventually you’ll have your build setup, and want to get to work. In a perfect world, we would have all the time we needed to read every line of code and understand it before writing our first line of code. In practice, this is impossible. So, what can we do? We suggest you develop your own plan for learning what you need, here are some suggested starting points. Fortunately for us, Chromium has some top quality design docs. While these can go a bit stale (for instance, when following along, you may find references to files that have been moved or renamed or refactored out of existence), it is awesome to be able to comprehend the way that the code fits together overall.
BlinkSometimes to make a fix or add a feature to Chromium, the right place to put it is in Blink (formerly WebKit). There is a (2012) “How Webkit works” slide deck. While Blink has forked, some of this may still be relevant. There is also a slide that explains a basic workflow for WebKit development for people who are already familiar with Chromium development. |
For Developers >