Reland: [BGPT] Move link highlights from WebViewImpl to Page

This is a reland of [1] with a fix for animations not starting. This
patch adds a CompositorAnimationHost to LinkHighlights, similar to how
ScrollingCoordinator works, so that the link highlight timeline is
connected to an animation host. A basic test has been added.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1123315

Link highlights are currently owned by the WebViewImpl so their updates
(creation, deletion, layout, paint) happen entirely outside the main
LocalFrameView update lifecycle. In BlinkGenPropertyTrees we will need
to create foreign layers for link highlights which needs to happen after
the link highlight update (LinkHighlightImpl::UpdateGeometry) but before
blink does the cc update (PaintArtifactCompositor::Update). This patch
moves link highlights from WebViewImpl to Page which will let us manage
their lifecycle from the main blink lifecycle update.

This patch does not fix the issue of link highlights getting painted via
a cc paint callback, which will need to be fixed for SPV2, but this does
move us closer towards that goal.

Bug: 857501
Change-Id: I921594484f7b41844b3e2b49c6ef79458f0e7c5b
Cq-Include-Trybots: luci.chromium.try:linux-blink-gen-property-trees;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1134413
Reviewed-by: Tien-Ren Chen <trchen@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575501}
10 files changed