OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
6 * (C) 2007 David Smith (catfish.man@gmail.com) | 6 * (C) 2007 David Smith (catfish.man@gmail.com) |
7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved. |
8 * (C) 2007 Eric Seidel (eric@webkit.org) | 8 * (C) 2007 Eric Seidel (eric@webkit.org) |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
171 } | 171 } |
172 | 172 |
173 static void removeAttrNodeListForElement(Element* element) | 173 static void removeAttrNodeListForElement(Element* element) |
174 { | 174 { |
175 ASSERT(element->hasSyntheticAttrChildNodes()); | 175 ASSERT(element->hasSyntheticAttrChildNodes()); |
176 ASSERT(attrNodeListMap().contains(element)); | 176 ASSERT(attrNodeListMap().contains(element)); |
177 attrNodeListMap().remove(element); | 177 attrNodeListMap().remove(element); |
178 element->setHasSyntheticAttrChildNodes(false); | 178 element->setHasSyntheticAttrChildNodes(false); |
179 } | 179 } |
180 | 180 |
181 static Attr* findAttrNodeInList(AttrNodeList& attrNodeList, const QualifiedName& name) | 181 static Attr* findAttrNodeInList(const AttrNodeList& attrNodeList, const Qualifie dName& name) |
182 { | 182 { |
183 for (unsigned i = 0; i < attrNodeList.size(); ++i) { | 183 AttrNodeList::const_iterator end = attrNodeList.end(); |
184 if (attrNodeList[i]->qualifiedName() == name) | 184 for (AttrNodeList::const_iterator it = attrNodeList.begin(); it != end; ++it ) { |
185 return attrNodeList[i].get(); | 185 if ((*it)->qualifiedName() == name) |
eseidel
2013/11/06 03:12:24
I wonder if this really wants matches() :) Which
| |
186 return it->get(); | |
186 } | 187 } |
187 return 0; | 188 return 0; |
188 } | 189 } |
189 | 190 |
190 PassRefPtr<Element> Element::create(const QualifiedName& tagName, Document* docu ment) | 191 PassRefPtr<Element> Element::create(const QualifiedName& tagName, Document* docu ment) |
191 { | 192 { |
192 return adoptRef(new Element(tagName, document, CreateElement)); | 193 return adoptRef(new Element(tagName, document, CreateElement)); |
193 } | 194 } |
194 | 195 |
195 Element::~Element() | 196 Element::~Element() |
(...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
916 if (index != kNotFound) | 917 if (index != kNotFound) |
917 removeAttributeInternal(index, inSynchronizationOfLazyAttribute); | 918 removeAttributeInternal(index, inSynchronizationOfLazyAttribute); |
918 return; | 919 return; |
919 } | 920 } |
920 | 921 |
921 if (index == kNotFound) { | 922 if (index == kNotFound) { |
922 addAttributeInternal(name, newValue, inSynchronizationOfLazyAttribute); | 923 addAttributeInternal(name, newValue, inSynchronizationOfLazyAttribute); |
923 return; | 924 return; |
924 } | 925 } |
925 | 926 |
926 QualifiedName existingAttributeName = attributeItem(index)->name(); | 927 const Attribute* existingAttribute = attributeItem(index); |
928 QualifiedName existingAttributeName = existingAttribute->name(); | |
927 | 929 |
928 if (!inSynchronizationOfLazyAttribute) | 930 if (!inSynchronizationOfLazyAttribute) |
929 willModifyAttribute(existingAttributeName, attributeItem(index)->value() , newValue); | 931 willModifyAttribute(existingAttributeName, existingAttribute->value(), n ewValue); |
930 | 932 |
931 if (newValue != attributeItem(index)->value()) { | 933 if (newValue != existingAttribute->value()) { |
932 // If there is an Attr node hooked to this attribute, the Attr::setValue () call below | 934 // If there is an Attr node hooked to this attribute, the Attr::setValue () call below |
933 // will write into the ElementData. | 935 // will write into the ElementData. |
934 // FIXME: Refactor this so it makes some sense. | 936 // FIXME: Refactor this so it makes some sense. |
935 if (RefPtr<Attr> attrNode = inSynchronizationOfLazyAttribute ? 0 : attrI fExists(existingAttributeName)) | 937 if (RefPtr<Attr> attrNode = inSynchronizationOfLazyAttribute ? 0 : attrI fExists(existingAttributeName)) |
936 attrNode->setValue(newValue); | 938 attrNode->setValue(newValue); |
937 else | 939 else |
938 ensureUniqueElementData()->attributeItem(index)->setValue(newValue); | 940 ensureUniqueElementData()->attributeItem(index)->setValue(newValue); |
939 } | 941 } |
940 | 942 |
941 if (!inSynchronizationOfLazyAttribute) | 943 if (!inSynchronizationOfLazyAttribute) |
(...skipping 2534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3476 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi stItems | 3478 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi stItems |
3477 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg i?id=88405 | 3479 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg i?id=88405 |
3478 if (hasTagName(optionTag) || hasTagName(optgroupTag)) | 3480 if (hasTagName(optionTag) || hasTagName(optgroupTag)) |
3479 return false; | 3481 return false; |
3480 if (FullscreenElementStack::isActiveFullScreenElement(this)) | 3482 if (FullscreenElementStack::isActiveFullScreenElement(this)) |
3481 return false; | 3483 return false; |
3482 return true; | 3484 return true; |
3483 } | 3485 } |
3484 | 3486 |
3485 } // namespace WebCore | 3487 } // namespace WebCore |
OLD | NEW |