OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2008 David Smith <catfish.man@gmail.com> | 3 * Copyright (C) 2008 David Smith <catfish.man@gmail.com> |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
153 OwnPtrWillBeMember<ElementShadow> m_shadow; | 153 OwnPtrWillBeMember<ElementShadow> m_shadow; |
154 OwnPtrWillBeMember<NamedNodeMap> m_attributeMap; | 154 OwnPtrWillBeMember<NamedNodeMap> m_attributeMap; |
155 OwnPtrWillBeMember<WillBeHeapVector<RefPtrWillBeMember<Attr>>> m_attrNodeLis t; | 155 OwnPtrWillBeMember<WillBeHeapVector<RefPtrWillBeMember<Attr>>> m_attrNodeLis t; |
156 OwnPtrWillBeMember<InputMethodContext> m_inputMethodContext; | 156 OwnPtrWillBeMember<InputMethodContext> m_inputMethodContext; |
157 OwnPtrWillBeMember<ElementAnimations> m_elementAnimations; | 157 OwnPtrWillBeMember<ElementAnimations> m_elementAnimations; |
158 OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper; | 158 OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper; |
159 | 159 |
160 RefPtr<ComputedStyle> m_computedStyle; | 160 RefPtr<ComputedStyle> m_computedStyle; |
161 RefPtrWillBeMember<CustomElementDefinition> m_customElementDefinition; | 161 RefPtrWillBeMember<CustomElementDefinition> m_customElementDefinition; |
162 | 162 |
163 RefPtrWillBeMember<PseudoElement> m_marker; | |
esprehn
2015/04/22 07:45:45
We really probably need to introduce a PseudoEleme
dsinclair
2015/04/22 20:00:38
File crbug.com/479745 to move this to a PseudoElem
| |
163 RefPtrWillBeMember<PseudoElement> m_generatedBefore; | 164 RefPtrWillBeMember<PseudoElement> m_generatedBefore; |
164 RefPtrWillBeMember<PseudoElement> m_generatedAfter; | 165 RefPtrWillBeMember<PseudoElement> m_generatedAfter; |
165 RefPtrWillBeMember<PseudoElement> m_generatedFirstLetter; | 166 RefPtrWillBeMember<PseudoElement> m_generatedFirstLetter; |
166 RefPtrWillBeMember<PseudoElement> m_backdrop; | 167 RefPtrWillBeMember<PseudoElement> m_backdrop; |
167 | 168 |
168 explicit ElementRareData(LayoutObject*); | 169 explicit ElementRareData(LayoutObject*); |
169 }; | 170 }; |
170 | 171 |
171 inline LayoutSize defaultMinimumSizeForResizing() | 172 inline LayoutSize defaultMinimumSizeForResizing() |
172 { | 173 { |
173 return LayoutSize(LayoutUnit::max(), LayoutUnit::max()); | 174 return LayoutSize(LayoutUnit::max(), LayoutUnit::max()); |
174 } | 175 } |
175 | 176 |
176 inline ElementRareData::ElementRareData(LayoutObject* renderer) | 177 inline ElementRareData::ElementRareData(LayoutObject* renderer) |
177 : NodeRareData(renderer) | 178 : NodeRareData(renderer) |
178 , m_tabindex(0) | 179 , m_tabindex(0) |
179 , m_tabStop(true) | 180 , m_tabStop(true) |
180 , m_proxyCount(0) | 181 , m_proxyCount(0) |
181 , m_minimumSizeForResizing(defaultMinimumSizeForResizing()) | 182 , m_minimumSizeForResizing(defaultMinimumSizeForResizing()) |
182 { | 183 { |
183 m_isElementRareData = true; | 184 m_isElementRareData = true; |
184 } | 185 } |
185 | 186 |
186 inline ElementRareData::~ElementRareData() | 187 inline ElementRareData::~ElementRareData() |
187 { | 188 { |
188 #if !ENABLE(OILPAN) | 189 #if !ENABLE(OILPAN) |
189 ASSERT(!m_shadow); | 190 ASSERT(!m_shadow); |
190 #endif | 191 #endif |
192 ASSERT(!m_marker); | |
191 ASSERT(!m_generatedBefore); | 193 ASSERT(!m_generatedBefore); |
192 ASSERT(!m_generatedAfter); | 194 ASSERT(!m_generatedAfter); |
193 ASSERT(!m_generatedFirstLetter); | 195 ASSERT(!m_generatedFirstLetter); |
194 ASSERT(!m_backdrop); | 196 ASSERT(!m_backdrop); |
195 } | 197 } |
196 | 198 |
197 inline bool ElementRareData::hasPseudoElements() const | 199 inline bool ElementRareData::hasPseudoElements() const |
198 { | 200 { |
199 return m_generatedBefore || m_generatedAfter || m_backdrop || m_generatedFir stLetter; | 201 return m_generatedBefore || m_generatedAfter || m_backdrop || m_generatedFir stLetter || m_marker; |
200 } | 202 } |
201 | 203 |
202 inline void ElementRareData::clearPseudoElements() | 204 inline void ElementRareData::clearPseudoElements() |
203 { | 205 { |
204 setPseudoElement(BEFORE, nullptr); | 206 setPseudoElement(BEFORE, nullptr); |
205 setPseudoElement(AFTER, nullptr); | 207 setPseudoElement(AFTER, nullptr); |
206 setPseudoElement(BACKDROP, nullptr); | 208 setPseudoElement(BACKDROP, nullptr); |
209 setPseudoElement(MARKER, nullptr); | |
207 setPseudoElement(FIRST_LETTER, nullptr); | 210 setPseudoElement(FIRST_LETTER, nullptr); |
208 } | 211 } |
209 | 212 |
210 inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillB eRawPtr<PseudoElement> element) | 213 inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillB eRawPtr<PseudoElement> element) |
211 { | 214 { |
212 switch (pseudoId) { | 215 switch (pseudoId) { |
216 case MARKER: | |
217 if (m_marker) | |
218 m_marker->dispose(); | |
219 m_marker = element; | |
220 break; | |
213 case BEFORE: | 221 case BEFORE: |
214 if (m_generatedBefore) | 222 if (m_generatedBefore) |
215 m_generatedBefore->dispose(); | 223 m_generatedBefore->dispose(); |
216 m_generatedBefore = element; | 224 m_generatedBefore = element; |
217 break; | 225 break; |
218 case AFTER: | 226 case AFTER: |
219 if (m_generatedAfter) | 227 if (m_generatedAfter) |
220 m_generatedAfter->dispose(); | 228 m_generatedAfter->dispose(); |
221 m_generatedAfter = element; | 229 m_generatedAfter = element; |
222 break; | 230 break; |
223 case BACKDROP: | 231 case BACKDROP: |
224 if (m_backdrop) | 232 if (m_backdrop) |
225 m_backdrop->dispose(); | 233 m_backdrop->dispose(); |
226 m_backdrop = element; | 234 m_backdrop = element; |
227 break; | 235 break; |
228 case FIRST_LETTER: | 236 case FIRST_LETTER: |
229 if (m_generatedFirstLetter) | 237 if (m_generatedFirstLetter) |
230 m_generatedFirstLetter->dispose(); | 238 m_generatedFirstLetter->dispose(); |
231 m_generatedFirstLetter = element; | 239 m_generatedFirstLetter = element; |
232 break; | 240 break; |
233 default: | 241 default: |
234 ASSERT_NOT_REACHED(); | 242 ASSERT_NOT_REACHED(); |
235 } | 243 } |
236 } | 244 } |
237 | 245 |
238 inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const | 246 inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const |
239 { | 247 { |
240 switch (pseudoId) { | 248 switch (pseudoId) { |
249 case MARKER: | |
250 return m_marker.get(); | |
241 case BEFORE: | 251 case BEFORE: |
242 return m_generatedBefore.get(); | 252 return m_generatedBefore.get(); |
243 case AFTER: | 253 case AFTER: |
244 return m_generatedAfter.get(); | 254 return m_generatedAfter.get(); |
245 case BACKDROP: | 255 case BACKDROP: |
246 return m_backdrop.get(); | 256 return m_backdrop.get(); |
247 case FIRST_LETTER: | 257 case FIRST_LETTER: |
248 return m_generatedFirstLetter.get(); | 258 return m_generatedFirstLetter.get(); |
249 default: | 259 default: |
250 return 0; | 260 return 0; |
251 } | 261 } |
252 } | 262 } |
253 | 263 |
254 } // namespace | 264 } // namespace |
255 | 265 |
256 #endif // ElementRareData_h | 266 #endif // ElementRareData_h |
OLD | NEW |