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

Side by Side Diff: third_party/WebKit/Source/core/dom/LayoutTreeBuilder.h

Issue 2473743003: Call Element::rebuildLayoutTree from Document::updateStyle directly (Closed)
Patch Set: Commit the renames Created 4 years 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
8 * (http://www.torchmobile.com/) 8 * (http://www.torchmobile.com/)
9 * Copyright (C) 2011 Google Inc. All rights reserved. 9 * Copyright (C) 2011 Google Inc. All rights reserved.
10 * 10 *
(...skipping 29 matching lines...) Expand all
40 class ComputedStyle; 40 class ComputedStyle;
41 41
42 template <typename NodeType> 42 template <typename NodeType>
43 class LayoutTreeBuilder { 43 class LayoutTreeBuilder {
44 STACK_ALLOCATED(); 44 STACK_ALLOCATED();
45 45
46 protected: 46 protected:
47 LayoutTreeBuilder(NodeType& node, LayoutObject* layoutObjectParent) 47 LayoutTreeBuilder(NodeType& node, LayoutObject* layoutObjectParent)
48 : m_node(node), m_layoutObjectParent(layoutObjectParent) { 48 : m_node(node), m_layoutObjectParent(layoutObjectParent) {
49 DCHECK(!node.layoutObject()); 49 DCHECK(!node.layoutObject());
50 DCHECK(node.needsAttach()); 50 DCHECK(node.needsReattachLayoutTree());
51 DCHECK(node.document().inStyleRecalc()); 51 DCHECK(node.document().inStyleRecalc());
52 DCHECK(node.inActiveDocument()); 52 DCHECK(node.inActiveDocument());
53 } 53 }
54 54
55 LayoutObject* nextLayoutObject() const { 55 LayoutObject* nextLayoutObject() const {
56 DCHECK(m_layoutObjectParent); 56 DCHECK(m_layoutObjectParent);
57 57
58 // Avoid an O(N^2) walk over the children when reattaching all children of a 58 // Avoid an O(N^2) walk over the children when reattaching all children of a
59 // node. 59 // node.
60 if (m_layoutObjectParent->node() && 60 if (m_layoutObjectParent->node() &&
61 m_layoutObjectParent->node()->needsAttach()) 61 m_layoutObjectParent->node()->needsReattachLayoutTree())
62 return 0; 62 return 0;
63 63
64 return LayoutTreeBuilderTraversal::nextSiblingLayoutObject(*m_node); 64 return LayoutTreeBuilderTraversal::nextSiblingLayoutObject(*m_node);
65 } 65 }
66 66
67 Member<NodeType> m_node; 67 Member<NodeType> m_node;
68 LayoutObject* m_layoutObjectParent; 68 LayoutObject* m_layoutObjectParent;
69 }; 69 };
70 70
71 class LayoutTreeBuilderForElement : public LayoutTreeBuilder<Element> { 71 class LayoutTreeBuilderForElement : public LayoutTreeBuilder<Element> {
(...skipping 19 matching lines...) Expand all
91 public: 91 public:
92 LayoutTreeBuilderForText(Text& text, LayoutObject* layoutParent) 92 LayoutTreeBuilderForText(Text& text, LayoutObject* layoutParent)
93 : LayoutTreeBuilder(text, layoutParent) {} 93 : LayoutTreeBuilder(text, layoutParent) {}
94 94
95 void createLayoutObject(); 95 void createLayoutObject();
96 }; 96 };
97 97
98 } // namespace blink 98 } // namespace blink
99 99
100 #endif 100 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698