summaryrefslogtreecommitdiffstats
path: root/WebCore/css/CSSStyleSelector.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/css/CSSStyleSelector.h')
-rw-r--r--WebCore/css/CSSStyleSelector.h43
1 files changed, 24 insertions, 19 deletions
diff --git a/WebCore/css/CSSStyleSelector.h b/WebCore/css/CSSStyleSelector.h
index b0d977e..28d4488 100644
--- a/WebCore/css/CSSStyleSelector.h
+++ b/WebCore/css/CSSStyleSelector.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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
@@ -40,6 +40,7 @@ class CSSPrimitiveValue;
class CSSProperty;
class CSSFontFace;
class CSSFontFaceRule;
+class CSSImageValue;
class CSSRuleData;
class CSSRuleDataList;
class CSSRuleList;
@@ -58,6 +59,7 @@ class Frame;
class FrameView;
class KURL;
class KeyframeList;
+class KeyframeValue;
class MediaQueryEvaluator;
class Node;
class Settings;
@@ -113,7 +115,7 @@ public:
RenderStyle* style() const { return m_style.get(); }
- PassRefPtr<RenderStyle> styleForKeyframe(const RenderStyle*, const WebKitCSSKeyframeRule*, KeyframeList&);
+ PassRefPtr<RenderStyle> styleForKeyframe(const RenderStyle*, const WebKitCSSKeyframeRule*, KeyframeValue&);
public:
// These methods will give back the set of rules that matched for a given element (or a pseudo-element).
@@ -194,8 +196,8 @@ public:
bool isFirstPage(int pageIndex) const;
String pageName(int pageIndex) const;
- CSSRuleSet* m_authorStyle;
- CSSRuleSet* m_userStyle;
+ OwnPtr<CSSRuleSet> m_authorStyle;
+ OwnPtr<CSSRuleSet> m_userStyle;
bool m_hasUAAppearance;
BorderData m_borderData;
@@ -234,22 +236,20 @@ public:
private:
static RenderStyle* s_styleNotYetAvailable;
- void init();
-
void matchUARules(int& firstUARule, int& lastUARule);
void updateFont();
void cacheBorderAndBackground();
- void mapFillAttachment(FillLayer*, CSSValue*);
- void mapFillClip(FillLayer*, CSSValue*);
- void mapFillComposite(FillLayer*, CSSValue*);
- void mapFillOrigin(FillLayer*, CSSValue*);
- void mapFillImage(FillLayer*, CSSValue*);
- void mapFillRepeatX(FillLayer*, CSSValue*);
- void mapFillRepeatY(FillLayer*, CSSValue*);
- void mapFillSize(FillLayer*, CSSValue*);
- void mapFillXPosition(FillLayer*, CSSValue*);
- void mapFillYPosition(FillLayer*, CSSValue*);
+ void mapFillAttachment(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillClip(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillComposite(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillOrigin(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillImage(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillRepeatX(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillRepeatY(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillSize(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillXPosition(CSSPropertyID, FillLayer*, CSSValue*);
+ void mapFillYPosition(CSSPropertyID, FillLayer*, CSSValue*);
void mapAnimationDelay(Animation*, CSSValue*);
void mapAnimationDirection(Animation*, CSSValue*);
@@ -261,7 +261,7 @@ public:
void mapAnimationProperty(Animation*, CSSValue*);
void mapAnimationTimingFunction(Animation*, CSSValue*);
- void mapNinePieceImage(CSSValue*, NinePieceImage&);
+ void mapNinePieceImage(CSSPropertyID, CSSValue*, NinePieceImage&);
void applyProperty(int id, CSSValue*);
void applyPageSizeProperty(CSSValue*);
@@ -272,7 +272,10 @@ public:
void applySVGProperty(int id, CSSValue*);
#endif
- StyleImage* styleImage(CSSValue* value);
+ void loadPendingImages();
+
+ StyleImage* styleImage(CSSPropertyID, CSSValue* value);
+ StyleImage* cachedOrPendingFromValue(CSSPropertyID property, CSSImageValue* value);
// We collect the set of decls that match in |m_matchedDecls|. We then walk the
// set of matched decls four times, once for those properties that others depend on (like font-size),
@@ -285,8 +288,10 @@ public:
Vector<CSSRuleData*, 32> m_matchedRules;
RefPtr<CSSRuleList> m_ruleList;
+
+ HashSet<int> m_pendingImageProperties; // Hash of CSSPropertyIDs
- MediaQueryEvaluator* m_medium;
+ OwnPtr<MediaQueryEvaluator> m_medium;
RefPtr<RenderStyle> m_rootDefaultStyle;
PseudoId m_dynamicPseudo;