diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-22 09:09:45 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-11-22 09:10:13 +0100 |
commit | 470286ecfe79d59df14944e5b5d34630fc739391 (patch) | |
tree | 43983212872e06cebefd2ae474418fa2908ca54c /Source/WebCore/css/CSSRule.cpp | |
parent | 23037105e948c2065da5a937d3a2396b0ff45c1e (diff) | |
download | qtwebkit-470286ecfe79d59df14944e5b5d34630fc739391.tar.gz |
Imported WebKit commit e89504fa9195b2063b2530961d4b73dd08de3242 (http://svn.webkit.org/repository/webkit/trunk@135485)
Change-Id: I03774e5ac79721c13ffa30d152537a74d0b12e66
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'Source/WebCore/css/CSSRule.cpp')
-rw-r--r-- | Source/WebCore/css/CSSRule.cpp | 192 |
1 files changed, 7 insertions, 185 deletions
diff --git a/Source/WebCore/css/CSSRule.cpp b/Source/WebCore/css/CSSRule.cpp index 6c522bd03..1f582526c 100644 --- a/Source/WebCore/css/CSSRule.cpp +++ b/Source/WebCore/css/CSSRule.cpp @@ -1,7 +1,7 @@ /* * (C) 1999-2003 Lars Knoll (knoll@kde.org) * (C) 2002-2003 Dirk Mueller (mueller@kde.org) - * Copyright (C) 2002, 2005, 2006, 2007 Apple Inc. All rights reserved. + * Copyright (C) 2002, 2005, 2006, 2007, 2012 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -22,25 +22,15 @@ #include "config.h" #include "CSSRule.h" -#include "CSSCharsetRule.h" -#include "CSSFontFaceRule.h" -#include "CSSImportRule.h" -#include "CSSMediaRule.h" -#include "CSSPageRule.h" -#include "CSSStyleRule.h" #include "CSSStyleSheet.h" -#include "CSSUnknownRule.h" #include "NotImplemented.h" #include "StyleRule.h" #include "StyleSheetContents.h" -#include "WebKitCSSKeyframeRule.h" -#include "WebKitCSSKeyframesRule.h" -#include "WebKitCSSRegionRule.h" -#include "WebKitCSSViewportRule.h" namespace WebCore { struct SameSizeAsCSSRule : public RefCounted<SameSizeAsCSSRule> { + virtual ~SameSizeAsCSSRule(); unsigned char bitfields; void* pointerUnion; }; @@ -60,172 +50,13 @@ void CSSRule::setCssText(const String& /*cssText*/, ExceptionCode& /*ec*/) notImplemented(); } -String CSSRule::cssText() const -{ - switch (type()) { - case UNKNOWN_RULE: - return String(); - case STYLE_RULE: - return static_cast<const CSSStyleRule*>(this)->cssText(); - case PAGE_RULE: - return static_cast<const CSSPageRule*>(this)->cssText(); - case CHARSET_RULE: - return static_cast<const CSSCharsetRule*>(this)->cssText(); - case IMPORT_RULE: - return static_cast<const CSSImportRule*>(this)->cssText(); - case MEDIA_RULE: - return static_cast<const CSSMediaRule*>(this)->cssText(); - case FONT_FACE_RULE: - return static_cast<const CSSFontFaceRule*>(this)->cssText(); - case WEBKIT_KEYFRAMES_RULE: - return static_cast<const WebKitCSSKeyframesRule*>(this)->cssText(); - case WEBKIT_KEYFRAME_RULE: - return static_cast<const WebKitCSSKeyframeRule*>(this)->cssText(); -#if ENABLE(CSS_DEVICE_ADAPTATION) - case WEBKIT_VIEWPORT_RULE: - return static_cast<const WebKitCSSViewportRule*>(this)->cssText(); -#endif -#if ENABLE(CSS_REGIONS) - case WEBKIT_REGION_RULE: - return static_cast<const WebKitCSSRegionRule*>(this)->cssText(); -#endif - } - ASSERT_NOT_REACHED(); - return String(); -} - -void CSSRule::destroy() -{ - switch (type()) { - case UNKNOWN_RULE: - delete static_cast<CSSUnknownRule*>(this); - return; - case STYLE_RULE: - delete static_cast<CSSStyleRule*>(this); - return; - case PAGE_RULE: - delete static_cast<CSSPageRule*>(this); - return; - case CHARSET_RULE: - delete static_cast<CSSCharsetRule*>(this); - return; - case IMPORT_RULE: - delete static_cast<CSSImportRule*>(this); - return; - case MEDIA_RULE: - delete static_cast<CSSMediaRule*>(this); - return; - case FONT_FACE_RULE: - delete static_cast<CSSFontFaceRule*>(this); - return; - case WEBKIT_KEYFRAMES_RULE: - delete static_cast<WebKitCSSKeyframesRule*>(this); - return; - case WEBKIT_KEYFRAME_RULE: - delete static_cast<WebKitCSSKeyframeRule*>(this); - return; -#if ENABLE(CSS_DEVICE_ADAPTATION) - case WEBKIT_VIEWPORT_RULE: - delete static_cast<WebKitCSSViewportRule*>(this); - return; -#endif -#if ENABLE(CSS_REGIONS) - case WEBKIT_REGION_RULE: - delete static_cast<WebKitCSSRegionRule*>(this); - return; -#endif - } - ASSERT_NOT_REACHED(); -} - -void CSSRule::reattach(StyleRuleBase* rule) -{ - switch (type()) { - case UNKNOWN_RULE: - return; - case STYLE_RULE: - static_cast<CSSStyleRule*>(this)->reattach(static_cast<StyleRule*>(rule)); - return; - case PAGE_RULE: - static_cast<CSSPageRule*>(this)->reattach(static_cast<StyleRulePage*>(rule)); - return; - case CHARSET_RULE: - ASSERT(!rule); - return; - case IMPORT_RULE: - // FIXME: Implement when enabling caching for stylesheets with import rules. - ASSERT_NOT_REACHED(); - return; - case MEDIA_RULE: - static_cast<CSSMediaRule*>(this)->reattach(static_cast<StyleRuleMedia*>(rule)); - return; - case FONT_FACE_RULE: - static_cast<CSSFontFaceRule*>(this)->reattach(static_cast<StyleRuleFontFace*>(rule)); - return; - case WEBKIT_KEYFRAMES_RULE: - static_cast<WebKitCSSKeyframesRule*>(this)->reattach(static_cast<StyleRuleKeyframes*>(rule)); - return; - case WEBKIT_KEYFRAME_RULE: - // No need to reattach, the underlying data is shareable on mutation. - ASSERT_NOT_REACHED(); - return; -#if ENABLE(CSS_DEVICE_ADAPTATION) - case WEBKIT_VIEWPORT_RULE: - static_cast<WebKitCSSViewportRule*>(this)->reattach(static_cast<StyleRuleViewport*>(rule)); - return; -#endif -#if ENABLE(CSS_REGIONS) - case WEBKIT_REGION_RULE: - static_cast<WebKitCSSRegionRule*>(this)->reattach(static_cast<StyleRuleRegion*>(rule)); - return; -#endif - } - ASSERT_NOT_REACHED(); -} - void CSSRule::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - switch (type()) { - case UNKNOWN_RULE: - static_cast<const CSSUnknownRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case STYLE_RULE: - static_cast<const CSSStyleRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case PAGE_RULE: - static_cast<const CSSPageRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case CHARSET_RULE: - static_cast<const CSSCharsetRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case IMPORT_RULE: - static_cast<const CSSImportRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case MEDIA_RULE: - static_cast<const CSSMediaRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case FONT_FACE_RULE: - static_cast<const CSSFontFaceRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case WEBKIT_KEYFRAMES_RULE: - static_cast<const WebKitCSSKeyframesRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; - case WEBKIT_KEYFRAME_RULE: - static_cast<const WebKitCSSKeyframeRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; -#if ENABLE(CSS_DEVICE_ADAPTATION) - case WEBKIT_VIEWPORT_RULE: - static_cast<const WebKitCSSViewportRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; -#endif -#if ENABLE(CSS_REGIONS) - case WEBKIT_REGION_RULE: - static_cast<const WebKitCSSRegionRule*>(this)->reportDescendantMemoryUsage(memoryObjectInfo); - return; -#endif - } - ASSERT_NOT_REACHED(); - return; + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS); + if (m_parentIsRule) + info.addMember(m_parentRule); + else + info.addMember(m_parentStyleSheet); } const CSSParserContext& CSSRule::parserContext() const @@ -234,13 +65,4 @@ const CSSParserContext& CSSRule::parserContext() const return styleSheet ? styleSheet->contents()->parserContext() : strictCSSParserContext(); } -void CSSRule::reportBaseClassMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const -{ - MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS); - if (m_parentIsRule) - info.addMember(m_parentRule); - else - info.addMember(m_parentStyleSheet); -} - } // namespace WebCore |