Index: Source/core/dom/ElementRareData.h |
diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h |
index 4061eb380325e2822bcd7980dc6daea120c05f26..3340bdd98fdd338250f57aa199ff91e5ad81fec9 100644 |
--- a/Source/core/dom/ElementRareData.h |
+++ b/Source/core/dom/ElementRareData.h |
@@ -146,6 +146,7 @@ private: |
RefPtr<RenderStyle> m_computedStyle; |
RefPtrWillBeMember<CustomElementDefinition> m_customElementDefinition; |
+ RefPtrWillBeMember<PseudoElement> m_marker; |
RefPtrWillBeMember<PseudoElement> m_generatedBefore; |
RefPtrWillBeMember<PseudoElement> m_generatedAfter; |
RefPtrWillBeMember<PseudoElement> m_generatedFirstLetter; |
@@ -172,6 +173,7 @@ inline ElementRareData::~ElementRareData() |
#if !ENABLE(OILPAN) |
ASSERT(!m_shadow); |
#endif |
+ ASSERT(!m_marker); |
ASSERT(!m_generatedBefore); |
ASSERT(!m_generatedAfter); |
ASSERT(!m_generatedFirstLetter); |
@@ -180,7 +182,7 @@ inline ElementRareData::~ElementRareData() |
inline bool ElementRareData::hasPseudoElements() const |
{ |
- return m_generatedBefore || m_generatedAfter || m_backdrop || m_generatedFirstLetter; |
+ return m_generatedBefore || m_generatedAfter || m_backdrop || m_generatedFirstLetter || m_marker; |
} |
inline void ElementRareData::clearPseudoElements() |
@@ -188,12 +190,18 @@ inline void ElementRareData::clearPseudoElements() |
setPseudoElement(BEFORE, nullptr); |
setPseudoElement(AFTER, nullptr); |
setPseudoElement(BACKDROP, nullptr); |
+ setPseudoElement(MARKER, nullptr); |
setPseudoElement(FIRST_LETTER, nullptr); |
} |
inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillBeRawPtr<PseudoElement> element) |
{ |
switch (pseudoId) { |
+ case MARKER: |
+ if (m_marker) |
+ m_marker->dispose(); |
+ m_marker = element; |
+ break; |
case BEFORE: |
if (m_generatedBefore) |
m_generatedBefore->dispose(); |
@@ -222,6 +230,8 @@ inline void ElementRareData::setPseudoElement(PseudoId pseudoId, PassRefPtrWillB |
inline PseudoElement* ElementRareData::pseudoElement(PseudoId pseudoId) const |
{ |
switch (pseudoId) { |
+ case MARKER: |
+ return m_marker.get(); |
case BEFORE: |
return m_generatedBefore.get(); |
case AFTER: |