Chromium Code Reviews| Index: Source/core/dom/ElementRareData.h |
| diff --git a/Source/core/dom/ElementRareData.h b/Source/core/dom/ElementRareData.h |
| index cb3d3d34260662d7f94e7e61145a377edc499992..6bb2d6a5c124cb9e7f0016d13e960a35a9a58ed2 100644 |
| --- a/Source/core/dom/ElementRareData.h |
| +++ b/Source/core/dom/ElementRareData.h |
| @@ -24,7 +24,6 @@ |
| #include "core/animation/ActiveAnimations.h" |
| #include "core/dom/DatasetDOMStringMap.h" |
| -#include "core/dom/NamedNodeMap.h" |
| #include "core/dom/NodeRareData.h" |
| #include "core/dom/PseudoElement.h" |
| #include "core/dom/custom/CustomElementDefinition.h" |
| @@ -37,7 +36,9 @@ |
| namespace WebCore { |
| +class AttrData; |
| class HTMLElement; |
| +class NamedNodeMap; |
| class ElementRareData : public NodeRareData { |
| public: |
| @@ -78,9 +79,6 @@ public: |
| return *m_shadow; |
| } |
| - NamedNodeMap* attributeMap() const { return m_attributeMap.get(); } |
| - void setAttributeMap(PassOwnPtrWillBeRawPtr<NamedNodeMap> attributeMap) { m_attributeMap = attributeMap; } |
| - |
| RenderStyle* computedStyle() const { return m_computedStyle.get(); } |
| void setComputedStyle(PassRefPtr<RenderStyle> computedStyle) { m_computedStyle = computedStyle; } |
| void clearComputedStyle() { m_computedStyle = nullptr; } |
| @@ -123,6 +121,9 @@ public: |
| void setCustomElementDefinition(PassRefPtr<CustomElementDefinition> definition) { m_customElementDefinition = definition; } |
| CustomElementDefinition* customElementDefinition() const { return m_customElementDefinition.get(); } |
| + AttrData& ensureAttrData(); |
| + AttrData* attrData() { return m_attrData.get(); } |
|
esprehn
2014/06/17 08:27:05
const
|
| + |
| void traceAfterDispatch(Visitor*); |
| private: |
| @@ -134,7 +135,7 @@ private: |
| OwnPtrWillBeMember<DatasetDOMStringMap> m_dataset; |
| OwnPtrWillBeMember<ClassList> m_classList; |
| OwnPtrWillBeMember<ElementShadow> m_shadow; |
| - OwnPtrWillBeMember<NamedNodeMap> m_attributeMap; |
| + OwnPtrWillBeMember<AttrData> m_attrData; |
| OwnPtrWillBeMember<InputMethodContext> m_inputMethodContext; |
| OwnPtrWillBeMember<ActiveAnimations> m_activeAnimations; |
| OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper; |
| @@ -226,6 +227,26 @@ inline void ElementRareData::resetStyleState() |
| clearElementFlag(StyleAffectedByEmpty); |
| } |
| +class AttrData : public NoBaseWillBeGarbageCollected<AttrData> { |
|
haraken
2014/06/17 02:07:02
This is something like we're introducing another R
esprehn
2014/06/17 08:27:05
We really should put these in separate files, but
|
| + DECLARE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(AttrData); |
| +public: |
| + static PassOwnPtrWillBeRawPtr<AttrData> create(); |
| + void trace(Visitor*); |
| + |
| + WillBeHeapVector<RefPtrWillBeMember<Attr> >& ensureAttrNodeList(); |
| + WillBeHeapVector<RefPtrWillBeMember<Attr> >* attrNodeList() { return m_attrNodeList.get(); } |
|
esprehn
2014/06/17 08:27:05
const
|
| + void removeAttrNodeList(); |
| + |
| + NamedNodeMap* attributeMap() const { return m_attributeMap.get(); } |
| + void setAttributeMap(PassOwnPtrWillBeRawPtr<NamedNodeMap>); |
| + |
| +private: |
| + AttrData(); |
| + |
| + OwnPtrWillBeMember<WillBeHeapVector<RefPtrWillBeMember<Attr> > > m_attrNodeList; |
| + OwnPtrWillBeMember<NamedNodeMap> m_attributeMap; |
| +}; |
| + |
| } // namespace |
| #endif // ElementRareData_h |