Changes in DisplayItemClient for spv2 paint invalidation
1. Save PaintInvalidationReason into the m_cacheGeneration field.
This is for SPv2 rect-based paint invalidation after
PaintController commit. See
https://docs.google.com/document/d/1M669yu7nsF9Wrkm7nQFi3Pp2r-QmCMqm4K7fPPo-doA/edit#
for details.
2. Let it implement cache control directly to avoid the macros.
Used the macros to keep the class a pure interface to avoid
multiple inheritance of non-interfaces. However, with
DisplayItemClient being a non-interface, there is only
one real multiple inheritance (Scrollbar from Widget and
DisplayItemClient) which looks no harm.
BUG=
510908
Committed:
https://crrev.com/b2fce5b3734ef52319ffe52f8c054a496d4e3fa4
Cr-Commit-Position: refs/heads/master@{#402384}