New issue
Advanced search Search tips

Issue 870521 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Feature



Sign in to add a comment

Establish property tree node isolation on containment

Project Member Reported by vmp...@chromium.org, Aug 3

Issue description

When we're in contain: paint, we should be able to establish a property tree node isolation, meaning the contain paint element is guaranteed to have property tree nodes that serve as ancestors of all descendants in the subtree.

This, in turn, allows us to optimize updates when the property tree structure changes outside of the contain paint. That is, we don't have to update the tree structure below the contain paint element, if nothing has changed in the subtree. 
 
This would be useful for early-outing from the prepaint tree walk. There might be a small difficulty for the scroll tree because we'll need to create a no-op scroll node for the contain: paint object.
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a75983ce848a502513d4be86e91afb7bfc8418fe

commit a75983ce848a502513d4be86e91afb7bfc8418fe
Author: Vladimir Levin <vmpstr@chromium.org>
Date: Wed Aug 22 18:18:04 2018

Ensure that LayoutMenuList has LocalBorderBoxProperties.

LayoutMenuList can have an overflow clip, but UpdateLocalBorderBoxContext doesn't
check that, relying on other conditions to check if we need local border box properties.

This patch changes it so that it also explicitly considers existence of the overflow
clip when deciding whether to create local border box properites.

This is needed for us to be able to get the ContentsProperties, which would include
the overflow clip. Existence of ContentsProperties, or our ability to get them,
depends on the existence of the LocalBorderBoxProperties.

R=pdr@chromium.org, chrishtr@chromium.org

Bug: 870521
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1a6c08f94c3066c7524b2557b4f884e3fc7dd61a
Reviewed-on: https://chromium-review.googlesource.com/1183851
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: vmpstr <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585171}
[modify] https://crrev.com/a75983ce848a502513d4be86e91afb7bfc8418fe/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
[modify] https://crrev.com/a75983ce848a502513d4be86e91afb7bfc8418fe/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c7bd7f4b6b155cd29ad883085191e36f57bc9ca

commit 2c7bd7f4b6b155cd29ad883085191e36f57bc9ca
Author: Vladimir Levin <vmpstr@chromium.org>
Date: Fri Aug 24 00:34:51 2018

Skip empty-clip fragments when creating flow thread contexts.

This patch ensures that when the fragmentainer iterator returns a
fragment that has an empty clip, we skip generating a fragment for it.

This is important since a fragment that has an empty clip can share
the logical top with the subsequent fragment, meaning that we cannot
use the logical top to uniquely identify a fragment. This patch addresses
this issue.

Furthermore, we typically skip painting fragments that have empty clips
anyway (for obvious reasons), so this should not impact painted contents.

R=chrishtr@chromium.org, wangxianzhu@chromium.org

Bug: 870521
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I9f2f6311e0c3c75e4a8d114f13476ce8774e8218
Reviewed-on: https://chromium-review.googlesource.com/1187234
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585671}
[modify] https://crrev.com/2c7bd7f4b6b155cd29ad883085191e36f57bc9ca/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
[modify] https://crrev.com/2c7bd7f4b6b155cd29ad883085191e36f57bc9ca/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/17957e83e387cb9bce164932fa3fa02cafdeaffb

commit 17957e83e387cb9bce164932fa3fa02cafdeaffb
Author: Vladimir Levin <vmpstr@chromium.org>
Date: Thu Sep 06 20:18:32 2018

Add code to ignore parent alias clips in PaintChunksToCcLayer conversion

This patch adds the ability to create parent alias clips, with the code
to skip those when generating display item lists. Also adds tests.

R=trchen@chromium.org, chrishtr@chromium.org

Bug: 870521
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia60e89a7c74bcda785c8b8cce971eda48d2e0fd6
Reviewed-on: https://chromium-review.googlesource.com/1208717
Commit-Queue: vmpstr <vmpstr@chromium.org>
Reviewed-by: Tien-Ren Chen <trchen@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589268}
[modify] https://crrev.com/17957e83e387cb9bce164932fa3fa02cafdeaffb/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer.cc
[modify] https://crrev.com/17957e83e387cb9bce164932fa3fa02cafdeaffb/third_party/blink/renderer/platform/graphics/compositing/paint_chunks_to_cc_layer_test.cc
[modify] https://crrev.com/17957e83e387cb9bce164932fa3fa02cafdeaffb/third_party/blink/renderer/platform/graphics/paint/clip_paint_property_node.cc
[modify] https://crrev.com/17957e83e387cb9bce164932fa3fa02cafdeaffb/third_party/blink/renderer/platform/graphics/paint/clip_paint_property_node.h

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a971ede805e09dbf5632a1c5366b92512fe8254a

commit a971ede805e09dbf5632a1c5366b92512fe8254a
Author: Vladimir Levin <vmpstr@chromium.org>
Date: Thu Oct 11 00:43:12 2018

Make non-root layout views have isolation nodes.

This patch establishes an isolation boundary for layout views with an
exception of local roots, which are already isolated by the virtue of
being the roots.

It also unaliases a new more places in PaintArtifactCompositor and
PropertyTreeManager. These areas were exposed by layout tests with
iframe isolation nodes.

R=chrishtr@chromium.org, pdr@chromium.org, wangxianzhu@chromium.org

Bug: 870521
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I3bed0ffe02e31004ca1ebae53ba76bc08d4e3735
Reviewed-on: https://chromium-review.googlesource.com/c/1263432
Reviewed-by: Philip Rogers <pdr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: vmpstr <vmpstr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#598597}
[add] https://crrev.com/a971ede805e09dbf5632a1c5366b92512fe8254a/third_party/blink/perf_tests/paint/complex-iframe-filtered.html
[modify] https://crrev.com/a971ede805e09dbf5632a1c5366b92512fe8254a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
[modify] https://crrev.com/a971ede805e09dbf5632a1c5366b92512fe8254a/third_party/blink/renderer/core/paint/paint_property_tree_builder_test.cc
[modify] https://crrev.com/a971ede805e09dbf5632a1c5366b92512fe8254a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
[modify] https://crrev.com/a971ede805e09dbf5632a1c5366b92512fe8254a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc

Sign in to add a comment