summaryrefslogtreecommitdiff
path: root/Source/WebCore/css/CSSRule.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-22 09:09:45 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-22 09:10:13 +0100
commit470286ecfe79d59df14944e5b5d34630fc739391 (patch)
tree43983212872e06cebefd2ae474418fa2908ca54c /Source/WebCore/css/CSSRule.cpp
parent23037105e948c2065da5a937d3a2396b0ff45c1e (diff)
downloadqtwebkit-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.cpp192
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