Setting -webkit-filter: in :active selector causes failure to redraw
[WebKit-https.git] / Source / WebCore / rendering / style / StyleRareNonInheritedData.h
index 149398a..2a00fa3 100644 (file)
 #ifndef StyleRareNonInheritedData_h
 #define StyleRareNonInheritedData_h
 
+#include "BasicShapes.h"
+#include "ClipPathOperation.h"
 #include "CounterDirectives.h"
 #include "CursorData.h"
 #include "DataRef.h"
 #include "FillLayer.h"
 #include "LineClampValue.h"
 #include "NinePieceImage.h"
-#include "StyleTransformData.h"
+#include "ShapeValue.h"
 #include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/Vector.h>
 namespace WebCore {
 
 class AnimationList;
-class CSSStyleSelector;
 class ShadowData;
+class StyleDeprecatedFlexibleBoxData;
+#if ENABLE(CSS_FILTERS)
+class StyleFilterData;
+#endif
 class StyleFlexibleBoxData;
+class StyleGridData;
+class StyleGridItemData;
 class StyleMarqueeData;
 class StyleMultiColData;
 class StyleReflection;
+class StyleResolver;
 class StyleTransformData;
 
-struct ContentData;
+class ContentData;
 struct LengthSize;
 
 #if ENABLE(DASHBOARD_SUPPORT)
@@ -76,44 +84,48 @@ public:
     bool operator==(const StyleRareNonInheritedData&) const;
     bool operator!=(const StyleRareNonInheritedData& o) const { return !(*this == o); }
 
-    bool contentDataEquivalent(const StyleRareNonInheritedData& o) const;
-    bool shadowDataEquivalent(const StyleRareNonInheritedData& o) const;
-    bool reflectionDataEquivalent(const StyleRareNonInheritedData& o) const;
+    bool contentDataEquivalent(const StyleRareNonInheritedData&) const;
+    bool counterDataEquivalent(const StyleRareNonInheritedData&) const;
+    bool shadowDataEquivalent(const StyleRareNonInheritedData&) const;
+    bool reflectionDataEquivalent(const StyleRareNonInheritedData&) const;
     bool animationDataEquivalent(const StyleRareNonInheritedData&) const;
     bool transitionDataEquivalent(const StyleRareNonInheritedData&) const;
+    bool hasFilters() const;
+    bool hasOpacity() const { return opacity < 1; }
+
+    float opacity;
+
+    float m_aspectRatioDenominator;
+    float m_aspectRatioNumerator;
+
+    float m_perspective;
+    Length m_perspectiveOriginX;
+    Length m_perspectiveOriginY;
 
     LineClampValue lineClamp; // An Apple extension.
 #if ENABLE(DASHBOARD_SUPPORT)
     Vector<StyleDashboardRegion> m_dashboardRegions;
 #endif
-    float opacity; // Whether or not we're transparent.
+#if ENABLE(DRAGGABLE_REGION)
+    DraggableRegionMode m_draggableRegionMode;
+#endif
 
-    DataRef<StyleFlexibleBoxData> flexibleBox; // Flexible box properties 
-    DataRef<StyleMarqueeData> marquee; // Marquee properties
+    DataRef<StyleDeprecatedFlexibleBoxData> m_deprecatedFlexibleBox; // Flexible box properties
+    DataRef<StyleFlexibleBoxData> m_flexibleBox;
+    DataRef<StyleMarqueeData> m_marquee; // Marquee properties
     DataRef<StyleMultiColData> m_multiCol; //  CSS3 multicol properties
     DataRef<StyleTransformData> m_transform; // Transform properties (rotate, scale, skew, etc.)
 
+#if ENABLE(CSS_FILTERS)
+    DataRef<StyleFilterData> m_filter; // Filter operations (url, sepia, blur, etc.)
+#endif
+
+    DataRef<StyleGridData> m_grid;
+    DataRef<StyleGridItemData> m_gridItem;
+
     OwnPtr<ContentData> m_content;
     OwnPtr<CounterDirectiveMap> m_counterDirectives;
 
-    unsigned userDrag : 2; // EUserDrag
-    bool textOverflow : 1; // Whether or not lines that spill out should be truncated with "..."
-    unsigned marginBeforeCollapse : 2; // EMarginCollapse
-    unsigned marginAfterCollapse : 2; // EMarginCollapse
-    unsigned matchNearestMailBlockquoteColor : 1; // EMatchNearestMailBlockquoteColor, FIXME: This property needs to be eliminated. It should never have been added.
-    unsigned m_appearance : 6; // EAppearance
-    unsigned m_borderFit : 1; // EBorderFit
-    unsigned m_textCombine : 1; // CSS3 text-combine properties
-    
-    short m_counterIncrement;
-    short m_counterReset;
-    
-    // This flag preserves the fact that the position attribute was originally specified as relative.
-    unsigned m_positionWasRelative : 1;
-
-#if USE(ACCELERATED_COMPOSITING)
-    bool m_runningAcceleratedAnimation : 1;
-#endif
     OwnPtr<ShadowData> m_boxShadow;  // For box-shadow decorations.
     
     RefPtr<StyleReflection> m_boxReflect;
@@ -124,14 +136,70 @@ public:
     FillLayer m_mask;
     NinePieceImage m_maskBoxImage;
 
-    ETransformStyle3D m_transformStyle3D;
-    EBackfaceVisibility m_backfaceVisibility;
-    float m_perspective;
-    Length m_perspectiveOriginX;
-    Length m_perspectiveOriginY;
-
     LengthSize m_pageSize;
-    PageSizeType m_pageSizeType;
+
+#if ENABLE(CSS_SHAPES)
+    RefPtr<ShapeValue> m_shapeInside;
+    RefPtr<ShapeValue> m_shapeOutside;
+    Length m_shapeMargin;
+    Length m_shapePadding;
+#endif
+
+    RefPtr<ClipPathOperation> m_clipPath;
+
+#if ENABLE(CSS3_TEXT)
+    Color m_textDecorationColor;
+    Color m_visitedLinkTextDecorationColor;
+#endif // CSS3_TEXT
+    Color m_visitedLinkBackgroundColor;
+    Color m_visitedLinkOutlineColor;
+    Color m_visitedLinkBorderLeftColor;
+    Color m_visitedLinkBorderRightColor;
+    Color m_visitedLinkBorderTopColor;
+    Color m_visitedLinkBorderBottomColor;
+
+    int m_order;
+
+    AtomicString m_flowThread;
+    AtomicString m_regionThread;
+    unsigned m_regionFragment : 1; // RegionFragment
+
+    unsigned m_regionBreakAfter : 2; // EPageBreak
+    unsigned m_regionBreakBefore : 2; // EPageBreak
+    unsigned m_regionBreakInside : 2; // EPageBreak
+
+    unsigned m_pageSizeType : 2; // PageSizeType
+    unsigned m_transformStyle3D : 1; // ETransformStyle3D
+    unsigned m_backfaceVisibility : 1; // EBackfaceVisibility
+
+    unsigned m_alignContent : 3; // EAlignContent
+    unsigned m_alignItems : 3; // EAlignItems
+    unsigned m_alignSelf : 3; // EAlignItems
+    unsigned m_justifyContent : 3; // EJustifyContent
+
+    unsigned userDrag : 2; // EUserDrag
+    unsigned textOverflow : 1; // Whether or not lines that spill out should be truncated with "..."
+    unsigned marginBeforeCollapse : 2; // EMarginCollapse
+    unsigned marginAfterCollapse : 2; // EMarginCollapse
+    unsigned m_appearance : 6; // EAppearance
+    unsigned m_borderFit : 1; // EBorderFit
+    unsigned m_textCombine : 1; // CSS3 text-combine properties
+
+#if ENABLE(CSS3_TEXT)
+    unsigned m_textDecorationStyle : 3; // TextDecorationStyle
+#endif // CSS3_TEXT
+    unsigned m_wrapFlow: 3; // WrapFlow
+    unsigned m_wrapThrough: 1; // WrapThrough
+
+#if USE(ACCELERATED_COMPOSITING)
+    unsigned m_runningAcceleratedAnimation : 1;
+#endif
+
+    unsigned m_hasAspectRatio : 1; // Whether or not an aspect ratio has been specified.
+
+#if ENABLE(CSS_COMPOSITING)
+    unsigned m_effectiveBlendMode: 5; // EBlendMode
+#endif
 
 private:
     StyleRareNonInheritedData();