 Chromium Code Reviews
 Chromium Code Reviews Issue 2473743003:
  Call Element::rebuildLayoutTree from Document::updateStyle directly  (Closed)
    
  
    Issue 2473743003:
  Call Element::rebuildLayoutTree from Document::updateStyle directly  (Closed) 
  | 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..92c0eebf22024c2108765eef259d3518cda2aaa2 100644 | 
| --- a/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp | 
| +++ b/third_party/WebKit/Source/core/dom/shadow/ShadowRoot.cpp | 
| @@ -147,10 +147,24 @@ void ShadowRoot::recalcStyle(StyleRecalcChange change) { | 
| // There's no style to update so just calling recalcStyle means we're updated. | 
| clearNeedsStyleRecalc(); | 
| - clearNeedsReattachLayoutTree(); | 
| recalcDescendantStyles(change); | 
| clearChildNeedsStyleRecalc(); | 
| + | 
| + if (host().childNeedsReattachLayoutTree()) | 
| + host().markAncestorsWithChildNeedsReattachLayoutTree(); | 
| 
esprehn
2017/02/13 22:19:41
remove all this.
 
nainar
2017/02/14 03:42:09
Done.
 | 
| + else | 
| + clearNeedsReattachLayoutTree(); | 
| +} | 
| + | 
| +void ShadowRoot::rebuildLayoutTree() { | 
| + // ShadowRoot doesn't support custom callbacks. | 
| + DCHECK(!hasCustomStyleCallbacks()); | 
| + | 
| + StyleSharingDepthScope sharingScope(*this); | 
| + | 
| + clearNeedsReattachLayoutTree(); | 
| + rebuildChildrenLayoutTrees(); | 
| clearChildNeedsReattachLayoutTree(); | 
| } |