OSDN Git Service

am 3c54ece0: am 5dc34a85: activeDocumentLoader() causes crash in WebCoreFrameBridge.cpp
[android-x86/external-webkit.git] / WebCore / css / CSSPrimitiveValueMappings.h
index c20448e..b1d2d3d 100644 (file)
@@ -1,7 +1,9 @@
 /*
  * Copyright (C) 2007 Alexey Proskuryakov <ap@nypop.com>.
- * Copyright (C) 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved.
  * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
+ * Copyright (C) 2009 Jeff Schiller <codedread@gmail.com>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -44,6 +46,7 @@ namespace WebCore {
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBorderStyle e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case BNONE:
@@ -86,6 +89,7 @@ template<> inline CSSPrimitiveValue::operator EBorderStyle() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(CompositeOperator e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CompositeClear:
@@ -172,6 +176,7 @@ template<> inline CSSPrimitiveValue::operator CompositeOperator() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case NoControlPart:
@@ -248,6 +253,9 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
         case MediaVolumeSliderPart:
             m_value.ident = CSSValueMediaVolumeSlider;
             break;
+        case MediaVolumeSliderMuteButtonPart:
+            m_value.ident = CSSValueMediaVolumeSliderMuteButton;
+            break;
         case MediaVolumeSliderThumbPart:
             m_value.ident = CSSValueMediaVolumeSliderthumb;
             break;
@@ -272,9 +280,34 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
         case MenulistTextFieldPart:
             m_value.ident = CSSValueMenulistTextfield;
             break;
+        case MeterPart:
+            m_value.ident = CSSValueMeter;
+            break;
+        case RelevancyLevelIndicatorPart:
+            m_value.ident = CSSValueRelevancyLevelIndicator;
+            break;
+        case ContinuousCapacityLevelIndicatorPart:
+            m_value.ident = CSSValueContinuousCapacityLevelIndicator;
+            break;
+        case DiscreteCapacityLevelIndicatorPart:
+            m_value.ident = CSSValueDiscreteCapacityLevelIndicator;
+            break;
+        case RatingLevelIndicatorPart:
+            m_value.ident = CSSValueRatingLevelIndicator;
+            break;
         case OuterSpinButtonPart:
             m_value.ident = CSSValueOuterSpinButton;
             break;
+        case ProgressBarPart:
+#if ENABLE(PROGRESS_TAG)
+            m_value.ident = CSSValueProgressBar;
+#endif
+            break;
+        case ProgressBarValuePart:
+#if ENABLE(PROGRESS_TAG)
+            m_value.ident = CSSValueProgressBarValue;
+#endif
+            break;
         case SliderHorizontalPart:
             m_value.ident = CSSValueSliderHorizontal;
             break;
@@ -314,6 +347,11 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
         case CapsLockIndicatorPart:
             m_value.ident = CSSValueCapsLockIndicator;
             break;
+        case InputSpeechButtonPart:
+#if ENABLE(INPUT_SPEECH)
+            m_value.ident = CSSValueInputSpeechButton;
+#endif
+            break;
     }
 }
 
@@ -327,6 +365,7 @@ template<> inline CSSPrimitiveValue::operator ControlPart() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillAttachment e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case ScrollBackgroundAttachment:
@@ -358,6 +397,7 @@ template<> inline CSSPrimitiveValue::operator EFillAttachment() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillBox e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case BorderFillBox:
@@ -398,6 +438,7 @@ template<> inline CSSPrimitiveValue::operator EFillBox() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFillRepeat e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case RepeatFill:
@@ -434,6 +475,7 @@ template<> inline CSSPrimitiveValue::operator EFillRepeat() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxAlignment e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case BSTRETCH:
@@ -480,6 +522,7 @@ template<> inline CSSPrimitiveValue::operator EBoxAlignment() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxDirection e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case BNORMAL:
@@ -506,6 +549,7 @@ template<> inline CSSPrimitiveValue::operator EBoxDirection() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxLines e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case SINGLE:
@@ -532,6 +576,7 @@ template<> inline CSSPrimitiveValue::operator EBoxLines() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EBoxOrient e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case HORIZONTAL:
@@ -560,6 +605,7 @@ template<> inline CSSPrimitiveValue::operator EBoxOrient() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECaptionSide e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CAPLEFT:
@@ -596,6 +642,7 @@ template<> inline CSSPrimitiveValue::operator ECaptionSide() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EClear e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CNONE:
@@ -632,6 +679,7 @@ template<> inline CSSPrimitiveValue::operator EClear() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ECursor e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CURSOR_AUTO:
@@ -756,6 +804,7 @@ template<> inline CSSPrimitiveValue::operator ECursor() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDisplay e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case INLINE:
@@ -832,6 +881,7 @@ template<> inline CSSPrimitiveValue::operator EDisplay() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EEmptyCell e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case SHOW:
@@ -858,6 +908,7 @@ template<> inline CSSPrimitiveValue::operator EEmptyCell() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EFloat e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case FNONE:
@@ -890,6 +941,7 @@ template<> inline CSSPrimitiveValue::operator EFloat() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EKHTMLLineBreak e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case LBNORMAL:
@@ -916,6 +968,7 @@ template<> inline CSSPrimitiveValue::operator EKHTMLLineBreak() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStylePosition e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case OUTSIDE:
@@ -934,6 +987,7 @@ template<> inline CSSPrimitiveValue::operator EListStylePosition() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EListStyleType e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
     case Afar:
@@ -1182,6 +1236,7 @@ template<> inline CSSPrimitiveValue::operator EListStyleType() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarginCollapse e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case MCOLLAPSE:
@@ -1213,6 +1268,7 @@ template<> inline CSSPrimitiveValue::operator EMarginCollapse() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeBehavior e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case MNONE:
@@ -1249,6 +1305,7 @@ template<> inline CSSPrimitiveValue::operator EMarqueeBehavior() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMarqueeDirection e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case MFORWARD:
@@ -1302,6 +1359,7 @@ template<> inline CSSPrimitiveValue::operator EMarqueeDirection() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EMatchNearestMailBlockquoteColor e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case BCNORMAL:
@@ -1328,6 +1386,7 @@ template<> inline CSSPrimitiveValue::operator EMatchNearestMailBlockquoteColor()
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ENBSPMode e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case NBNORMAL:
@@ -1354,6 +1413,7 @@ template<> inline CSSPrimitiveValue::operator ENBSPMode() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EOverflow e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case OVISIBLE:
@@ -1400,6 +1460,7 @@ template<> inline CSSPrimitiveValue::operator EOverflow() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPageBreak e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case PBAUTO:
@@ -1433,6 +1494,7 @@ template<> inline CSSPrimitiveValue::operator EPageBreak() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPosition e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case StaticPosition:
@@ -1469,6 +1531,7 @@ template<> inline CSSPrimitiveValue::operator EPosition() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EResize e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case RESIZE_BOTH:
@@ -1508,6 +1571,7 @@ template<> inline CSSPrimitiveValue::operator EResize() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETableLayout e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case TAUTO:
@@ -1534,6 +1598,7 @@ template<> inline CSSPrimitiveValue::operator ETableLayout() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAlign e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case TAAUTO:
@@ -1577,6 +1642,7 @@ template<> inline CSSPrimitiveValue::operator ETextAlign() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextSecurity e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case TSNONE:
@@ -1613,6 +1679,7 @@ template<> inline CSSPrimitiveValue::operator ETextSecurity() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextTransform e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CAPITALIZE:
@@ -1649,6 +1716,7 @@ template<> inline CSSPrimitiveValue::operator ETextTransform() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUnicodeBidi e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case UBNormal:
@@ -1680,6 +1748,7 @@ template<> inline CSSPrimitiveValue::operator EUnicodeBidi() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserDrag e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case DRAG_AUTO:
@@ -1711,6 +1780,7 @@ template<> inline CSSPrimitiveValue::operator EUserDrag() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserModify e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case READ_ONLY:
@@ -1732,6 +1802,7 @@ template<> inline CSSPrimitiveValue::operator EUserModify() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUserSelect e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case SELECT_NONE:
@@ -1760,6 +1831,7 @@ template<> inline CSSPrimitiveValue::operator EUserSelect() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVisibility e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case VISIBLE:
@@ -1791,6 +1863,7 @@ template<> inline CSSPrimitiveValue::operator EVisibility() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWhiteSpace e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case NORMAL:
@@ -1837,6 +1910,7 @@ template<> inline CSSPrimitiveValue::operator EWhiteSpace() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordBreak e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case NormalWordBreak:
@@ -1868,6 +1942,7 @@ template<> inline CSSPrimitiveValue::operator EWordBreak() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWordWrap e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case NormalWordWrap:
@@ -1894,6 +1969,7 @@ template<> inline CSSPrimitiveValue::operator EWordWrap() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextDirection e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case LTR:
@@ -1920,6 +1996,7 @@ template<> inline CSSPrimitiveValue::operator TextDirection() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EPointerEvents e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case PE_NONE:
@@ -1986,6 +2063,7 @@ template<> inline CSSPrimitiveValue::operator EPointerEvents() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(FontSmoothingMode smoothing)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (smoothing) {
     case AutoSmoothing:
@@ -2025,6 +2103,7 @@ template<> inline CSSPrimitiveValue::operator FontSmoothingMode() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(TextRenderingMode e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case AutoTextRendering:
@@ -2061,6 +2140,7 @@ template<> inline CSSPrimitiveValue::operator TextRenderingMode() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ColorSpace space)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (space) {
         case DeviceColorSpace:
@@ -2085,10 +2165,43 @@ template<> inline CSSPrimitiveValue::operator ColorSpace() const
     }
 }
 
+template<> inline CSSPrimitiveValue::CSSPrimitiveValue(Hyphens hyphens)
+    : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
+{
+    switch (hyphens) {
+    case HyphensNone:
+        m_value.ident = CSSValueNone;
+        break;
+    case HyphensManual:
+        m_value.ident = CSSValueManual;
+        break;
+    case HyphensAuto:
+        m_value.ident = CSSValueAuto;
+        break;
+    }
+}
+
+template<> inline CSSPrimitiveValue::operator Hyphens() const
+{
+    switch (m_value.ident) {
+    case CSSValueNone:
+        return HyphensNone;
+    case CSSValueManual:
+        return HyphensManual;
+    case CSSValueAuto:
+        return HyphensAuto;
+    default:
+        ASSERT_NOT_REACHED();
+        return HyphensAuto;
+    }
+}
+
 #if ENABLE(SVG)
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineCap e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case ButtCap:
@@ -2120,6 +2233,7 @@ template<> inline CSSPrimitiveValue::operator LineCap() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(LineJoin e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case MiterJoin:
@@ -2151,6 +2265,7 @@ template<> inline CSSPrimitiveValue::operator LineJoin() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(WindRule e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case RULE_NONZERO:
@@ -2178,6 +2293,7 @@ template<> inline CSSPrimitiveValue::operator WindRule() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EAlignmentBaseline e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case AB_AUTO:
@@ -2254,6 +2370,7 @@ template<> inline CSSPrimitiveValue::operator EAlignmentBaseline() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorInterpolation e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CI_AUTO:
@@ -2285,6 +2402,7 @@ template<> inline CSSPrimitiveValue::operator EColorInterpolation() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EColorRendering e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case CR_AUTO:
@@ -2316,6 +2434,7 @@ template<> inline CSSPrimitiveValue::operator EColorRendering() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EDominantBaseline e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case DB_AUTO:
@@ -2392,6 +2511,7 @@ template<> inline CSSPrimitiveValue::operator EDominantBaseline() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EImageRendering e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case IR_AUTO:
@@ -2423,6 +2543,7 @@ template<> inline CSSPrimitiveValue::operator EImageRendering() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EShapeRendering e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case IR_AUTO:
@@ -2459,6 +2580,7 @@ template<> inline CSSPrimitiveValue::operator EShapeRendering() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ETextAnchor e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case TA_START:
@@ -2490,6 +2612,7 @@ template<> inline CSSPrimitiveValue::operator ETextAnchor() const
 
 template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EWritingMode e)
     : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
 {
     switch (e) {
         case WM_LRTB:
@@ -2518,6 +2641,33 @@ template<> inline CSSPrimitiveValue::operator EWritingMode() const
     return static_cast<EWritingMode>(m_value.ident - CSSValueLrTb);
 }
 
+template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EVectorEffect e)
+    : m_type(CSS_IDENT)
+    , m_hasCachedCSSText(false)
+{
+    switch (e) {
+    case VE_NONE:
+        m_value.ident = CSSValueNone;
+        break;
+    case VE_NON_SCALING_STROKE:
+        m_value.ident = CSSValueNonScalingStroke;
+        break;
+    }
+}
+
+template<> inline CSSPrimitiveValue::operator EVectorEffect() const
+{
+    switch (m_value.ident) {
+    case CSSValueNone:
+        return VE_NONE;
+    case CSSValueNonScalingStroke:
+        return VE_NON_SCALING_STROKE;
+    default:
+        ASSERT_NOT_REACHED();
+        return VE_NONE;
+    }
+}
+
 #endif
 
 }