Chromium Code Reviews| 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 |