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

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

Issue 2830583002: Rename NodeLayoutData -> NodeRenderingData (Closed)
Patch Set: Rebase Created 3 years, 8 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 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-2011, 2014 Apple Inc. All rights reserved. 5 * Copyright (C) 2004-2011, 2014 Apple Inc. All rights reserved.
6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. 6 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
7 * (http://www.torchmobile.com/) 7 * (http://www.torchmobile.com/)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 class Event; 51 class Event;
52 class ExceptionState; 52 class ExceptionState;
53 class GetRootNodeOptions; 53 class GetRootNodeOptions;
54 class HTMLQualifiedName; 54 class HTMLQualifiedName;
55 class HTMLSlotElement; 55 class HTMLSlotElement;
56 class IntRect; 56 class IntRect;
57 class EventDispatchHandlingState; 57 class EventDispatchHandlingState;
58 class NodeList; 58 class NodeList;
59 class NodeListsNodeData; 59 class NodeListsNodeData;
60 class NodeOrString; 60 class NodeOrString;
61 class NodeLayoutData; 61 class NodeRenderingData;
62 class NodeRareData; 62 class NodeRareData;
63 class QualifiedName; 63 class QualifiedName;
64 class RegisteredEventListener; 64 class RegisteredEventListener;
65 class LayoutBox; 65 class LayoutBox;
66 class LayoutBoxModelObject; 66 class LayoutBoxModelObject;
67 class LayoutObject; 67 class LayoutObject;
68 class ComputedStyle; 68 class ComputedStyle;
69 class SVGQualifiedName; 69 class SVGQualifiedName;
70 class ShadowRoot; 70 class ShadowRoot;
71 template <typename NodeType> 71 template <typename NodeType>
(...skipping 21 matching lines...) Expand all
93 kFailed = 3 << kNodeCustomElementShift, 93 kFailed = 3 << kNodeCustomElementShift,
94 94
95 kNotDefinedFlag = 2 << kNodeCustomElementShift, 95 kNotDefinedFlag = 2 << kNodeCustomElementShift,
96 }; 96 };
97 97
98 enum class SlotChangeType { 98 enum class SlotChangeType {
99 kInitial, 99 kInitial,
100 kChained, 100 kChained,
101 }; 101 };
102 102
103 class NodeLayoutData { 103 class NodeRenderingData {
104 WTF_MAKE_NONCOPYABLE(NodeLayoutData); 104 WTF_MAKE_NONCOPYABLE(NodeRenderingData);
105 105
106 public: 106 public:
107 explicit NodeLayoutData(LayoutObject* layout_object, 107 explicit NodeRenderingData(LayoutObject* layout_object,
108 RefPtr<ComputedStyle> non_attached_style) 108 RefPtr<ComputedStyle> non_attached_style)
109 : layout_object_(layout_object), 109 : layout_object_(layout_object),
110 non_attached_style_(non_attached_style) {} 110 non_attached_style_(non_attached_style) {}
111 ~NodeLayoutData() { CHECK(!layout_object_); } 111 ~NodeRenderingData() { CHECK(!layout_object_); }
112 112
113 LayoutObject* GetLayoutObject() const { return layout_object_; } 113 LayoutObject* GetLayoutObject() const { return layout_object_; }
114 void SetLayoutObject(LayoutObject* layout_object) { 114 void SetLayoutObject(LayoutObject* layout_object) {
115 DCHECK_NE(&SharedEmptyData(), this); 115 DCHECK_NE(&SharedEmptyData(), this);
116 layout_object_ = layout_object; 116 layout_object_ = layout_object;
117 } 117 }
118 118
119 ComputedStyle* GetNonAttachedStyle() const { 119 ComputedStyle* GetNonAttachedStyle() const {
120 return non_attached_style_.Get(); 120 return non_attached_style_.Get();
121 } 121 }
122 void SetNonAttachedStyle(RefPtr<ComputedStyle> non_attached_style) { 122 void SetNonAttachedStyle(RefPtr<ComputedStyle> non_attached_style) {
123 DCHECK_NE(&SharedEmptyData(), this); 123 DCHECK_NE(&SharedEmptyData(), this);
124 non_attached_style_ = non_attached_style; 124 non_attached_style_ = non_attached_style;
125 } 125 }
126 126
127 static NodeLayoutData& SharedEmptyData() { 127 static NodeRenderingData& SharedEmptyData() {
128 DEFINE_STATIC_LOCAL(NodeLayoutData, shared_empty_data, (nullptr, nullptr)); 128 DEFINE_STATIC_LOCAL(NodeRenderingData, shared_empty_data,
129 (nullptr, nullptr));
129 return shared_empty_data; 130 return shared_empty_data;
130 } 131 }
131 bool IsSharedEmptyData() { return this == &SharedEmptyData(); } 132 bool IsSharedEmptyData() { return this == &SharedEmptyData(); }
132 133
133 private: 134 private:
134 LayoutObject* layout_object_; 135 LayoutObject* layout_object_;
135 RefPtr<ComputedStyle> non_attached_style_; 136 RefPtr<ComputedStyle> non_attached_style_;
136 }; 137 };
137 138
138 class NodeRareDataBase { 139 class NodeRareDataBase {
139 public: 140 public:
140 NodeLayoutData* GetNodeLayoutData() const { return node_layout_data_; } 141 NodeRenderingData* GetNodeRenderingData() const { return node_layout_data_; }
141 void SetNodeLayoutData(NodeLayoutData* node_layout_data) { 142 void SetNodeRenderingData(NodeRenderingData* node_layout_data) {
142 DCHECK(node_layout_data); 143 DCHECK(node_layout_data);
143 node_layout_data_ = node_layout_data; 144 node_layout_data_ = node_layout_data;
144 } 145 }
145 146
146 protected: 147 protected:
147 NodeRareDataBase(NodeLayoutData* node_layout_data) 148 NodeRareDataBase(NodeRenderingData* node_layout_data)
148 : node_layout_data_(node_layout_data) {} 149 : node_layout_data_(node_layout_data) {}
149 ~NodeRareDataBase() { 150 ~NodeRareDataBase() {
150 if (node_layout_data_ && !node_layout_data_->IsSharedEmptyData()) 151 if (node_layout_data_ && !node_layout_data_->IsSharedEmptyData())
151 delete node_layout_data_; 152 delete node_layout_data_;
152 } 153 }
153 154
154 protected: 155 protected:
155 NodeLayoutData* node_layout_data_; 156 NodeRenderingData* node_layout_data_;
156 }; 157 };
157 158
158 class Node; 159 class Node;
159 WILL_NOT_BE_EAGERLY_TRACED_CLASS(Node); 160 WILL_NOT_BE_EAGERLY_TRACED_CLASS(Node);
160 161
161 // This class represents a DOM node in the DOM tree. 162 // This class represents a DOM node in the DOM tree.
162 // https://dom.spec.whatwg.org/#interface-node 163 // https://dom.spec.whatwg.org/#interface-node
163 class CORE_EXPORT Node : public EventTarget { 164 class CORE_EXPORT Node : public EventTarget {
164 DEFINE_WRAPPERTYPEINFO(); 165 DEFINE_WRAPPERTYPEINFO();
165 friend class TreeScope; 166 friend class TreeScope;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 277
277 String textContent(bool convert_brs_to_newlines = false) const; 278 String textContent(bool convert_brs_to_newlines = false) const;
278 void setTextContent(const String&); 279 void setTextContent(const String&);
279 280
280 bool SupportsAltText(); 281 bool SupportsAltText();
281 282
282 void SetNonAttachedStyle(RefPtr<ComputedStyle> non_attached_style); 283 void SetNonAttachedStyle(RefPtr<ComputedStyle> non_attached_style);
283 284
284 ComputedStyle* GetNonAttachedStyle() const { 285 ComputedStyle* GetNonAttachedStyle() const {
285 return HasRareData() 286 return HasRareData()
286 ? data_.rare_data_->GetNodeLayoutData()->GetNonAttachedStyle() 287 ? data_.rare_data_->GetNodeRenderingData()->GetNonAttachedStyle()
287 : data_.node_layout_data_->GetNonAttachedStyle(); 288 : data_.node_layout_data_->GetNonAttachedStyle();
288 } 289 }
289 290
290 // Other methods (not part of DOM) 291 // Other methods (not part of DOM)
291 292
292 bool IsElementNode() const { return GetFlag(kIsElementFlag); } 293 bool IsElementNode() const { return GetFlag(kIsElementFlag); }
293 bool IsContainerNode() const { return GetFlag(kIsContainerFlag); } 294 bool IsContainerNode() const { return GetFlag(kIsContainerFlag); }
294 bool IsTextNode() const { return GetFlag(kIsTextFlag); } 295 bool IsTextNode() const { return GetFlag(kIsTextFlag); }
295 bool IsHTMLElement() const { return GetFlag(kIsHTMLFlag); } 296 bool IsHTMLElement() const { return GetFlag(kIsHTMLFlag); }
296 bool IsSVGElement() const { return GetFlag(kIsSVGFlag); } 297 bool IsSVGElement() const { return GetFlag(kIsSVGFlag); }
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 612
612 // --------------------------------------------------------------------------- -- 613 // --------------------------------------------------------------------------- --
613 // Integration with layout tree 614 // Integration with layout tree
614 615
615 // As layoutObject() includes a branch you should avoid calling it repeatedly 616 // As layoutObject() includes a branch you should avoid calling it repeatedly
616 // in hot code paths. 617 // in hot code paths.
617 // Note that if a Node has a layoutObject, it's parentNode is guaranteed to 618 // Note that if a Node has a layoutObject, it's parentNode is guaranteed to
618 // have one as well. 619 // have one as well.
619 LayoutObject* GetLayoutObject() const { 620 LayoutObject* GetLayoutObject() const {
620 return HasRareData() 621 return HasRareData()
621 ? data_.rare_data_->GetNodeLayoutData()->GetLayoutObject() 622 ? data_.rare_data_->GetNodeRenderingData()->GetLayoutObject()
622 : data_.node_layout_data_->GetLayoutObject(); 623 : data_.node_layout_data_->GetLayoutObject();
623 } 624 }
624 void SetLayoutObject(LayoutObject*); 625 void SetLayoutObject(LayoutObject*);
625 // Use these two methods with caution. 626 // Use these two methods with caution.
626 LayoutBox* GetLayoutBox() const; 627 LayoutBox* GetLayoutBox() const;
627 LayoutBoxModelObject* GetLayoutBoxModelObject() const; 628 LayoutBoxModelObject* GetLayoutBoxModelObject() const;
628 629
629 struct AttachContext { 630 struct AttachContext {
630 STACK_ALLOCATED(); 631 STACK_ALLOCATED();
631 ComputedStyle* resolved_style = nullptr; 632 ComputedStyle* resolved_style = nullptr;
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 const HeapHashSet<TraceWrapperMember<MutationObserverRegistration>>* 968 const HeapHashSet<TraceWrapperMember<MutationObserverRegistration>>*
968 TransientMutationObserverRegistry(); 969 TransientMutationObserverRegistry();
969 970
970 uint32_t node_flags_; 971 uint32_t node_flags_;
971 Member<ContainerNode> parent_or_shadow_host_node_; 972 Member<ContainerNode> parent_or_shadow_host_node_;
972 Member<TreeScope> tree_scope_; 973 Member<TreeScope> tree_scope_;
973 Member<Node> previous_; 974 Member<Node> previous_;
974 Member<Node> next_; 975 Member<Node> next_;
975 // When a node has rare data we move the layoutObject into the rare data. 976 // When a node has rare data we move the layoutObject into the rare data.
976 union DataUnion { 977 union DataUnion {
977 DataUnion() : node_layout_data_(&NodeLayoutData::SharedEmptyData()) {} 978 DataUnion() : node_layout_data_(&NodeRenderingData::SharedEmptyData()) {}
978 // LayoutObjects are fully owned by their DOM node. See LayoutObject's 979 // LayoutObjects are fully owned by their DOM node. See LayoutObject's
979 // LIFETIME documentation section. 980 // LIFETIME documentation section.
980 NodeLayoutData* node_layout_data_; 981 NodeRenderingData* node_layout_data_;
981 NodeRareDataBase* rare_data_; 982 NodeRareDataBase* rare_data_;
982 } data_; 983 } data_;
983 }; 984 };
984 985
985 inline void Node::SetParentOrShadowHostNode(ContainerNode* parent) { 986 inline void Node::SetParentOrShadowHostNode(ContainerNode* parent) {
986 DCHECK(IsMainThread()); 987 DCHECK(IsMainThread());
987 parent_or_shadow_host_node_ = parent; 988 parent_or_shadow_host_node_ = parent;
988 ScriptWrappableVisitor::WriteBarrier( 989 ScriptWrappableVisitor::WriteBarrier(
989 this, reinterpret_cast<Node*>(parent_or_shadow_host_node_.Get())); 990 this, reinterpret_cast<Node*>(parent_or_shadow_host_node_.Get()));
990 } 991 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 } // namespace blink 1038 } // namespace blink
1038 1039
1039 #ifndef NDEBUG 1040 #ifndef NDEBUG
1040 // Outside the WebCore namespace for ease of invocation from gdb. 1041 // Outside the WebCore namespace for ease of invocation from gdb.
1041 void showNode(const blink::Node*); 1042 void showNode(const blink::Node*);
1042 void showTree(const blink::Node*); 1043 void showTree(const blink::Node*);
1043 void showNodePath(const blink::Node*); 1044 void showNodePath(const blink::Node*);
1044 #endif 1045 #endif
1045 1046
1046 #endif // Node_h 1047 #endif // Node_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/dom/ElementRareData.h ('k') | third_party/WebKit/Source/core/dom/Node.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698