Chromium Code Reviews| Index: third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp |
| diff --git a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp |
| index c72f2a0cdc84b8557a6fa137266e55be6b0c5142..3340efce14ab633eceb4f12615963c2c46696366 100644 |
| --- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp |
| +++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp |
| @@ -147,10 +147,23 @@ void ShadowRoot::recalcStyle(StyleRecalcChange change) { |
| // There's no style to update so just calling recalcStyle means we're updated. |
| clearNeedsStyleRecalc(); |
| - clearNeedsReattachLayoutTree(); |
| recalcDescendantStyles(change); |
| clearChildNeedsStyleRecalc(); |
| + // Currently only the NeedsReattachLayoutTree flag is set on the ShadowRoot. |
| + // Need to tell the ancestor nodes that this one needs reattach as well |
| + // otherwise we will never rebuild the LayoutTree. |
| + setNeedsReattachLayoutTree(); |
|
esprehn
2017/02/02 08:37:10
This is setting reattach unconditionally on every
nainar
2017/02/02 23:13:06
When we call ShadowRoot::recalcStyle() we have no
|
| +} |
| + |
| +void ShadowRoot::rebuildLayoutTree() { |
| + // ShadowRoot doesn't support custom callbacks. |
| + DCHECK(!hasCustomStyleCallbacks()); |
| + |
| + StyleSharingDepthScope sharingScope(*this); |
| + |
| + clearNeedsReattachLayoutTree(); |
| + rebuildChildrenLayoutTrees(); |
| clearChildNeedsReattachLayoutTree(); |
| } |