Index: third_party/WebKit/Source/core/dom/Node.h |
diff --git a/third_party/WebKit/Source/core/dom/Node.h b/third_party/WebKit/Source/core/dom/Node.h |
index 48f16d982ecc79ef7e49a6c56b8ca86d6ac86a92..db9f8dc481fe3d4b7d011ab2ba0c0d6d2ed10dfa 100644 |
--- a/third_party/WebKit/Source/core/dom/Node.h |
+++ b/third_party/WebKit/Source/core/dom/Node.h |
@@ -394,7 +394,8 @@ class CORE_EXPORT Node : public EventTarget { |
} |
bool needsAttach() const { |
- return getStyleChangeType() == NeedsReattachStyleChange; |
+ return getStyleChangeType() == NeedsReattachStyleChange || |
+ getFlag(NeedsReattachLayoutTree); |
} |
bool needsStyleRecalc() const { |
return getStyleChangeType() != NoStyleChange; |
@@ -830,7 +831,9 @@ class CORE_EXPORT Node : public EventTarget { |
NeedsReattachLayoutTree = 1 << 26, |
ChildNeedsReattachLayoutTree = 1 << 27, |
- DefaultNodeFlags = IsFinishedParsingChildrenFlag | NeedsReattachStyleChange |
+ DefaultNodeFlags = IsFinishedParsingChildrenFlag | |
+ NeedsReattachStyleChange | |
+ NeedsReattachLayoutTree |
}; |
// 4 bits remaining. |
@@ -853,8 +856,9 @@ class CORE_EXPORT Node : public EventTarget { |
enum ConstructionType { |
CreateOther = DefaultNodeFlags, |
CreateText = DefaultNodeFlags | IsTextFlag, |
- CreateContainer = |
- DefaultNodeFlags | ChildNeedsStyleRecalcFlag | IsContainerFlag, |
+ CreateContainer = DefaultNodeFlags | ChildNeedsStyleRecalcFlag | |
+ ChildNeedsReattachLayoutTree | |
+ IsContainerFlag, |
CreateElement = CreateContainer | IsElementFlag, |
CreateShadowRoot = |
CreateContainer | IsDocumentFragmentFlag | IsInShadowTreeFlag, |
@@ -978,6 +982,7 @@ inline void Node::lazyReattachIfAttached() { |
detachLayoutTree(context); |
markAncestorsWithChildNeedsStyleRecalc(); |
+ markAncestorsWithChildNeedsReattachLayoutTree(); |
} |
inline bool Node::shouldCallRecalcStyle(StyleRecalcChange change) { |