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

Side by Side Diff: Source/core/dom/ElementRareData.h

Issue 778003003: List marker pseudo elements. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 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 | Annotate | Revision Log
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698