Fix caret paint invalidation issues
- We should save CaretDisplayItemClient::m_previousLayoutBlock only if
it has not been saved since the last paint invalidation, because we
use it to invalidate the caret in the layout block of the previous
paint invalidation.
- Caret painted output can change paint offset without visual rect
change. Invalidate display item client if the block is doing full
paint invalidation.
BUG=
699044,
698662
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Review-Url:
https://codereview.chromium.org/2736213002
Cr-Commit-Position: refs/heads/master@{#455657}
Committed:
https://chromium.googlesource.com/chromium/src/+/0f9cfc4753603c7b19d8ea434ddd6326d5417894