| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2008 Apple Inc. All rights reserved. | 4 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 5 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
| 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 6 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 #include "core/layout/svg/LayoutSVGResourceContainer.h" | 42 #include "core/layout/svg/LayoutSVGResourceContainer.h" |
| 43 #include "core/svg/SVGCursorElement.h" | 43 #include "core/svg/SVGCursorElement.h" |
| 44 #include "core/svg/SVGDocumentExtensions.h" | 44 #include "core/svg/SVGDocumentExtensions.h" |
| 45 #include "core/svg/SVGElementRareData.h" | 45 #include "core/svg/SVGElementRareData.h" |
| 46 #include "core/svg/SVGGraphicsElement.h" | 46 #include "core/svg/SVGGraphicsElement.h" |
| 47 #include "core/svg/SVGSVGElement.h" | 47 #include "core/svg/SVGSVGElement.h" |
| 48 #include "core/svg/SVGTitleElement.h" | 48 #include "core/svg/SVGTitleElement.h" |
| 49 #include "core/svg/SVGUseElement.h" | 49 #include "core/svg/SVGUseElement.h" |
| 50 #include "platform/JSONValues.h" | 50 #include "platform/JSONValues.h" |
| 51 #include "wtf/TemporaryChange.h" | 51 #include "wtf/TemporaryChange.h" |
| 52 #include "wtf/Threading.h" |
| 52 | 53 |
| 53 namespace blink { | 54 namespace blink { |
| 54 | 55 |
| 55 using namespace HTMLNames; | 56 using namespace HTMLNames; |
| 56 using namespace SVGNames; | 57 using namespace SVGNames; |
| 57 | 58 |
| 58 SVGElement::SVGElement(const QualifiedName& tagName, Document& document, Constru
ctionType constructionType) | 59 SVGElement::SVGElement(const QualifiedName& tagName, Document& document, Constru
ctionType constructionType) |
| 59 : Element(tagName, &document, constructionType) | 60 : Element(tagName, &document, constructionType) |
| 60 #if ENABLE(ASSERT) | 61 #if ENABLE(ASSERT) |
| 61 , m_inRelativeLengthClientsInvalidation(false) | 62 , m_inRelativeLengthClientsInvalidation(false) |
| (...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 | 975 |
| 975 SVGElement::InstanceUpdateBlocker::~InstanceUpdateBlocker() | 976 SVGElement::InstanceUpdateBlocker::~InstanceUpdateBlocker() |
| 976 { | 977 { |
| 977 if (m_targetElement) | 978 if (m_targetElement) |
| 978 m_targetElement->setInstanceUpdatesBlocked(false); | 979 m_targetElement->setInstanceUpdatesBlocked(false); |
| 979 } | 980 } |
| 980 | 981 |
| 981 #if ENABLE(ASSERT) | 982 #if ENABLE(ASSERT) |
| 982 bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const | 983 bool SVGElement::isAnimatableAttribute(const QualifiedName& name) const |
| 983 { | 984 { |
| 984 DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, animatableAttributes, ()); | 985 // This static is atomically initialized to dodge a warning about |
| 986 // a race when dumping debug data for a layer. |
| 987 AtomicallyInitializedStaticReference(HashSet<QualifiedName>, animatableAttri
butes, new HashSet<QualifiedName>()); |
| 985 | 988 |
| 986 if (animatableAttributes.isEmpty()) { | 989 if (animatableAttributes.isEmpty()) { |
| 987 const QualifiedName* const animatableAttrs[] = { | 990 const QualifiedName* const animatableAttrs[] = { |
| 988 &XLinkNames::hrefAttr, | 991 &XLinkNames::hrefAttr, |
| 989 &SVGNames::amplitudeAttr, | 992 &SVGNames::amplitudeAttr, |
| 990 &SVGNames::azimuthAttr, | 993 &SVGNames::azimuthAttr, |
| 991 &SVGNames::baseFrequencyAttr, | 994 &SVGNames::baseFrequencyAttr, |
| 992 &SVGNames::biasAttr, | 995 &SVGNames::biasAttr, |
| 993 &SVGNames::clipPathUnitsAttr, | 996 &SVGNames::clipPathUnitsAttr, |
| 994 &SVGNames::cxAttr, | 997 &SVGNames::cxAttr, |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1159 Element::trace(visitor); | 1162 Element::trace(visitor); |
| 1160 } | 1163 } |
| 1161 | 1164 |
| 1162 const AtomicString& SVGElement::eventParameterName() | 1165 const AtomicString& SVGElement::eventParameterName() |
| 1163 { | 1166 { |
| 1164 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con
structFromLiteral)); | 1167 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt", AtomicString::Con
structFromLiteral)); |
| 1165 return evtString; | 1168 return evtString; |
| 1166 } | 1169 } |
| 1167 | 1170 |
| 1168 } // namespace blink | 1171 } // namespace blink |
| OLD | NEW |