Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Unified Diff: third_party/WebKit/Source/core/dom/Node.h

Issue 2473743003: Call Element::rebuildLayoutTree from Document::updateStyle directly (Closed)
Patch Set: Mirror setChildNeedsStyleRecalc and markAncestorsWithNeedsReattachLayoutTree with setChildNeedsReat… Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698