commit | fcb4e57d56e478c5c7982bff819cf427f41dfd7a | [log] [tgz] |
---|---|---|
author | Philip Rogers <pdr@chromium.org> | Tue Jul 24 05:06:02 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Jul 24 05:06:02 2018 |
tree | 408df73b8ed7e72d9a03e7ff5df0d9fe70ba6b89 | |
parent | bdff024cf35d3ca66c6f01c5dfaa38809d60a84a [diff] |
[BlinkGenPropertyTrees] Record link highlights as foreign layers This patch makes link highlights draw using foreign layers. To achieve this, link highlights have been more tightly integrated into the blink lifecycle. There are five big changes: 1) With BlinkGenPropertyTrees, link highlights paint above all other content and without inherited effects. This will be better UX, and it resolves an issue where link highlight painting could change painting in a subtle way. 2) Link highlight animations require an effect paint property node so a new effect node is now created/updated on LayoutObjects that have link highlights. When link highlights are added or removed, we now mark the associated layout object as needing a paint property update. 3) LinkHighlights::UpdateGeometry has been moved from WebViewImpl::UpdateLifecycle to LocalFrameView::PaintTree. This ensures link highlight layers are created/updated before the drawable layers are collected. 4) CollectLinkHighlightLayersForLayerListRecursively now collects link highlight layers, associates them with the link highlight effect node, and creates foreign layers for them. Because there can be multiple highlights, LinkHighlight has been made a DisplayItemClient to ensure the foreign layer ids are unique. 5) LinkHighlightImplTest has been parameterized to run with and without BlinkGenPropertyTrees which required some refactoring to ensure the test teardown occurred while the BlinkGenPropertyTrees setting was in scope. This change does not remove the GraphicsLayer dependency of the link highlight implementation, which will be required for SPV2, but it moves the implementation much closer to a SPV2-compatible design. BUG=857501 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 Change-Id: I8ed54a56b4cb23ae581e8a848db921baf09afcce Reviewed-on: https://chromium-review.googlesource.com/1125295 Reviewed-by: Tien-Ren Chen <trchen@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#577431}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .