[Display Locking]: Highlight highest locked ancestor instead of highlighting nodes in locked subtree

Previously DevTools might call getBoundingClientRect on nodes in a
locked subtree from within paint, which might trigger style/layout
because we skipped the locked subtree in those phases (so they
might be still dirty), leading to crashes.

For nodes in a locked subtree, when we want to highlight it, we
should instead highlight the highest locked ancestor instead,
because it will always have up-to-date style & layout values.
The tooltip for the overlay will indicate that we're highlighting
the locked ancestor in that case.
See https://bugs.chromium.org/p/chromium/issues/detail?id=934458#c12
for a screenshot of the UI.

Bug: 934458
Change-Id: I20d85104cbeed36af6ac98b157ab6da31ed73dc3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1528123
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#652682}
13 files changed