| Index: third_party/WebKit/Source/core/editing/iterators/FullyClippedStateStack.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/iterators/FullyClippedStateStack.cpp b/third_party/WebKit/Source/core/editing/iterators/FullyClippedStateStack.cpp
|
| index 6b3d34835e548bedeca17df747b942de8bc741ef..5a0ed1b500457e1f927cb557bafb45db003c4ad8 100644
|
| --- a/third_party/WebKit/Source/core/editing/iterators/FullyClippedStateStack.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/iterators/FullyClippedStateStack.cpp
|
| @@ -51,16 +51,21 @@ void FullyClippedStateStackAlgorithm<Strategy>::pushFullyClippedState(
|
| Node* node) {
|
| DCHECK_EQ(size(), depthCrossingShadowBoundaries<Strategy>(*node));
|
|
|
| - // FIXME: m_fullyClippedStack was added in response to <https://bugs.webkit.org/show_bug.cgi?id=26364>
|
| - // ("Search can find text that's hidden by overflow:hidden"), but the logic here will not work correctly if
|
| - // a shadow tree redistributes nodes. m_fullyClippedStack relies on the assumption that DOM node hierarchy matches
|
| - // the layout tree, which is not necessarily true if there happens to be shadow DOM distribution or other mechanics
|
| - // that shuffle around the layout objects regardless of node tree hierarchy (like CSS flexbox).
|
| + // FIXME: m_fullyClippedStack was added in response to
|
| + // <https://bugs.webkit.org/show_bug.cgi?id=26364> ("Search can find text
|
| + // that's hidden by overflow:hidden"), but the logic here will not work
|
| + // correctly if a shadow tree redistributes nodes. m_fullyClippedStack relies
|
| + // on the assumption that DOM node hierarchy matches the layout tree, which is
|
| + // not necessarily true if there happens to be shadow DOM distribution or
|
| + // other mechanics that shuffle around the layout objects regardless of node
|
| + // tree hierarchy (like CSS flexbox).
|
| //
|
| - // A more appropriate way to handle this situation is to detect overflow:hidden blocks by using only layout
|
| - // primitives, not with DOM primitives.
|
| + // A more appropriate way to handle this situation is to detect
|
| + // overflow:hidden blocks by using only layout primitives, not with DOM
|
| + // primitives.
|
|
|
| - // Push true if this node full clips its contents, or if a parent already has fully
|
| + // Push true if this node full clips its contents, or if a parent already has
|
| + // fully
|
| // clipped and this is not a node that ignores its container's clip.
|
| push(fullyClipsContents(node) || (top() && !ignoresContainerClip(node)));
|
| }
|
| @@ -74,7 +79,8 @@ void FullyClippedStateStackAlgorithm<Strategy>::setUpFullyClippedStack(
|
| parent; parent = parentCrossingShadowBoundaries<Strategy>(*parent))
|
| ancestry.append(parent);
|
|
|
| - // Call pushFullyClippedState on each node starting with the earliest ancestor.
|
| + // Call pushFullyClippedState on each node starting with the earliest
|
| + // ancestor.
|
| size_t ancestrySize = ancestry.size();
|
| for (size_t i = 0; i < ancestrySize; ++i)
|
| pushFullyClippedState(ancestry[ancestrySize - i - 1]);
|
|
|