Changeset 18106 in webkit
- Timestamp:
- Dec 9, 2006 9:22:13 AM (17 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/CMakeLists.txt
r18096 r18106 794 794 dom/Range.cpp 795 795 dom/RegisteredEventListener.cpp 796 dom/StyleElement.cpp 796 797 dom/StyledElement.cpp 797 798 dom/Text.cpp -
trunk/WebCore/ChangeLog
r18098 r18106 1 2006-12-09 Rob Buis <buis@kde.org> 2 3 Reviewed by Darin. 4 5 http://bugs.webkit.org/show_bug.cgi?id=11625 6 Investigate possibility to share code between HTMLStyleElement and SVGStyleElement 7 8 Add a class shared by both HTMLStyleElement and SVGStyleElement that 9 encapsulates the common logic. 10 11 * CMakeLists.txt: 12 * WebCore.xcodeproj/project.pbxproj: 13 * dom/Document.cpp: 14 (WebCore::Document::recalcStyleSelector): 15 Generalize stylesheet processing of svg and html. 16 17 * dom/StyleElement.cpp: Added. 18 (WebCore::StyleElement::StyleElement): 19 (WebCore::StyleElement::sheet): 20 (WebCore::StyleElement::insertedIntoDocument): 21 (WebCore::StyleElement::removedFromDocument): 22 (WebCore::StyleElement::childrenChanged): 23 * dom/StyleElement.h: Added. 24 (WebCore::StyleElement::~StyleElement): 25 (WebCore::StyleElement::isLoading): 26 Common base class for SVGStyleElement and HTMLStyleElement. 27 28 * html/HTMLStyleElement.cpp: 29 (WebCore::HTMLStyleElement::HTMLStyleElement): 30 (WebCore::HTMLStyleElement::parseMappedAttribute): 31 (WebCore::HTMLStyleElement::insertedIntoDocument): 32 (WebCore::HTMLStyleElement::removedFromDocument): 33 (WebCore::HTMLStyleElement::childrenChanged): 34 (WebCore::HTMLStyleElement::media): 35 (WebCore::HTMLStyleElement::setMedia): 36 (WebCore::HTMLStyleElement::type): 37 (WebCore::HTMLStyleElement::setType): 38 * html/HTMLStyleElement.h: 39 Use new common class. 40 41 * ksvg2/svg/SVGElement.cpp: 42 * ksvg2/svg/SVGElement.h: 43 * ksvg2/svg/SVGSVGElement.cpp: 44 (WebCore::SVGSVGElement::contentScriptType): 45 (WebCore::SVGSVGElement::contentStyleType): 46 * ksvg2/svg/SVGSVGElement.h: 47 Do not use tryGetAttribute(NS) anymore. 48 49 * ksvg2/svg/SVGStyleElement.cpp: 50 (WebCore::SVGStyleElement::SVGStyleElement): 51 (WebCore::SVGStyleElement::xmlspace): 52 (WebCore::SVGStyleElement::type): 53 (WebCore::SVGStyleElement::media): 54 (WebCore::SVGStyleElement::title): 55 (WebCore::SVGStyleElement::insertedIntoDocument): 56 (WebCore::SVGStyleElement::removedFromDocument): 57 (WebCore::SVGStyleElement::childrenChanged): 58 * ksvg2/svg/SVGStyleElement.h: 59 Use new common class. 60 1 61 2006-12-08 David Hyatt <hyatt@apple.com> 2 62 -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r18098 r18106 2202 2202 AA21ECCA0ABF0FBA002B834C /* CSSCursorImageValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA0978ED0ABAA6E100874480 /* CSSCursorImageValue.cpp */; }; 2203 2203 AA21ECCD0ABF0FC6002B834C /* CSSCursorImageValue.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0978EE0ABAA6E100874480 /* CSSCursorImageValue.h */; settings = {ATTRIBUTES = (Private, ); }; }; 2204 AA4C3A760B2B1679002334A2 /* StyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA4C3A740B2B1679002334A2 /* StyleElement.cpp */; }; 2205 AA4C3A770B2B1679002334A2 /* StyleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = AA4C3A750B2B1679002334A2 /* StyleElement.h */; }; 2204 2206 AAC8DAB10AA1002000DC0907 /* SVGMetadataElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AAC8DAAF0AA1002000DC0907 /* SVGMetadataElement.cpp */; }; 2205 2207 AAC8DAB20AA1002000DC0907 /* SVGMetadataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC8DAB00AA1002000DC0907 /* SVGMetadataElement.h */; }; … … 2824 2826 }; 2825 2827 /* End PBXBuildRule section */ 2826 2827 /* Begin PBXBuildStyle section */2828 BC18C5C70B2A883B0018461D /* Development */ = {2829 isa = PBXBuildStyle;2830 buildSettings = {2831 COPY_PHASE_STRIP = NO;2832 };2833 name = Development;2834 };2835 BC18C5C80B2A883B0018461D /* Deployment */ = {2836 isa = PBXBuildStyle;2837 buildSettings = {2838 COPY_PHASE_STRIP = YES;2839 };2840 name = Deployment;2841 };2842 /* End PBXBuildStyle section */2843 2828 2844 2829 /* Begin PBXContainerItemProxy section */ … … 5176 5161 AA0978ED0ABAA6E100874480 /* CSSCursorImageValue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSCursorImageValue.cpp; sourceTree = "<group>"; }; 5177 5162 AA0978EE0ABAA6E100874480 /* CSSCursorImageValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSCursorImageValue.h; sourceTree = "<group>"; }; 5163 AA4C3A740B2B1679002334A2 /* StyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StyleElement.cpp; sourceTree = "<group>"; }; 5164 AA4C3A750B2B1679002334A2 /* StyleElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StyleElement.h; sourceTree = "<group>"; }; 5178 5165 AAC8DAAF0AA1002000DC0907 /* SVGMetadataElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGMetadataElement.cpp; sourceTree = "<group>"; }; 5179 5166 AAC8DAB00AA1002000DC0907 /* SVGMetadataElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGMetadataElement.h; sourceTree = "<group>"; }; … … 9256 9243 isa = PBXGroup; 9257 9244 children = ( 9245 AA4C3A740B2B1679002334A2 /* StyleElement.cpp */, 9246 AA4C3A750B2B1679002334A2 /* StyleElement.h */, 9258 9247 BC3B364705C9D5E200E42902 /* AtomicStringList.h */, 9259 9248 A8C4A7FC09D563270003AC8D /* Attr.cpp */, … … 10841 10830 E1D8E3160B29E39C00F4BAF6 /* HTTPParsers.h in Headers */, 10842 10831 BC18C5D00B2A886F0018461D /* TextBreakIterator.h in Headers */, 10832 AA4C3A770B2B1679002334A2 /* StyleElement.h in Headers */, 10843 10833 ); 10844 10834 runOnlyForDeploymentPostprocessing = 0; … … 10878 10868 isa = PBXProject; 10879 10869 buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */; 10880 buildSettings = {10881 };10882 buildStyles = (10883 BC18C5C70B2A883B0018461D /* Development */,10884 BC18C5C80B2A883B0018461D /* Deployment */,10885 );10886 10870 hasScannedForEncodings = 1; 10887 10871 knownRegions = ( … … 12164 12148 E1D8E31A0B29E3B600F4BAF6 /* HTTPParsers.cpp in Sources */, 12165 12149 BC18C5D10B2A886F0018461D /* TextBreakIteratorICU.cpp in Sources */, 12150 AA4C3A760B2B1679002334A2 /* StyleElement.cpp in Sources */, 12166 12151 ); 12167 12152 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/dom/Document.cpp
r18098 r18106 1854 1854 } 1855 1855 1856 } 1857 else if (n->isHTMLElement() && (n->hasTagName(linkTag) || n->hasTagName(styleTag))) { 1858 HTMLElement *e = static_cast<HTMLElement *>(n); 1856 } else if (n->isHTMLElement() && (n->hasTagName(linkTag) || n->hasTagName(styleTag)) 1857 #ifdef SVG_SUPPORT 1858 || (n->isSVGElement() && n->hasTagName(SVGNames::styleTag)) 1859 #endif 1860 ) { 1861 Element* e = static_cast<Element*>(n); 1859 1862 DeprecatedString title = e->getAttribute(titleAttr).deprecatedString(); 1860 1863 bool enabledViaScript = false; … … 1871 1874 // Get the current preferred styleset. This is the 1872 1875 // set of sheets that will be enabled. 1876 #ifdef SVG_SUPPORT 1877 if (n->isSVGElement() && n->hasTagName(SVGNames::styleTag)) 1878 sheet = static_cast<SVGStyleElement*>(n)->sheet(); 1879 else 1880 #endif 1873 1881 if (e->hasLocalName(linkTag)) 1874 1882 sheet = static_cast<HTMLLinkElement*>(n)->sheet(); … … 1894 1902 if (title != m_preferredStylesheetSet) 1895 1903 sheet = 0; 1904 1905 #ifdef SVG_SUPPORT 1906 if (!n->isHTMLElement()) 1907 title = title.replace('&', "&&"); 1908 #endif 1896 1909 } 1897 1910 } 1898 #ifdef SVG_SUPPORT1899 else if (n->isSVGElement() && n->hasTagName(SVGNames::styleTag)) {1900 DeprecatedString title;1901 // <STYLE> element1902 SVGStyleElement *s = static_cast<SVGStyleElement*>(n);1903 if (!s->isLoading()) {1904 sheet = s->sheet();1905 if(sheet)1906 title = s->getAttribute(SVGNames::titleAttr).deprecatedString();1907 }1908 1909 if (!title.isEmpty() && m_preferredStylesheetSet.isEmpty())1910 m_preferredStylesheetSet = m_selectedStylesheetSet = title;1911 1912 if (!title.isEmpty()) {1913 if (title != m_preferredStylesheetSet)1914 sheet = 0; // don't use it1915 1916 title = title.replace('&', "&&");1917 }1918 }1919 #endif1920 1911 1921 1912 if (sheet) { -
trunk/WebCore/html/HTMLStyleElement.cpp
r17825 r18106 27 27 #include "Document.h" 28 28 #include "HTMLNames.h" 29 #include "MediaList.h"30 #include "MediaQueryEvaluator.h"31 29 32 30 namespace WebCore { … … 36 34 HTMLStyleElement::HTMLStyleElement(Document* doc) 37 35 : HTMLElement(styleTag, doc) 38 , m_loading(false)39 36 { 40 }41 42 StyleSheet* HTMLStyleElement::sheet() const43 {44 return m_sheet.get();45 37 } 46 38 … … 48 40 void HTMLStyleElement::parseMappedAttribute(MappedAttribute *attr) 49 41 { 50 if (attr->name() == typeAttr) 51 m_type = attr->value().domString().lower(); 52 else if (attr->name() == mediaAttr) 42 if (attr->name() == mediaAttr) 53 43 m_media = attr->value().deprecatedString().lower(); 54 44 else … … 59 49 { 60 50 HTMLElement::insertedIntoDocument(); 61 if (m_sheet) 62 document()->updateStyleSelector(); 51 StyleElement::insertedIntoDocument(document()); 63 52 } 64 53 … … 66 55 { 67 56 HTMLElement::removedFromDocument(); 68 if (m_sheet) 69 document()->updateStyleSelector(); 57 StyleElement::removedFromDocument(document()); 70 58 } 71 59 72 60 void HTMLStyleElement::childrenChanged() 73 61 { 74 String text = ""; 75 76 for (Node* c = firstChild(); c; c = c->nextSibling()) 77 if (c->nodeType() == TEXT_NODE || c->nodeType() == CDATA_SECTION_NODE || c->nodeType() == COMMENT_NODE) 78 text += c->nodeValue(); 79 80 if (m_sheet) { 81 if (static_cast<CSSStyleSheet *>(m_sheet.get())->isLoading()) 82 document()->stylesheetLoaded(); // Remove ourselves from the sheet list. 83 m_sheet = 0; 84 } 85 86 m_loading = false; 87 if (m_type.isEmpty() || m_type == "text/css") { // Type must be empty or CSS 88 RefPtr<MediaList> media = new MediaList((CSSStyleSheet*)0, m_media, true); 89 MediaQueryEvaluator screenEval("screen", true); 90 MediaQueryEvaluator printEval("print", true); 91 if (screenEval.eval(media.get()) || printEval.eval(media.get())) { 92 document()->addPendingSheet(); 93 m_loading = true; 94 m_sheet = new CSSStyleSheet(this, String(), document()->inputEncoding()); 95 m_sheet->parseString(text, !document()->inCompatMode()); 96 m_sheet->setMedia(media.get()); 97 m_loading = false; 98 } 99 } 100 101 if (!isLoading() && m_sheet) 102 document()->stylesheetLoaded(); 62 StyleElement::childrenChanged(this); 103 63 } 104 64 … … 131 91 } 132 92 133 StringHTMLStyleElement::media() const93 const AtomicString& HTMLStyleElement::media() const 134 94 { 135 95 return getAttribute(mediaAttr); 136 96 } 137 97 138 void HTMLStyleElement::setMedia(const String &value)98 void HTMLStyleElement::setMedia(const AtomicString &value) 139 99 { 140 100 setAttribute(mediaAttr, value); 141 101 } 142 102 143 StringHTMLStyleElement::type() const103 const AtomicString& HTMLStyleElement::type() const 144 104 { 145 105 return getAttribute(typeAttr); 146 106 } 147 107 148 void HTMLStyleElement::setType(const String &value)108 void HTMLStyleElement::setType(const AtomicString &value) 149 109 { 150 110 setAttribute(typeAttr, value); -
trunk/WebCore/html/HTMLStyleElement.h
r17825 r18106 25 25 #define HTMLStyleElement_H 26 26 27 #include "CSSStyleSheet.h" 27 28 #include "HTMLElement.h" 28 #include " CSSStyleSheet.h"29 #include "StyleElement.h" 29 30 30 31 namespace WebCore { 31 32 32 class HTMLStyleElement : public HTMLElement 33 class HTMLStyleElement : public HTMLElement, public StyleElement 33 34 { 34 35 public: … … 39 40 virtual bool checkDTD(const Node* newChild) { return newChild->isTextNode(); } 40 41 41 StyleSheet* sheet() const;42 43 42 // overload from HTMLElement 44 43 virtual void parseMappedAttribute(MappedAttribute*); … … 47 46 virtual void childrenChanged(); 48 47 49 bool isLoading() const;48 virtual bool isLoading() const; 50 49 virtual bool sheetLoaded(); 51 50 … … 53 52 void setDisabled(bool); 54 53 55 Stringmedia() const;56 void setMedia(const String&);54 const AtomicString& media() const; 55 void setMedia(const AtomicString&); 57 56 58 Stringtype() const;59 void setType(const String&);57 const AtomicString& type() const; 58 void setType(const AtomicString&); 60 59 61 60 protected: 62 RefPtr<CSSStyleSheet> m_sheet;63 bool m_loading;64 String m_type;65 61 String m_media; 66 62 }; -
trunk/WebCore/ksvg2/svg/SVGElement.cpp
r17976 r18106 106 106 } 107 107 108 AtomicString SVGElement::tryGetAttribute(const String& name, AtomicString defaultVal) const109 {110 if (hasAttribute(name))111 return getAttribute(name);112 113 return defaultVal;114 }115 116 AtomicString SVGElement::tryGetAttributeNS(const String& namespaceURI, const String& localName, AtomicString defaultVal) const117 {118 if (hasAttributeNS(namespaceURI, localName))119 return getAttributeNS(namespaceURI, localName);120 121 return defaultVal;122 }123 124 108 void SVGElement::addSVGEventListener(const AtomicString& eventType, const Attribute* attr) 125 109 { -
trunk/WebCore/ksvg2/svg/SVGElement.h
r17062 r18106 161 161 SVGElement* viewportElement() const; 162 162 163 // Helper methods that returns the attr value if attr is set, otherwise the default value.164 // It throws NO_MODIFICATION_ALLOWED_ERR if the element is read-only.165 AtomicString tryGetAttribute(const String& name, AtomicString defaultValue = AtomicString()) const;166 AtomicString tryGetAttributeNS(const String& namespaceURI, const String& localName, AtomicString defaultValue = AtomicString()) const;167 168 163 // Internal 169 164 virtual void parseMappedAttribute(MappedAttribute*); -
trunk/WebCore/ksvg2/svg/SVGSVGElement.cpp
r18030 r18106 35 35 #include "SVGLength.h" 36 36 #include "SVGMatrix.h" 37 #include "SVGNames.h" 37 38 #include "SVGPreserveAspectRatio.h" 38 39 #include "SVGTransform.h" … … 44 45 using namespace HTMLNames; 45 46 using namespace EventNames; 47 using namespace SVGNames; 46 48 47 49 SVGSVGElement::SVGSVGElement(const QualifiedName& tagName, Document* doc) … … 77 79 ANIMATED_PROPERTY_DEFINITIONS(SVGSVGElement, SVGLength*, Length, length, Height, height, SVGNames::heightAttr.localName(), m_height.get()) 78 80 79 AtomicString SVGSVGElement::contentScriptType() const 80 { 81 return tryGetAttribute("contentScriptType", "text/ecmascript"); 81 const AtomicString& SVGSVGElement::contentScriptType() const 82 { 83 static const AtomicString defaultValue("text/ecmascript"); 84 const AtomicString& n = getAttribute(contentScriptTypeAttr); 85 return n.isNull() ? defaultValue : n; 82 86 } 83 87 … … 87 91 } 88 92 89 AtomicString SVGSVGElement::contentStyleType() const 90 { 91 return tryGetAttribute("contentStyleType", "text/css"); 93 const AtomicString& SVGSVGElement::contentStyleType() const 94 { 95 static const AtomicString defaultValue("text/css"); 96 const AtomicString& n = getAttribute(contentStyleTypeAttr); 97 return n.isNull() ? defaultValue : n; 92 98 } 93 99 -
trunk/WebCore/ksvg2/svg/SVGSVGElement.h
r18030 r18106 62 62 63 63 // 'SVGSVGElement' functions 64 AtomicStringcontentScriptType() const;64 const AtomicString& contentScriptType() const; 65 65 void setContentScriptType(const AtomicString& type); 66 66 67 AtomicStringcontentStyleType() const;67 const AtomicString& contentStyleType() const; 68 68 void setContentStyleType(const AtomicString& type); 69 69 -
trunk/WebCore/ksvg2/svg/SVGStyleElement.cpp
r17136 r18106 1 1 /* 2 2 Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org> 3 2004, 2005 Rob Buis <buis@kde.org>3 2004, 2005, 2006 Rob Buis <buis@kde.org> 4 4 Copyright (C) 2006 Apple Computer, Inc. 5 5 … … 29 29 #include "Document.h" 30 30 #include "ExceptionCode.h" 31 #include "MediaList.h" 32 #include "MediaQueryEvaluator.h" 33 #include "PlatformString.h" 31 #include "HTMLNames.h" 34 32 35 33 namespace WebCore { 36 34 37 SVGStyleElement::SVGStyleElement(const QualifiedName& tagName, Document *doc) : SVGElement(tagName, doc) 38 { 39 m_loading = false; 40 } 35 using namespace HTMLNames; 41 36 42 SVGStyleElement::~SVGStyleElement() 37 SVGStyleElement::SVGStyleElement(const QualifiedName& tagName, Document* doc) 38 : SVGElement(tagName, doc) 43 39 { 44 40 } 45 41 46 AtomicStringSVGStyleElement::xmlspace() const42 const AtomicString& SVGStyleElement::xmlspace() const 47 43 { 48 return tryGetAttribute("xml:space"); 44 static const AtomicString defaultValue("xml:space"); 45 return getAttribute(defaultValue); 49 46 } 50 47 … … 54 51 } 55 52 56 AtomicStringSVGStyleElement::type() const53 const AtomicString& SVGStyleElement::type() const 57 54 { 58 return tryGetAttribute("type", "text/css"); 55 static const AtomicString defaultValue("text/css"); 56 const AtomicString& n = getAttribute(typeAttr); 57 return n.isNull() ? defaultValue : n; 59 58 } 60 59 … … 64 63 } 65 64 66 AtomicStringSVGStyleElement::media() const65 const AtomicString& SVGStyleElement::media() const 67 66 { 68 return tryGetAttribute("media", "all"); 67 static const AtomicString defaultValue("all"); 68 const AtomicString& n = getAttribute(mediaAttr); 69 return n.isNull() ? defaultValue : n; 69 70 } 70 71 … … 74 75 } 75 76 76 AtomicStringSVGStyleElement::title() const77 const AtomicString& SVGStyleElement::title() const 77 78 { 78 return tryGetAttribute("title");79 return getAttribute(titleAttr); 79 80 } 80 81 … … 84 85 } 85 86 86 CSSStyleSheet *SVGStyleElement::sheet()87 void SVGStyleElement::insertedIntoDocument() 87 88 { 88 return m_sheet.get(); 89 SVGElement::insertedIntoDocument(); 90 StyleElement::insertedIntoDocument(document()); 91 } 92 93 void SVGStyleElement::removedFromDocument() 94 { 95 SVGElement::removedFromDocument(); 96 StyleElement::removedFromDocument(document()); 89 97 } 90 98 91 99 void SVGStyleElement::childrenChanged() 92 100 { 93 SVGElement::childrenChanged(); 94 95 if(m_sheet) 96 m_sheet = 0; 97 98 // FIXME: this code should be shared with HTMLStyleElement::childrenChanged() 99 m_loading = false; 100 MediaQueryEvaluator screenEval("screen", true); 101 MediaQueryEvaluator printEval("print", true); 102 RefPtr<MediaList> mediaList = new MediaList((CSSStyleSheet*)0, media()); 103 if ((type().isEmpty() || type() == "text/css") && (screenEval.eval(mediaList.get()) || printEval.eval(mediaList.get()))) { 104 ownerDocument()->addPendingSheet(); 105 106 m_loading = true; 107 108 m_sheet = new CSSStyleSheet(this, String(), document()->inputEncoding()); 109 m_sheet->parseString(textContent()); // SVG css is always parsed in strict mode 110 111 m_sheet->setMedia(mediaList.get()); 112 m_loading = false; 113 } 114 115 if(!isLoading() && m_sheet) 116 document()->stylesheetLoaded(); 117 } 118 119 bool SVGStyleElement::isLoading() const 120 { 121 return false; 101 StyleElement::childrenChanged(this); 122 102 } 123 103 -
trunk/WebCore/ksvg2/svg/SVGStyleElement.h
r15828 r18106 1 1 /* 2 2 Copyright (C) 2004, 2005 Nikolas Zimmermann <wildfox@kde.org> 3 2004, 2005 Rob Buis <buis@kde.org>3 2004, 2005, 2006 Rob Buis <buis@kde.org> 4 4 5 5 This file is part of the KDE project … … 26 26 27 27 #include <SVGElement.h> 28 #include "StyleElement.h" 28 29 29 30 namespace WebCore { 30 31 31 class CSSStyleSheet; 32 33 class SVGStyleElement : public SVGElement { 32 class SVGStyleElement : public SVGElement, public StyleElement { 34 33 public: 35 34 SVGStyleElement(const QualifiedName&, Document*); 36 virtual ~SVGStyleElement();37 35 38 36 // Derived from: 'Element' 37 virtual void insertedIntoDocument(); 38 virtual void removedFromDocument(); 39 39 virtual void childrenChanged(); 40 40 41 41 // 'SVGStyleElement' functions 42 AtomicStringxmlspace() const;42 const AtomicString& xmlspace() const; 43 43 void setXmlspace(const AtomicString&, ExceptionCode&); 44 44 45 AtomicStringtype() const;45 virtual const AtomicString& type() const; 46 46 void setType(const AtomicString&, ExceptionCode&); 47 47 48 AtomicStringmedia() const;48 const AtomicString& media() const; 49 49 void setMedia(const AtomicString&, ExceptionCode&); 50 50 51 AtomicStringtitle() const;51 const AtomicString& title() const; 52 52 void setTitle(const AtomicString&, ExceptionCode&); 53 54 CSSStyleSheet *sheet();55 56 // Internal57 bool isLoading() const;58 59 protected:60 RefPtr<CSSStyleSheet> m_sheet;61 bool m_loading;62 53 }; 63 54
Note: See TracChangeset
for help on using the changeset viewer.