The number of compilation units in Chromium is constantly increasing. At the same time, the amount of code in header files increases. Over time, we get more and more compilation units, and each of them includes more and more. This leads to O(n^2) time complexity when it comes to building Chromium. This even matters when making distributed builds (with GOMA, icecc, etc.), but it's obviously even more critical when building on a single computer.
Therefore it's important to forward-declare what we can, and avoid unnecessary includes..
Comment 1 by bugdroid1@chromium.org
, Sep 19 2017