Probably more of a cxx@ question than a general chromium-dev@ question, but here's my take...
I wouldn't include "a.h" in "c.h", but I probably would include it in "c.cc". I'm sure other people have different opinions on this, though; the relevant style guide text isn't specific about this.
Here's what the style guide says:
If a source or header file refers to a symbol defined elsewhere, the file should directly include a header file which properly intends to provide a declaration or definition of that symbol. It should not include header files for any other reason.
Do not rely on transitive inclusions. This allows people to remove no-longer-needed #include statements from their headers without breaking clients. This also applies to related headers - foo.cc should include bar.h if it uses a symbol from it even if foo.h includes bar.h.
The weasel phrase here is, "properly intends to provide," because it depends on what you consider "properly intends" to mean.
I've taken this to mean that if you're inheriting from another class (B), that class is going to "properly intend to provide" any symbols (A) that are required to spell/declare, say, virtual method overrides (getA). (These can be forward declarations, though, and not necessarily full definitions.) I've mostly taken this approach because the alternative is tedious and provides no value.
Separately, I don't assume it means that the definition of class B provides a usable definition of class A, so I would still include "a.h" in "c.cc" (where A presumably is going to be used in the definition). I'd probably feel differently about this if we didn't use forward declarations so extensively.
I'd be curious to know what interpretation the IWYU tool uses by default (although this can be tuned with pragmas); jpgravel@ has been trying to get IWYU working in Chromium, and might have more context here. I suspect it might be more mechanical about this.