| 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 1190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1201 | 1201 |
| 1202 document().incDOMTreeVersion(); | 1202 document().incDOMTreeVersion(); |
| 1203 | 1203 |
| 1204 StyleResolver* styleResolver = document().styleResolver(); | 1204 StyleResolver* styleResolver = document().styleResolver(); |
| 1205 | 1205 |
| 1206 if (name == HTMLNames::idAttr) { | 1206 if (name == HTMLNames::idAttr) { |
| 1207 AtomicString oldId = elementData()->idForStyleResolution(); | 1207 AtomicString oldId = elementData()->idForStyleResolution(); |
| 1208 AtomicString newId = makeIdForStyleResolution(newValue, document().inQui
rksMode()); | 1208 AtomicString newId = makeIdForStyleResolution(newValue, document().inQui
rksMode()); |
| 1209 if (newId != oldId) { | 1209 if (newId != oldId) { |
| 1210 elementData()->setIdForStyleResolution(newId); | 1210 elementData()->setIdForStyleResolution(newId); |
| 1211 if (inActiveDocument() && styleResolver && styleChangeType() < Subtr
eeStyleChange) | 1211 if (inActiveDocument() && styleResolver) |
| 1212 document().styleEngine().idChangedForElement(oldId, newId, *this
); | 1212 document().styleEngine().idChangedForElement(oldId, newId, *this
); |
| 1213 } | 1213 } |
| 1214 } else if (name == classAttr) { | 1214 } else if (name == classAttr) { |
| 1215 classAttributeChanged(newValue); | 1215 classAttributeChanged(newValue); |
| 1216 } else if (name == HTMLNames::nameAttr) { | 1216 } else if (name == HTMLNames::nameAttr) { |
| 1217 setHasName(!newValue.isNull()); | 1217 setHasName(!newValue.isNull()); |
| 1218 } else if (isStyledElement()) { | 1218 } else if (isStyledElement()) { |
| 1219 if (name == styleAttr) { | 1219 if (name == styleAttr) { |
| 1220 styleAttributeChanged(newValue, reason); | 1220 styleAttributeChanged(newValue, reason); |
| 1221 } else if (isPresentationAttribute(name)) { | 1221 } else if (isPresentationAttribute(name)) { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1281 return ClassStringContent::Empty; | 1281 return ClassStringContent::Empty; |
| 1282 | 1282 |
| 1283 if (newClassString.is8Bit()) | 1283 if (newClassString.is8Bit()) |
| 1284 return classStringHasClassName(newClassString.characters8(), length); | 1284 return classStringHasClassName(newClassString.characters8(), length); |
| 1285 return classStringHasClassName(newClassString.characters16(), length); | 1285 return classStringHasClassName(newClassString.characters16(), length); |
| 1286 } | 1286 } |
| 1287 | 1287 |
| 1288 void Element::classAttributeChanged(const AtomicString& newClassString) | 1288 void Element::classAttributeChanged(const AtomicString& newClassString) |
| 1289 { | 1289 { |
| 1290 StyleResolver* styleResolver = document().styleResolver(); | 1290 StyleResolver* styleResolver = document().styleResolver(); |
| 1291 bool testShouldInvalidateStyle = inActiveDocument() && styleResolver && styl
eChangeType() < SubtreeStyleChange; | 1291 bool testShouldInvalidateStyle = inActiveDocument() && styleResolver; |
| 1292 | 1292 |
| 1293 ASSERT(elementData()); | 1293 ASSERT(elementData()); |
| 1294 ClassStringContent classStringContentType = classStringHasClassName(newClass
String); | 1294 ClassStringContent classStringContentType = classStringHasClassName(newClass
String); |
| 1295 const bool shouldFoldCase = document().inQuirksMode(); | 1295 const bool shouldFoldCase = document().inQuirksMode(); |
| 1296 if (classStringContentType == ClassStringContent::HasClasses) { | 1296 if (classStringContentType == ClassStringContent::HasClasses) { |
| 1297 const SpaceSplitString oldClasses = elementData()->classNames(); | 1297 const SpaceSplitString oldClasses = elementData()->classNames(); |
| 1298 elementData()->setClass(newClassString, shouldFoldCase); | 1298 elementData()->setClass(newClassString, shouldFoldCase); |
| 1299 const SpaceSplitString& newClasses = elementData()->classNames(); | 1299 const SpaceSplitString& newClasses = elementData()->classNames(); |
| 1300 if (testShouldInvalidateStyle) | 1300 if (testShouldInvalidateStyle) |
| 1301 document().styleEngine().classChangedForElement(oldClasses, newClass
es, *this); | 1301 document().styleEngine().classChangedForElement(oldClasses, newClass
es, *this); |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1870 | 1870 |
| 1871 void Element::pseudoStateChanged(CSSSelector::PseudoType pseudo) | 1871 void Element::pseudoStateChanged(CSSSelector::PseudoType pseudo) |
| 1872 { | 1872 { |
| 1873 // We can't schedule invaliation sets from inside style recalc otherwise | 1873 // We can't schedule invaliation sets from inside style recalc otherwise |
| 1874 // we'd never process them. | 1874 // we'd never process them. |
| 1875 // TODO(esprehn): Make this an ASSERT and fix places that call into this | 1875 // TODO(esprehn): Make this an ASSERT and fix places that call into this |
| 1876 // like HTMLSelectElement. | 1876 // like HTMLSelectElement. |
| 1877 if (document().inStyleRecalc()) | 1877 if (document().inStyleRecalc()) |
| 1878 return; | 1878 return; |
| 1879 StyleResolver* styleResolver = document().styleResolver(); | 1879 StyleResolver* styleResolver = document().styleResolver(); |
| 1880 if (inActiveDocument() && styleResolver && styleChangeType() < SubtreeStyleC
hange) | 1880 if (inActiveDocument() && styleResolver) |
| 1881 document().styleEngine().pseudoStateChangedForElement(pseudo, *this); | 1881 document().styleEngine().pseudoStateChangedForElement(pseudo, *this); |
| 1882 } | 1882 } |
| 1883 | 1883 |
| 1884 void Element::setAnimationStyleChange(bool animationStyleChange) | 1884 void Element::setAnimationStyleChange(bool animationStyleChange) |
| 1885 { | 1885 { |
| 1886 if (animationStyleChange && document().inStyleRecalc()) | 1886 if (animationStyleChange && document().inStyleRecalc()) |
| 1887 return; | 1887 return; |
| 1888 if (!hasRareData()) | 1888 if (!hasRareData()) |
| 1889 return; | 1889 return; |
| 1890 if (ElementAnimations* elementAnimations = elementRareData()->elementAnimati
ons()) | 1890 if (ElementAnimations* elementAnimations = elementRareData()->elementAnimati
ons()) |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2067 } | 2067 } |
| 2068 return false; | 2068 return false; |
| 2069 } | 2069 } |
| 2070 | 2070 |
| 2071 void Element::checkForEmptyStyleChange() | 2071 void Element::checkForEmptyStyleChange() |
| 2072 { | 2072 { |
| 2073 const ComputedStyle* style = computedStyle(); | 2073 const ComputedStyle* style = computedStyle(); |
| 2074 | 2074 |
| 2075 if (!style && !styleAffectedByEmpty()) | 2075 if (!style && !styleAffectedByEmpty()) |
| 2076 return; | 2076 return; |
| 2077 if (styleChangeType() >= SubtreeStyleChange) | |
| 2078 return; | |
| 2079 if (!inActiveDocument()) | 2077 if (!inActiveDocument()) |
| 2080 return; | 2078 return; |
| 2081 if (!document().styleResolver()) | 2079 if (!document().styleResolver()) |
| 2082 return; | 2080 return; |
| 2083 | 2081 |
| 2084 if (!style || (styleAffectedByEmpty() && (!style->emptyState() || hasChildre
n()))) | 2082 if (!style || (styleAffectedByEmpty() && (!style->emptyState() || hasChildre
n()))) |
| 2085 pseudoStateChanged(CSSSelector::PseudoEmpty); | 2083 pseudoStateChanged(CSSSelector::PseudoEmpty); |
| 2086 } | 2084 } |
| 2087 | 2085 |
| 2088 void Element::childrenChanged(const ChildrenChange& change) | 2086 void Element::childrenChanged(const ChildrenChange& change) |
| (...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3126 updateExtraNamedItemRegistration(oldId, newId); | 3124 updateExtraNamedItemRegistration(oldId, newId); |
| 3127 } | 3125 } |
| 3128 | 3126 |
| 3129 void Element::willModifyAttribute(const QualifiedName& name, const AtomicString&
oldValue, const AtomicString& newValue) | 3127 void Element::willModifyAttribute(const QualifiedName& name, const AtomicString&
oldValue, const AtomicString& newValue) |
| 3130 { | 3128 { |
| 3131 if (name == HTMLNames::nameAttr) { | 3129 if (name == HTMLNames::nameAttr) { |
| 3132 updateName(oldValue, newValue); | 3130 updateName(oldValue, newValue); |
| 3133 } | 3131 } |
| 3134 | 3132 |
| 3135 if (oldValue != newValue) { | 3133 if (oldValue != newValue) { |
| 3136 if (inActiveDocument() && document().styleResolver() && styleChangeType(
) < SubtreeStyleChange) | 3134 if (inActiveDocument() && document().styleResolver()) |
| 3137 document().styleEngine().attributeChangedForElement(name, *this); | 3135 document().styleEngine().attributeChangedForElement(name, *this); |
| 3138 | 3136 |
| 3139 if (isUpgradedCustomElement()) | 3137 if (isUpgradedCustomElement()) |
| 3140 CustomElement::attributeDidChange(this, name.localName(), oldValue,
newValue); | 3138 CustomElement::attributeDidChange(this, name.localName(), oldValue,
newValue); |
| 3141 } | 3139 } |
| 3142 | 3140 |
| 3143 if (OwnPtrWillBeRawPtr<MutationObserverInterestGroup> recipients = MutationO
bserverInterestGroup::createForAttributesMutation(*this, name)) | 3141 if (OwnPtrWillBeRawPtr<MutationObserverInterestGroup> recipients = MutationO
bserverInterestGroup::createForAttributesMutation(*this, name)) |
| 3144 recipients->enqueueMutationRecord(MutationRecord::createAttributes(this,
name, oldValue)); | 3142 recipients->enqueueMutationRecord(MutationRecord::createAttributes(this,
name, oldValue)); |
| 3145 | 3143 |
| 3146 InspectorInstrumentation::willModifyDOMAttr(this, oldValue, newValue); | 3144 InspectorInstrumentation::willModifyDOMAttr(this, oldValue, newValue); |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3646 { | 3644 { |
| 3647 #if ENABLE(OILPAN) | 3645 #if ENABLE(OILPAN) |
| 3648 if (hasRareData()) | 3646 if (hasRareData()) |
| 3649 visitor->trace(elementRareData()); | 3647 visitor->trace(elementRareData()); |
| 3650 visitor->trace(m_elementData); | 3648 visitor->trace(m_elementData); |
| 3651 #endif | 3649 #endif |
| 3652 ContainerNode::trace(visitor); | 3650 ContainerNode::trace(visitor); |
| 3653 } | 3651 } |
| 3654 | 3652 |
| 3655 } // namespace blink | 3653 } // namespace blink |
| OLD | NEW |