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 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
861 if (index != notFound) | 861 if (index != notFound) |
862 removeAttributeInternal(index, inSynchronizationOfLazyAttribute); | 862 removeAttributeInternal(index, inSynchronizationOfLazyAttribute); |
863 return; | 863 return; |
864 } | 864 } |
865 | 865 |
866 if (index == notFound) { | 866 if (index == notFound) { |
867 addAttributeInternal(name, newValue, inSynchronizationOfLazyAttribute); | 867 addAttributeInternal(name, newValue, inSynchronizationOfLazyAttribute); |
868 return; | 868 return; |
869 } | 869 } |
870 | 870 |
| 871 QualifiedName existingAttributeName = attributeItem(index)->name(); |
| 872 |
871 if (!inSynchronizationOfLazyAttribute) | 873 if (!inSynchronizationOfLazyAttribute) |
872 willModifyAttribute(name, attributeItem(index)->value(), newValue); | 874 willModifyAttribute(existingAttributeName, attributeItem(index)->value()
, newValue); |
873 | 875 |
874 if (newValue != attributeItem(index)->value()) { | 876 if (newValue != attributeItem(index)->value()) { |
875 // If there is an Attr node hooked to this attribute, the Attr::setValue
() call below | 877 // If there is an Attr node hooked to this attribute, the Attr::setValue
() call below |
876 // will write into the ElementData. | 878 // will write into the ElementData. |
877 // FIXME: Refactor this so it makes some sense. | 879 // FIXME: Refactor this so it makes some sense. |
878 if (RefPtr<Attr> attrNode = inSynchronizationOfLazyAttribute ? 0 : attrI
fExists(name)) | 880 if (RefPtr<Attr> attrNode = inSynchronizationOfLazyAttribute ? 0 : attrI
fExists(existingAttributeName)) |
879 attrNode->setValue(newValue); | 881 attrNode->setValue(newValue); |
880 else | 882 else |
881 ensureUniqueElementData()->attributeItem(index)->setValue(newValue); | 883 ensureUniqueElementData()->attributeItem(index)->setValue(newValue); |
882 } | 884 } |
883 | 885 |
884 if (!inSynchronizationOfLazyAttribute) | 886 if (!inSynchronizationOfLazyAttribute) |
885 didModifyAttribute(name, newValue); | 887 didModifyAttribute(existingAttributeName, newValue); |
886 } | 888 } |
887 | 889 |
888 static inline AtomicString makeIdForStyleResolution(const AtomicString& value, b
ool inQuirksMode) | 890 static inline AtomicString makeIdForStyleResolution(const AtomicString& value, b
ool inQuirksMode) |
889 { | 891 { |
890 if (inQuirksMode) | 892 if (inQuirksMode) |
891 return value.lower(); | 893 return value.lower(); |
892 return value; | 894 return value; |
893 } | 895 } |
894 | 896 |
895 static bool checkNeedsStyleInvalidationForIdChange(const AtomicString& oldId, co
nst AtomicString& newId, const RuleFeatureSet& features) | 897 static bool checkNeedsStyleInvalidationForIdChange(const AtomicString& oldId, co
nst AtomicString& newId, const RuleFeatureSet& features) |
(...skipping 2744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3640 return 0; | 3642 return 0; |
3641 } | 3643 } |
3642 | 3644 |
3643 Attribute* UniqueElementData::attributeItem(unsigned index) | 3645 Attribute* UniqueElementData::attributeItem(unsigned index) |
3644 { | 3646 { |
3645 ASSERT_WITH_SECURITY_IMPLICATION(index < length()); | 3647 ASSERT_WITH_SECURITY_IMPLICATION(index < length()); |
3646 return &m_attributeVector.at(index); | 3648 return &m_attributeVector.at(index); |
3647 } | 3649 } |
3648 | 3650 |
3649 } // namespace WebCore | 3651 } // namespace WebCore |
OLD | NEW |