Index: sky/engine/core/dom/Element.cpp |
diff --git a/sky/engine/core/dom/Element.cpp b/sky/engine/core/dom/Element.cpp |
index c861072fc35757f366119032af6007c3ed95ddf4..cbc6a14221e4ef145f4088182aa31bada7fec2fc 100644 |
--- a/sky/engine/core/dom/Element.cpp |
+++ b/sky/engine/core/dom/Element.cpp |
@@ -49,7 +49,6 @@ |
#include "core/dom/ExceptionCode.h" |
#include "core/dom/MutationObserverInterestGroup.h" |
#include "core/dom/MutationRecord.h" |
-#include "core/dom/NamedNodeMap.h" |
#include "core/dom/NodeRenderStyle.h" |
#include "core/dom/RenderTreeBuilder.h" |
#include "core/dom/SelectorQuery.h" |
@@ -95,18 +94,6 @@ |
namespace blink { |
-typedef Vector<RefPtr<Attr> > AttrNodeList; |
- |
-static Attr* findAttrNodeInList(const AttrNodeList& attrNodeList, const QualifiedName& name) |
-{ |
- AttrNodeList::const_iterator end = attrNodeList.end(); |
- for (AttrNodeList::const_iterator it = attrNodeList.begin(); it != end; ++it) { |
- if ((*it)->name() == name.localName()) |
- return it->get(); |
- } |
- return 0; |
-} |
- |
PassRefPtr<Element> Element::create(const QualifiedName& tagName, Document* document) |
{ |
return adoptRef(new Element(tagName, document, CreateElement)); |
@@ -129,9 +116,6 @@ Element::~Element() |
if (isCustomElement()) |
CustomElement::wasDestroyed(this); |
- |
- if (hasSyntheticAttrChildNodes()) |
- detachAllAttrNodesFromElement(); |
#endif |
} |
@@ -258,16 +242,6 @@ void Element::setBooleanAttribute(const QualifiedName& name, bool value) |
removeAttribute(name); |
} |
-NamedNodeMap* Element::attributesForBindings() const |
-{ |
- ElementRareData& rareData = const_cast<Element*>(this)->ensureElementRareData(); |
- if (NamedNodeMap* attributeMap = rareData.attributeMap()) |
- return attributeMap; |
- |
- rareData.setAttributeMap(NamedNodeMap::create(const_cast<Element*>(this))); |
- return rareData.attributeMap(); |
-} |
- |
ActiveAnimations* Element::activeAnimations() const |
{ |
if (hasRareData()) |
@@ -1231,25 +1205,6 @@ void Element::formatForDebugger(char* buffer, unsigned length) const |
} |
#endif |
-Vector<RefPtr<Attr> >* Element::attrNodeList() |
-{ |
- return hasRareData() ? elementRareData()->attrNodeList() : 0; |
-} |
- |
-Vector<RefPtr<Attr> >& Element::ensureAttrNodeList() |
-{ |
- setHasSyntheticAttrChildNodes(true); |
- return ensureElementRareData().ensureAttrNodeList(); |
-} |
- |
-void Element::removeAttrNodeList() |
-{ |
- ASSERT(hasSyntheticAttrChildNodes()); |
- if (hasRareData()) |
- elementRareData()->removeAttrNodeList(); |
- setHasSyntheticAttrChildNodes(false); |
-} |
- |
void Element::parseAttribute(const QualifiedName& name, const AtomicString& value) |
{ |
if (name == HTMLNames::tabindexAttr) { |
@@ -1293,9 +1248,6 @@ void Element::removeAttributeInternal(size_t index, SynchronizationOfLazyAttribu |
willModifyAttribute(name, valueBeingRemoved, nullAtom); |
} |
- if (RefPtr<Attr> attrNode = attrIfExists(name)) |
- attrNode->detachFromElement(); |
- |
attributes.remove(index); |
if (!inSynchronizationOfLazyAttribute) |
@@ -1333,21 +1285,10 @@ Vector<RefPtr<Attr>> Element::getAttributes() |
synchronizeAllAttributes(); |
Vector<RefPtr<Attr>> attributes; |
for (const Attribute& attribute : elementData()->attributes()) |
- attributes.append(ensureAttr(attribute.name())); |
+ attributes.append(Attr::create(attribute.name(), attribute.value())); |
return attributes; |
} |
-PassRefPtr<Attr> Element::getAttributeNode(const AtomicString& localName) |
-{ |
- if (!elementData()) |
- return nullptr; |
- synchronizeAttribute(localName); |
- const Attribute* attribute = elementData()->attributes().find(localName); |
- if (!attribute) |
- return nullptr; |
- return ensureAttr(attribute->name()); |
-} |
- |
void Element::focus(bool restorePreviousSelection, FocusType type) |
{ |
if (!inDocument()) |
@@ -1616,21 +1557,6 @@ Locale& Element::locale() const |
return document().getCachedLocale(computeInheritedLanguage()); |
} |
-void Element::normalizeAttributes() |
-{ |
- if (!hasAttributes()) |
- return; |
- Vector<RefPtr<Attr> >* attrNodes = attrNodeList(); |
- if (!attrNodes) |
- return; |
- // Copy the Attr Vector because Node::normalize() can fire synchronous JS |
- // events (e.g. DOMSubtreeModified) and a JS listener could add / remove |
- // attributes while we are iterating. |
- Vector<RefPtr<Attr> > attrNodesCopy(*attrNodes); |
- for (size_t i = 0; i < attrNodesCopy.size(); ++i) |
- attrNodesCopy[i]->normalize(); |
-} |
- |
bool Element::matches(const String& selectors, ExceptionState& exceptionState) |
{ |
SelectorQuery* selectorQuery = document().selectorQueryCache().add(AtomicString(selectors), document(), exceptionState); |
@@ -1745,13 +1671,6 @@ bool Element::isSpellCheckingEnabled() const |
return true; |
} |
-#ifdef DUMP_NODE_STATISTICS |
-bool Element::hasNamedNodeMap() const |
-{ |
- return hasRareData() && elementRareData()->attributeMap(); |
-} |
-#endif |
- |
inline void Element::updateId(const AtomicString& oldId, const AtomicString& newId) |
{ |
if (!isInTreeScope()) |
@@ -1839,35 +1758,6 @@ void Element::setSavedLayerScrollOffset(const IntSize& size) |
ensureElementRareData().setSavedLayerScrollOffset(size); |
} |
-PassRefPtr<Attr> Element::attrIfExists(const QualifiedName& name) |
-{ |
- if (AttrNodeList* attrNodeList = this->attrNodeList()) |
- return findAttrNodeInList(*attrNodeList, name); |
- return nullptr; |
-} |
- |
-PassRefPtr<Attr> Element::ensureAttr(const QualifiedName& name) |
-{ |
- AttrNodeList& attrNodeList = ensureAttrNodeList(); |
- RefPtr<Attr> attrNode = findAttrNodeInList(attrNodeList, name); |
- if (!attrNode) { |
- attrNode = Attr::create(*this, name); |
- treeScope().adoptIfNeeded(*attrNode); |
- attrNodeList.append(attrNode); |
- } |
- return attrNode.release(); |
-} |
- |
-void Element::detachAllAttrNodesFromElement() |
-{ |
- AttrNodeList* list = this->attrNodeList(); |
- ASSERT(list); |
- |
- for (unsigned i = 0; i < list->size(); ++i) |
- list->at(i)->detachFromElement(); |
- removeAttrNodeList(); |
-} |
- |
void Element::willRecalcStyle(StyleRecalcChange) |
{ |
ASSERT(hasCustomStyleCallbacks()); |
@@ -1887,9 +1777,6 @@ PassRefPtr<RenderStyle> Element::customStyleForRenderer() |
void Element::cloneAttributesFromElement(const Element& other) |
{ |
- if (hasSyntheticAttrChildNodes()) |
- detachAllAttrNodesFromElement(); |
- |
other.synchronizeAllAttributes(); |
if (!other.m_elementData) { |
m_elementData.clear(); |