Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL
[WebKit-https.git] / Source / WebCore / svg / SVGStyleElement.cpp
index 1c1de91..045ae6d 100644 (file)
  */
 
 #include "config.h"
-
-#if ENABLE(SVG)
 #include "SVGStyleElement.h"
 
-#include "Attribute.h"
 #include "CSSStyleSheet.h"
 #include "Document.h"
 #include "ExceptionCode.h"
@@ -37,7 +34,7 @@ namespace WebCore {
 inline SVGStyleElement::SVGStyleElement(const QualifiedName& tagName, Document& document, bool createdByParser)
     : SVGElement(tagName, document)
     , m_styleSheetOwner(document, createdByParser)
-    , m_svgLoadEventTimer(this, &SVGElement::svgLoadEventTimerFired)
+    , m_svgLoadEventTimer(*this, &SVGElement::svgLoadEventTimerFired)
 {
     ASSERT(hasTagName(SVGNames::styleTag));
 }
@@ -47,9 +44,9 @@ SVGStyleElement::~SVGStyleElement()
     m_styleSheetOwner.clearDocumentData(document(), *this);
 }
 
-PassRefPtr<SVGStyleElement> SVGStyleElement::create(const QualifiedName& tagName, Document& document, bool createdByParser)
+Ref<SVGStyleElement> SVGStyleElement::create(const QualifiedName& tagName, Document& document, bool createdByParser)
 {
-    return adoptRef(new SVGStyleElement(tagName, document, createdByParser));
+    return adoptRef(*new SVGStyleElement(tagName, document, createdByParser));
 }
 
 bool SVGStyleElement::disabled() const
@@ -65,9 +62,9 @@ void SVGStyleElement::setDisabled(bool setDisabled)
 
 const AtomicString& SVGStyleElement::type() const
 {
-    DEFINE_STATIC_LOCAL(const AtomicString, defaultValue, ("text/css", AtomicString::ConstructFromLiteral));
+    static NeverDestroyed<const AtomicString> defaultValue("text/css", AtomicString::ConstructFromLiteral);
     const AtomicString& n = getAttribute(SVGNames::typeAttr);
-    return n.isNull() ? defaultValue : n;
+    return n.isNull() ? defaultValue.get() : n;
 }
 
 void SVGStyleElement::setType(const AtomicString& type, ExceptionCode&)
@@ -77,9 +74,9 @@ void SVGStyleElement::setType(const AtomicString& type, ExceptionCode&)
 
 const AtomicString& SVGStyleElement::media() const
 {
-    DEFINE_STATIC_LOCAL(const AtomicString, defaultValue, ("all", AtomicString::ConstructFromLiteral));
+    static NeverDestroyed<const AtomicString> defaultValue("all", AtomicString::ConstructFromLiteral);
     const AtomicString& n = fastGetAttribute(SVGNames::mediaAttr);
-    return n.isNull() ? defaultValue : n;
+    return n.isNull() ? defaultValue.get() : n;
 }
 
 void SVGStyleElement::setMedia(const AtomicString& media, ExceptionCode&)
@@ -97,24 +94,8 @@ void SVGStyleElement::setTitle(const AtomicString& title, ExceptionCode&)
     setAttribute(SVGNames::titleAttr, title);
 }
 
-bool SVGStyleElement::isSupportedAttribute(const QualifiedName& attrName)
-{
-    DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, supportedAttributes, ());
-    if (supportedAttributes.isEmpty()) {
-        SVGLangSpace::addSupportedAttributes(supportedAttributes);
-        supportedAttributes.add(SVGNames::titleAttr);
-        supportedAttributes.add(SVGNames::mediaAttr);
-        supportedAttributes.add(SVGNames::typeAttr);
-    }
-    return supportedAttributes.contains<SVGAttributeHashTranslator>(attrName);
-}
-
 void SVGStyleElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
 {
-    if (!isSupportedAttribute(name)) {
-        SVGElement::parseAttribute(name, value);
-        return;
-    }
     if (name == SVGNames::titleAttr) {
         if (sheet())
             sheet()->setTitle(value);
@@ -128,10 +109,8 @@ void SVGStyleElement::parseAttribute(const QualifiedName& name, const AtomicStri
         m_styleSheetOwner.setMedia(value);
         return;
     }
-    if (SVGLangSpace::parseAttribute(name, value))
-        return;
 
-    ASSERT_NOT_REACHED();
+    SVGElement::parseAttribute(name, value);
 }
 
 void SVGStyleElement::finishParsingChildren()
@@ -140,18 +119,18 @@ void SVGStyleElement::finishParsingChildren()
     SVGElement::finishParsingChildren();
 }
 
-Node::InsertionNotificationRequest SVGStyleElement::insertedInto(ContainerNode* rootParent)
+Node::InsertionNotificationRequest SVGStyleElement::insertedInto(ContainerNode& rootParent)
 {
     SVGElement::insertedInto(rootParent);
-    if (rootParent->inDocument())
+    if (rootParent.inDocument())
         m_styleSheetOwner.insertedIntoDocument(document(), *this);
     return InsertionDone;
 }
 
-void SVGStyleElement::removedFrom(ContainerNode* rootParent)
+void SVGStyleElement::removedFrom(ContainerNode& rootParent)
 {
     SVGElement::removedFrom(rootParent);
-    if (rootParent->inDocument())
+    if (rootParent.inDocument())
         m_styleSheetOwner.removedFromDocument(document(), *this);
 }
 
@@ -162,5 +141,3 @@ void SVGStyleElement::childrenChanged(const ChildChange& change)
 }
 
 }
-
-#endif // ENABLE(SVG)