| 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 3078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3089 // for class and id names so we need to go through the attribute change logi
c | 3089 // for class and id names so we need to go through the attribute change logi
c |
| 3090 // to pick up the new casing in the ElementData. | 3090 // to pick up the new casing in the ElementData. |
| 3091 if (oldDocument.inQuirksMode() != document().inQuirksMode()) { | 3091 if (oldDocument.inQuirksMode() != document().inQuirksMode()) { |
| 3092 if (hasID()) | 3092 if (hasID()) |
| 3093 setIdAttribute(getIdAttribute()); | 3093 setIdAttribute(getIdAttribute()); |
| 3094 if (hasClass()) | 3094 if (hasClass()) |
| 3095 setAttribute(HTMLNames::classAttr, getClassAttribute()); | 3095 setAttribute(HTMLNames::classAttr, getClassAttribute()); |
| 3096 } | 3096 } |
| 3097 | 3097 |
| 3098 if (needsURLResolutionForInlineStyle(*this, oldDocument, document())) | 3098 if (needsURLResolutionForInlineStyle(*this, oldDocument, document())) |
| 3099 reResolveURLsInInlineStyle(document(), *ensureMutableInlineStyle()); | 3099 reResolveURLsInInlineStyle(document(), ensureMutableInlineStyle()); |
| 3100 } | 3100 } |
| 3101 | 3101 |
| 3102 void Element::updateNamedItemRegistration(const AtomicString& oldName, const Ato
micString& newName) | 3102 void Element::updateNamedItemRegistration(const AtomicString& oldName, const Ato
micString& newName) |
| 3103 { | 3103 { |
| 3104 if (!document().isHTMLDocument()) | 3104 if (!document().isHTMLDocument()) |
| 3105 return; | 3105 return; |
| 3106 | 3106 |
| 3107 if (!oldName.isEmpty()) | 3107 if (!oldName.isEmpty()) |
| 3108 toHTMLDocument(document()).removeNamedItem(oldName); | 3108 toHTMLDocument(document()).removeNamedItem(oldName); |
| 3109 | 3109 |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3341 inlineStyle ? AtomicString(inlineStyle->asText()) : nullAtom); | 3341 inlineStyle ? AtomicString(inlineStyle->asText()) : nullAtom); |
| 3342 } | 3342 } |
| 3343 | 3343 |
| 3344 CSSStyleDeclaration* Element::style() | 3344 CSSStyleDeclaration* Element::style() |
| 3345 { | 3345 { |
| 3346 if (!isStyledElement()) | 3346 if (!isStyledElement()) |
| 3347 return 0; | 3347 return 0; |
| 3348 return ensureElementRareData().ensureInlineCSSStyleDeclaration(this); | 3348 return ensureElementRareData().ensureInlineCSSStyleDeclaration(this); |
| 3349 } | 3349 } |
| 3350 | 3350 |
| 3351 MutableStylePropertySet* Element::ensureMutableInlineStyle() | 3351 MutableStylePropertySet& Element::ensureMutableInlineStyle() |
| 3352 { | 3352 { |
| 3353 ASSERT(isStyledElement()); | 3353 ASSERT(isStyledElement()); |
| 3354 RefPtr<StylePropertySet>& inlineStyle = ensureUniqueElementData().m_inlineSt
yle; | 3354 RefPtr<StylePropertySet>& inlineStyle = ensureUniqueElementData().m_inlineSt
yle; |
| 3355 if (!inlineStyle) { | 3355 if (!inlineStyle) { |
| 3356 CSSParserMode mode = (!isHTMLElement() || document().inQuirksMode()) ? H
TMLQuirksMode : HTMLStandardMode; | 3356 CSSParserMode mode = (!isHTMLElement() || document().inQuirksMode()) ? H
TMLQuirksMode : HTMLStandardMode; |
| 3357 inlineStyle = MutableStylePropertySet::create(mode); | 3357 inlineStyle = MutableStylePropertySet::create(mode); |
| 3358 } else if (!inlineStyle->isMutable()) { | 3358 } else if (!inlineStyle->isMutable()) { |
| 3359 inlineStyle = inlineStyle->mutableCopy(); | 3359 inlineStyle = inlineStyle->mutableCopy(); |
| 3360 } | 3360 } |
| 3361 return toMutableStylePropertySet(inlineStyle); | 3361 return *toMutableStylePropertySet(inlineStyle); |
| 3362 } | 3362 } |
| 3363 | 3363 |
| 3364 void Element::clearMutableInlineStyleIfEmpty() | 3364 void Element::clearMutableInlineStyleIfEmpty() |
| 3365 { | 3365 { |
| 3366 if (ensureMutableInlineStyle()->isEmpty()) { | 3366 if (ensureMutableInlineStyle().isEmpty()) { |
| 3367 ensureUniqueElementData().m_inlineStyle.clear(); | 3367 ensureUniqueElementData().m_inlineStyle.clear(); |
| 3368 } | 3368 } |
| 3369 } | 3369 } |
| 3370 | 3370 |
| 3371 inline void Element::setInlineStyleFromString(const AtomicString& newStyleString
) | 3371 inline void Element::setInlineStyleFromString(const AtomicString& newStyleString
) |
| 3372 { | 3372 { |
| 3373 ASSERT(isStyledElement()); | 3373 ASSERT(isStyledElement()); |
| 3374 RefPtr<StylePropertySet>& inlineStyle = elementData()->m_inlineStyle; | 3374 RefPtr<StylePropertySet>& inlineStyle = elementData()->m_inlineStyle; |
| 3375 | 3375 |
| 3376 // Avoid redundant work if we're using shared attribute data with already pa
rsed inline style. | 3376 // Avoid redundant work if we're using shared attribute data with already pa
rsed inline style. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3414 ASSERT(isStyledElement()); | 3414 ASSERT(isStyledElement()); |
| 3415 setNeedsStyleRecalc(LocalStyleChange); | 3415 setNeedsStyleRecalc(LocalStyleChange); |
| 3416 ASSERT(elementData()); | 3416 ASSERT(elementData()); |
| 3417 elementData()->m_styleAttributeIsDirty = true; | 3417 elementData()->m_styleAttributeIsDirty = true; |
| 3418 InspectorInstrumentation::didInvalidateStyleAttr(this); | 3418 InspectorInstrumentation::didInvalidateStyleAttr(this); |
| 3419 } | 3419 } |
| 3420 | 3420 |
| 3421 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, CSSValueID identi
fier, bool important) | 3421 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, CSSValueID identi
fier, bool important) |
| 3422 { | 3422 { |
| 3423 ASSERT(isStyledElement()); | 3423 ASSERT(isStyledElement()); |
| 3424 ensureMutableInlineStyle()->setProperty(propertyID, cssValuePool().createIde
ntifierValue(identifier), important); | 3424 ensureMutableInlineStyle().setProperty(propertyID, cssValuePool().createIden
tifierValue(identifier), important); |
| 3425 inlineStyleChanged(); | 3425 inlineStyleChanged(); |
| 3426 return true; | 3426 return true; |
| 3427 } | 3427 } |
| 3428 | 3428 |
| 3429 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, CSSPropertyID ide
ntifier, bool important) | 3429 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, CSSPropertyID ide
ntifier, bool important) |
| 3430 { | 3430 { |
| 3431 ASSERT(isStyledElement()); | 3431 ASSERT(isStyledElement()); |
| 3432 ensureMutableInlineStyle()->setProperty(propertyID, cssValuePool().createIde
ntifierValue(identifier), important); | 3432 ensureMutableInlineStyle().setProperty(propertyID, cssValuePool().createIden
tifierValue(identifier), important); |
| 3433 inlineStyleChanged(); | 3433 inlineStyleChanged(); |
| 3434 return true; | 3434 return true; |
| 3435 } | 3435 } |
| 3436 | 3436 |
| 3437 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, double value, CSS
PrimitiveValue::UnitTypes unit, bool important) | 3437 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, double value, CSS
PrimitiveValue::UnitTypes unit, bool important) |
| 3438 { | 3438 { |
| 3439 ASSERT(isStyledElement()); | 3439 ASSERT(isStyledElement()); |
| 3440 ensureMutableInlineStyle()->setProperty(propertyID, cssValuePool().createVal
ue(value, unit), important); | 3440 ensureMutableInlineStyle().setProperty(propertyID, cssValuePool().createValu
e(value, unit), important); |
| 3441 inlineStyleChanged(); | 3441 inlineStyleChanged(); |
| 3442 return true; | 3442 return true; |
| 3443 } | 3443 } |
| 3444 | 3444 |
| 3445 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, const String& val
ue, bool important) | 3445 bool Element::setInlineStyleProperty(CSSPropertyID propertyID, const String& val
ue, bool important) |
| 3446 { | 3446 { |
| 3447 ASSERT(isStyledElement()); | 3447 ASSERT(isStyledElement()); |
| 3448 bool changes = ensureMutableInlineStyle()->setProperty(propertyID, value, im
portant, document().elementSheet().contents()); | 3448 bool changes = ensureMutableInlineStyle().setProperty(propertyID, value, imp
ortant, document().elementSheet().contents()); |
| 3449 if (changes) | 3449 if (changes) |
| 3450 inlineStyleChanged(); | 3450 inlineStyleChanged(); |
| 3451 return changes; | 3451 return changes; |
| 3452 } | 3452 } |
| 3453 | 3453 |
| 3454 bool Element::removeInlineStyleProperty(CSSPropertyID propertyID) | 3454 bool Element::removeInlineStyleProperty(CSSPropertyID propertyID) |
| 3455 { | 3455 { |
| 3456 ASSERT(isStyledElement()); | 3456 ASSERT(isStyledElement()); |
| 3457 if (!inlineStyle()) | 3457 if (!inlineStyle()) |
| 3458 return false; | 3458 return false; |
| 3459 bool changes = ensureMutableInlineStyle()->removeProperty(propertyID); | 3459 bool changes = ensureMutableInlineStyle().removeProperty(propertyID); |
| 3460 if (changes) | 3460 if (changes) |
| 3461 inlineStyleChanged(); | 3461 inlineStyleChanged(); |
| 3462 return changes; | 3462 return changes; |
| 3463 } | 3463 } |
| 3464 | 3464 |
| 3465 void Element::removeAllInlineStyleProperties() | 3465 void Element::removeAllInlineStyleProperties() |
| 3466 { | 3466 { |
| 3467 ASSERT(isStyledElement()); | 3467 ASSERT(isStyledElement()); |
| 3468 if (!inlineStyle()) | 3468 if (!inlineStyle()) |
| 3469 return; | 3469 return; |
| 3470 ensureMutableInlineStyle()->clear(); | 3470 ensureMutableInlineStyle().clear(); |
| 3471 inlineStyleChanged(); | 3471 inlineStyleChanged(); |
| 3472 } | 3472 } |
| 3473 | 3473 |
| 3474 void Element::updatePresentationAttributeStyle() | 3474 void Element::updatePresentationAttributeStyle() |
| 3475 { | 3475 { |
| 3476 // ShareableElementData doesn't store presentation attribute style, so make
sure we have a UniqueElementData. | 3476 // ShareableElementData doesn't store presentation attribute style, so make
sure we have a UniqueElementData. |
| 3477 UniqueElementData& elementData = ensureUniqueElementData(); | 3477 UniqueElementData& elementData = ensureUniqueElementData(); |
| 3478 elementData.m_presentationAttributeStyleIsDirty = false; | 3478 elementData.m_presentationAttributeStyleIsDirty = false; |
| 3479 elementData.m_presentationAttributeStyle = computePresentationAttributeStyle
(*this); | 3479 elementData.m_presentationAttributeStyle = computePresentationAttributeStyle
(*this); |
| 3480 } | 3480 } |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3541 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi
stItems | 3541 // Before doing so, we need to resolve issues in HTMLSelectElement::recalcLi
stItems |
| 3542 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg
i?id=88405 | 3542 // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cg
i?id=88405 |
| 3543 if (hasTagName(optionTag) || hasTagName(optgroupTag)) | 3543 if (hasTagName(optionTag) || hasTagName(optgroupTag)) |
| 3544 return false; | 3544 return false; |
| 3545 if (FullscreenElementStack::isActiveFullScreenElement(this)) | 3545 if (FullscreenElementStack::isActiveFullScreenElement(this)) |
| 3546 return false; | 3546 return false; |
| 3547 return true; | 3547 return true; |
| 3548 } | 3548 } |
| 3549 | 3549 |
| 3550 } // namespace WebCore | 3550 } // namespace WebCore |
| OLD | NEW |