| 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 3099 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3110 // if the idForStyleResolution and the className need different casing. | 3110 // if the idForStyleResolution and the className need different casing. |
| 3111 bool ownerDocumentsHaveDifferentCaseSensitivity = false; | 3111 bool ownerDocumentsHaveDifferentCaseSensitivity = false; |
| 3112 if (other.hasClass() || other.hasID()) | 3112 if (other.hasClass() || other.hasID()) |
| 3113 ownerDocumentsHaveDifferentCaseSensitivity = other.document().inQuirksMo
de() != document().inQuirksMode(); | 3113 ownerDocumentsHaveDifferentCaseSensitivity = other.document().inQuirksMo
de() != document().inQuirksMode(); |
| 3114 | 3114 |
| 3115 // If 'other' has a mutable ElementData, convert it to an immutable one so w
e can share it between both elements. | 3115 // If 'other' has a mutable ElementData, convert it to an immutable one so w
e can share it between both elements. |
| 3116 // We can only do this if there are no presentation attributes and sharing t
he data won't result in different case sensitivity of class or id. | 3116 // We can only do this if there are no presentation attributes and sharing t
he data won't result in different case sensitivity of class or id. |
| 3117 if (other.m_elementData->isUnique() | 3117 if (other.m_elementData->isUnique() |
| 3118 && !ownerDocumentsHaveDifferentCaseSensitivity | 3118 && !ownerDocumentsHaveDifferentCaseSensitivity |
| 3119 && !other.m_elementData->presentationAttributeStyle()) | 3119 && !other.m_elementData->presentationAttributeStyle()) |
| 3120 const_cast<Element&>(other).m_elementData = static_cast<const UniqueElem
entData*>(other.m_elementData.get())->makeShareableCopy(); | 3120 const_cast<Element&>(other).m_elementData = toUniqueElementData(other.m_
elementData)->makeShareableCopy(); |
| 3121 | 3121 |
| 3122 if (!other.m_elementData->isUnique() && !ownerDocumentsHaveDifferentCaseSens
itivity && !needsURLResolutionForInlineStyle(other, other.document(), document()
)) | 3122 if (!other.m_elementData->isUnique() && !ownerDocumentsHaveDifferentCaseSens
itivity && !needsURLResolutionForInlineStyle(other, other.document(), document()
)) |
| 3123 m_elementData = other.m_elementData; | 3123 m_elementData = other.m_elementData; |
| 3124 else | 3124 else |
| 3125 m_elementData = other.m_elementData->makeUniqueCopy(); | 3125 m_elementData = other.m_elementData->makeUniqueCopy(); |
| 3126 | 3126 |
| 3127 AttributeCollection attributes = m_elementData->attributes(); | 3127 AttributeCollection attributes = m_elementData->attributes(); |
| 3128 AttributeCollection::const_iterator end = attributes.end(); | 3128 AttributeCollection::const_iterator end = attributes.end(); |
| 3129 for (AttributeCollection::const_iterator it = attributes.begin(); it != end;
++it) | 3129 for (AttributeCollection::const_iterator it = attributes.begin(); it != end;
++it) |
| 3130 attributeChangedFromParserOrByCloning(it->name(), it->value(), ModifiedB
yCloning); | 3130 attributeChangedFromParserOrByCloning(it->name(), it->value(), ModifiedB
yCloning); |
| 3131 } | 3131 } |
| 3132 | 3132 |
| 3133 void Element::cloneDataFromElement(const Element& other) | 3133 void Element::cloneDataFromElement(const Element& other) |
| 3134 { | 3134 { |
| 3135 cloneAttributesFromElement(other); | 3135 cloneAttributesFromElement(other); |
| 3136 copyNonAttributePropertiesFromElement(other); | 3136 copyNonAttributePropertiesFromElement(other); |
| 3137 } | 3137 } |
| 3138 | 3138 |
| 3139 void Element::createUniqueElementData() | 3139 void Element::createUniqueElementData() |
| 3140 { | 3140 { |
| 3141 if (!m_elementData) | 3141 if (!m_elementData) |
| 3142 m_elementData = UniqueElementData::create(); | 3142 m_elementData = UniqueElementData::create(); |
| 3143 else { | 3143 else { |
| 3144 ASSERT(!m_elementData->isUnique()); | 3144 ASSERT(!m_elementData->isUnique()); |
| 3145 m_elementData = static_cast<ShareableElementData*>(m_elementData.get())-
>makeUniqueCopy(); | 3145 m_elementData = toShareableElementData(m_elementData)->makeUniqueCopy(); |
| 3146 } | 3146 } |
| 3147 } | 3147 } |
| 3148 | 3148 |
| 3149 InputMethodContext& Element::inputMethodContext() | 3149 InputMethodContext& Element::inputMethodContext() |
| 3150 { | 3150 { |
| 3151 return ensureElementRareData().ensureInputMethodContext(toHTMLElement(this))
; | 3151 return ensureElementRareData().ensureInputMethodContext(toHTMLElement(this))
; |
| 3152 } | 3152 } |
| 3153 | 3153 |
| 3154 bool Element::hasInputMethodContext() const | 3154 bool Element::hasInputMethodContext() const |
| 3155 { | 3155 { |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3367 { | 3367 { |
| 3368 #if ENABLE(OILPAN) | 3368 #if ENABLE(OILPAN) |
| 3369 if (hasRareData()) | 3369 if (hasRareData()) |
| 3370 visitor->trace(elementRareData()); | 3370 visitor->trace(elementRareData()); |
| 3371 visitor->trace(m_elementData); | 3371 visitor->trace(m_elementData); |
| 3372 #endif | 3372 #endif |
| 3373 ContainerNode::trace(visitor); | 3373 ContainerNode::trace(visitor); |
| 3374 } | 3374 } |
| 3375 | 3375 |
| 3376 } // namespace blink | 3376 } // namespace blink |
| OLD | NEW |