| Index: third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp | 
| diff --git a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp | 
| index 6e3554095a015ae18ea45ef7080810f33291190c..4d5c30613a13bd9f6ad61c10cc45216d15249801 100644 | 
| --- a/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp | 
| +++ b/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp | 
| @@ -30,282 +30,14 @@ | 
|  | 
| #include "core/animation/css/CSSAnimatableValueFactory.h" | 
|  | 
| -#include "core/CSSValueKeywords.h" | 
| -#include "core/animation/FontWeightConversion.h" | 
| -#include "core/animation/LengthPropertyFunctions.h" | 
| -#include "core/animation/PropertyHandle.h" | 
| -#include "core/animation/animatable/AnimatableClipPathOperation.h" | 
| -#include "core/animation/animatable/AnimatableColor.h" | 
| +#include "core/animation/CompositorAnimations.h" | 
| #include "core/animation/animatable/AnimatableDouble.h" | 
| -#include "core/animation/animatable/AnimatableDoubleAndBool.h" | 
| #include "core/animation/animatable/AnimatableFilterOperations.h" | 
| -#include "core/animation/animatable/AnimatableFontVariationSettings.h" | 
| -#include "core/animation/animatable/AnimatableImage.h" | 
| -#include "core/animation/animatable/AnimatableLength.h" | 
| -#include "core/animation/animatable/AnimatableLengthBox.h" | 
| -#include "core/animation/animatable/AnimatableLengthBoxAndBool.h" | 
| -#include "core/animation/animatable/AnimatableLengthPoint.h" | 
| -#include "core/animation/animatable/AnimatableLengthPoint3D.h" | 
| -#include "core/animation/animatable/AnimatableLengthSize.h" | 
| -#include "core/animation/animatable/AnimatablePath.h" | 
| -#include "core/animation/animatable/AnimatableRepeatable.h" | 
| -#include "core/animation/animatable/AnimatableSVGPaint.h" | 
| -#include "core/animation/animatable/AnimatableShadow.h" | 
| -#include "core/animation/animatable/AnimatableShapeValue.h" | 
| -#include "core/animation/animatable/AnimatableStrokeDasharrayList.h" | 
| #include "core/animation/animatable/AnimatableTransform.h" | 
| -#include "core/animation/animatable/AnimatableUnknown.h" | 
| -#include "core/animation/animatable/AnimatableVisibility.h" | 
| -#include "core/css/CSSCalculationValue.h" | 
| -#include "core/css/CSSIdentifierValue.h" | 
| -#include "core/css/CSSPrimitiveValue.h" | 
| -#include "core/css/CSSPrimitiveValueMappings.h" | 
| -#include "core/css/CSSPropertyMetadata.h" | 
| #include "core/style/ComputedStyle.h" | 
| -#include "platform/Length.h" | 
| -#include "platform/LengthBox.h" | 
| -#include "platform/wtf/StdLibExtras.h" | 
|  | 
| namespace blink { | 
|  | 
| -static PassRefPtr<AnimatableValue> CreateFromLengthWithZoom( | 
| -    const Length& length, | 
| -    float zoom) { | 
| -  switch (length.GetType()) { | 
| -    case kFixed: | 
| -    case kPercent: | 
| -    case kCalculated: | 
| -      return AnimatableLength::Create(length, zoom); | 
| -    case kAuto: | 
| -    case kMinContent: | 
| -    case kMaxContent: | 
| -    case kFillAvailable: | 
| -    case kFitContent: | 
| -      return AnimatableUnknown::Create(CSSValue::Create(length, 1)); | 
| -    case kMaxSizeNone: | 
| -      return AnimatableUnknown::Create(CSSValueNone); | 
| -    case kExtendToZoom:  // Does not apply to elements. | 
| -    case kDeviceWidth: | 
| -    case kDeviceHeight: | 
| -      NOTREACHED(); | 
| -      return nullptr; | 
| -  } | 
| -  NOTREACHED(); | 
| -  return nullptr; | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromLength( | 
| -    const Length& length, | 
| -    const ComputedStyle& style) { | 
| -  return CreateFromLengthWithZoom(length, style.EffectiveZoom()); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromPropertyLength( | 
| -    CSSPropertyID property, | 
| -    const ComputedStyle& style) { | 
| -  Length length; | 
| -  bool success = LengthPropertyFunctions::GetLength(property, style, length); | 
| -  DCHECK(success); | 
| -  return CreateFromLength(length, style); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromUnzoomedLength( | 
| -    const UnzoomedLength& unzoomed_length) { | 
| -  return CreateFromLengthWithZoom(unzoomed_length.length(), 1); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromLineHeight( | 
| -    const Length& length, | 
| -    const ComputedStyle& style) { | 
| -  if (length.GetType() == kPercent) { | 
| -    double value = length.Value(); | 
| -    // -100% is used to represent "normal" line height. | 
| -    if (value == -100) | 
| -      return AnimatableUnknown::Create(CSSValueNormal); | 
| -    return AnimatableDouble::Create(value); | 
| -  } | 
| -  return CreateFromLength(length, style); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromDouble(double value) { | 
| -  return AnimatableDouble::Create(value); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromLengthBox( | 
| -    const LengthBox& length_box, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableLengthBox::Create( | 
| -      CreateFromLength(length_box.Left(), style), | 
| -      CreateFromLength(length_box.Right(), style), | 
| -      CreateFromLength(length_box.Top(), style), | 
| -      CreateFromLength(length_box.Bottom(), style)); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromBorderImageLength( | 
| -    const BorderImageLength& border_image_length, | 
| -    const ComputedStyle& style) { | 
| -  if (border_image_length.IsNumber()) | 
| -    return CreateFromDouble(border_image_length.Number()); | 
| -  return CreateFromLength(border_image_length.length(), style); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromBorderImageLengthBox( | 
| -    const BorderImageLengthBox& border_image_length_box, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableLengthBox::Create( | 
| -      CreateFromBorderImageLength(border_image_length_box.Left(), style), | 
| -      CreateFromBorderImageLength(border_image_length_box.Right(), style), | 
| -      CreateFromBorderImageLength(border_image_length_box.Top(), style), | 
| -      CreateFromBorderImageLength(border_image_length_box.Bottom(), style)); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromLengthBoxAndBool( | 
| -    const LengthBox length_box, | 
| -    const bool flag, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableLengthBoxAndBool::Create( | 
| -      CreateFromLengthBox(length_box, style), flag); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromDoubleAndBool( | 
| -    double number, | 
| -    const bool flag, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableDoubleAndBool::Create(number, flag); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromLengthPoint( | 
| -    const LengthPoint& length_point, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableLengthPoint::Create( | 
| -      CreateFromLength(length_point.X(), style), | 
| -      CreateFromLength(length_point.Y(), style)); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromTransformOrigin( | 
| -    const TransformOrigin& transform_origin, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableLengthPoint3D::Create( | 
| -      CreateFromLength(transform_origin.X(), style), | 
| -      CreateFromLength(transform_origin.Y(), style), | 
| -      CreateFromLength(Length(transform_origin.Z(), kFixed), style)); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromLengthSize( | 
| -    const LengthSize& length_size, | 
| -    const ComputedStyle& style) { | 
| -  return AnimatableLengthSize::Create( | 
| -      CreateFromLength(length_size.Width(), style), | 
| -      CreateFromLength(length_size.Height(), style)); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromStyleImage( | 
| -    StyleImage* image) { | 
| -  if (image) { | 
| -    if (CSSValue* css_value = image->CssValue()) | 
| -      return AnimatableImage::Create(css_value); | 
| -  } | 
| -  return AnimatableUnknown::Create(CSSValueNone); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromFillSize( | 
| -    const FillSize& fill_size, | 
| -    const ComputedStyle& style) { | 
| -  switch (fill_size.type) { | 
| -    case kSizeLength: | 
| -      return CreateFromLengthSize(fill_size.size, style); | 
| -    case kContain: | 
| -    case kCover: | 
| -    case kSizeNone: | 
| -      return AnimatableUnknown::Create( | 
| -          CSSIdentifierValue::Create(fill_size.type)); | 
| -    default: | 
| -      NOTREACHED(); | 
| -      return nullptr; | 
| -  } | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromBackgroundPosition( | 
| -    const Length& length, | 
| -    bool origin_is_set, | 
| -    BackgroundEdgeOrigin origin, | 
| -    const ComputedStyle& style) { | 
| -  if (!origin_is_set || origin == kLeftEdge || origin == kTopEdge) | 
| -    return CreateFromLength(length, style); | 
| -  return CreateFromLength(length.SubtractFromOneHundredPercent(), style); | 
| -} | 
| - | 
| -template <CSSPropertyID property> | 
| -inline static PassRefPtr<AnimatableValue> CreateFromFillLayers( | 
| -    const FillLayer& fill_layers, | 
| -    const ComputedStyle& style) { | 
| -  Vector<RefPtr<AnimatableValue>> values; | 
| -  for (const FillLayer* fill_layer = &fill_layers; fill_layer; | 
| -       fill_layer = fill_layer->Next()) { | 
| -    if (property == CSSPropertyBackgroundImage || | 
| -        property == CSSPropertyWebkitMaskImage) { | 
| -      if (!fill_layer->IsImageSet()) | 
| -        break; | 
| -      values.push_back(CreateFromStyleImage(fill_layer->GetImage())); | 
| -    } else if (property == CSSPropertyBackgroundPositionX || | 
| -               property == CSSPropertyWebkitMaskPositionX) { | 
| -      if (!fill_layer->IsXPositionSet()) | 
| -        break; | 
| -      values.push_back(CreateFromBackgroundPosition( | 
| -          fill_layer->XPosition(), fill_layer->IsBackgroundXOriginSet(), | 
| -          fill_layer->BackgroundXOrigin(), style)); | 
| -    } else if (property == CSSPropertyBackgroundPositionY || | 
| -               property == CSSPropertyWebkitMaskPositionY) { | 
| -      if (!fill_layer->IsYPositionSet()) | 
| -        break; | 
| -      values.push_back(CreateFromBackgroundPosition( | 
| -          fill_layer->YPosition(), fill_layer->IsBackgroundYOriginSet(), | 
| -          fill_layer->BackgroundYOrigin(), style)); | 
| -    } else if (property == CSSPropertyBackgroundSize || | 
| -               property == CSSPropertyWebkitMaskSize) { | 
| -      if (!fill_layer->IsSizeSet()) | 
| -        break; | 
| -      values.push_back(CreateFromFillSize(fill_layer->Size(), style)); | 
| -    } else { | 
| -      NOTREACHED(); | 
| -    } | 
| -  } | 
| -  return AnimatableRepeatable::Create(values); | 
| -} | 
| - | 
| -PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::CreateFromColor( | 
| -    CSSPropertyID property, | 
| -    const ComputedStyle& style) { | 
| -  Color color = style.ColorIncludingFallback(property, false); | 
| -  Color visited_link_color = style.ColorIncludingFallback(property, true); | 
| -  return AnimatableColor::Create(color, visited_link_color); | 
| -} | 
| - | 
| -inline static PassRefPtr<AnimatableValue> CreateFromShapeValue( | 
| -    ShapeValue* value) { | 
| -  if (value) | 
| -    return AnimatableShapeValue::Create(value); | 
| -  return AnimatableUnknown::Create(CSSValueNone); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromPath(StylePath* path) { | 
| -  return AnimatablePath::Create(path); | 
| -} | 
| - | 
| -static double FontStretchToDouble(FontStretch font_stretch) { | 
| -  return static_cast<unsigned>(font_stretch); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromFontStretch( | 
| -    FontStretch font_stretch) { | 
| -  return CreateFromDouble(FontStretchToDouble(font_stretch)); | 
| -} | 
| - | 
| -static PassRefPtr<AnimatableValue> CreateFromFontVariationSettings( | 
| -    FontVariationSettings* settings) { | 
| -  return AnimatableFontVariationSettings::Create(settings); | 
| -} | 
| - | 
| static PassRefPtr<AnimatableValue> CreateFromTransformProperties( | 
| PassRefPtr<TransformOperation> transform, | 
| double zoom, | 
| @@ -319,290 +51,18 @@ static PassRefPtr<AnimatableValue> CreateFromTransformProperties( | 
| return AnimatableTransform::Create(operation, has_transform ? zoom : 1); | 
| } | 
|  | 
| -static PassRefPtr<AnimatableValue> CreateFromFontWeight( | 
| -    FontWeight font_weight) { | 
| -  return CreateFromDouble(FontWeightToDouble(font_weight)); | 
| -} | 
| - | 
| -static SVGPaintType NormalizeSVGPaintType(SVGPaintType paint_type) { | 
| -  // If the <paint> is 'currentColor', then create an AnimatableSVGPaint with | 
| -  // a <rgbcolor> type. This is similar in vein to the handling of colors. | 
| -  return paint_type == SVG_PAINTTYPE_CURRENTCOLOR ? SVG_PAINTTYPE_RGBCOLOR | 
| -                                                  : paint_type; | 
| -} | 
| - | 
| PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::Create( | 
| -    const PropertyHandle& property, | 
| +    CSSPropertyID property, | 
| const ComputedStyle& style) { | 
| -  if (property.IsCSSCustomProperty()) { | 
| -    return AnimatableUnknown::Create( | 
| -        style.GetRegisteredVariable(property.CustomPropertyName())); | 
| -  } | 
| - | 
| -  CSSPropertyID property_id = property.CssProperty(); | 
| -  DCHECK(CSSPropertyMetadata::IsInterpolableProperty(property_id)); | 
| -  switch (property_id) { | 
| -    case CSSPropertyBackgroundColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyBackgroundImage: | 
| -      return CreateFromFillLayers<CSSPropertyBackgroundImage>( | 
| -          style.BackgroundLayers(), style); | 
| -    case CSSPropertyBackgroundPositionX: | 
| -      return CreateFromFillLayers<CSSPropertyBackgroundPositionX>( | 
| -          style.BackgroundLayers(), style); | 
| -    case CSSPropertyBackgroundPositionY: | 
| -      return CreateFromFillLayers<CSSPropertyBackgroundPositionY>( | 
| -          style.BackgroundLayers(), style); | 
| -    case CSSPropertyBackgroundSize: | 
| -      return CreateFromFillLayers<CSSPropertyBackgroundSize>( | 
| -          style.BackgroundLayers(), style); | 
| -    case CSSPropertyBaselineShift: | 
| -      switch (style.SvgStyle().BaselineShift()) { | 
| -        case BS_SUPER: | 
| -          return AnimatableUnknown::Create( | 
| -              CSSIdentifierValue::Create(CSSValueSuper)); | 
| -        case BS_SUB: | 
| -          return AnimatableUnknown::Create( | 
| -              CSSIdentifierValue::Create(CSSValueSub)); | 
| -        default: | 
| -          return CreateFromLength(style.BaselineShiftValue(), style); | 
| -      } | 
| -    case CSSPropertyBorderBottomColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyBorderBottomLeftRadius: | 
| -      return CreateFromLengthSize(style.BorderBottomLeftRadius(), style); | 
| -    case CSSPropertyBorderBottomRightRadius: | 
| -      return CreateFromLengthSize(style.BorderBottomRightRadius(), style); | 
| -    case CSSPropertyBorderBottomWidth: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyBorderImageOutset: | 
| -      return CreateFromBorderImageLengthBox(style.BorderImageOutset(), style); | 
| -    case CSSPropertyBorderImageSlice: | 
| -      return CreateFromLengthBoxAndBool(style.BorderImageSlices(), | 
| -                                        style.BorderImageSlicesFill(), style); | 
| -    case CSSPropertyBorderImageSource: | 
| -      return CreateFromStyleImage(style.BorderImageSource()); | 
| -    case CSSPropertyBorderImageWidth: | 
| -      return CreateFromBorderImageLengthBox(style.BorderImageWidth(), style); | 
| -    case CSSPropertyBorderLeftColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyBorderLeftWidth: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyBorderRightColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyBorderRightWidth: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyBorderTopColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyBorderTopLeftRadius: | 
| -      return CreateFromLengthSize(style.BorderTopLeftRadius(), style); | 
| -    case CSSPropertyBorderTopRightRadius: | 
| -      return CreateFromLengthSize(style.BorderTopRightRadius(), style); | 
| -    case CSSPropertyBorderTopWidth: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyBottom: | 
| -      return CreateFromLength(style.Bottom(), style); | 
| -    case CSSPropertyBoxShadow: | 
| -      return AnimatableShadow::Create(style.BoxShadow()); | 
| -    case CSSPropertyClip: | 
| -      if (style.HasAutoClip()) { | 
| -        return AnimatableUnknown::Create( | 
| -            CSSIdentifierValue::Create(CSSValueAuto)); | 
| -      } | 
| -      return CreateFromLengthBox(style.Clip(), style); | 
| -    case CSSPropertyCaretColor: | 
| -      if (style.CaretColor().IsAutoColor()) { | 
| -        return AnimatableUnknown::Create( | 
| -            CSSIdentifierValue::Create(CSSValueAuto)); | 
| -      } | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyFillOpacity: | 
| -      return CreateFromDouble(style.FillOpacity()); | 
| -    case CSSPropertyFill: | 
| -      return AnimatableSVGPaint::Create( | 
| -          NormalizeSVGPaintType(style.SvgStyle().FillPaintType()), | 
| -          NormalizeSVGPaintType(style.SvgStyle().VisitedLinkFillPaintType()), | 
| -          style.SvgStyle().FillPaintColor(), | 
| -          style.SvgStyle().VisitedLinkFillPaintColor(), | 
| -          style.SvgStyle().FillPaintUri(), | 
| -          style.SvgStyle().VisitedLinkFillPaintUri()); | 
| -    case CSSPropertyFlexGrow: | 
| -      return CreateFromDouble(style.FlexGrow()); | 
| -    case CSSPropertyFlexShrink: | 
| -      return CreateFromDouble(style.FlexShrink()); | 
| -    case CSSPropertyFlexBasis: | 
| -      return CreateFromLength(style.FlexBasis(), style); | 
| -    case CSSPropertyFloodColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyFloodOpacity: | 
| -      return CreateFromDouble(style.FloodOpacity()); | 
| -    case CSSPropertyFontSize: | 
| -      // Must pass a specified size to setFontSize if Text Autosizing is | 
| -      // enabled, but a computed size if text zoom is enabled (if neither is | 
| -      // enabled it's irrelevant as they're probably the same). | 
| -      // FIXME: Should we introduce an option to pass the computed font size | 
| -      // here, allowing consumers to enable text zoom rather than Text | 
| -      // Autosizing? See http://crbug.com/227545. | 
| -      return CreateFromDouble(style.SpecifiedFontSize()); | 
| -    case CSSPropertyFontSizeAdjust: | 
| -      return style.HasFontSizeAdjust() | 
| -                 ? CreateFromDouble(style.FontSizeAdjust()) | 
| -                 : AnimatableUnknown::Create(CSSValueNone); | 
| -    case CSSPropertyFontStretch: | 
| -      return CreateFromFontStretch(style.GetFontStretch()); | 
| -    case CSSPropertyFontVariationSettings: | 
| -      return CreateFromFontVariationSettings( | 
| -          style.GetFontDescription().VariationSettings()); | 
| -    case CSSPropertyFontWeight: | 
| -      return CreateFromFontWeight(style.GetFontWeight()); | 
| -    case CSSPropertyHeight: | 
| -      return CreateFromLength(style.Height(), style); | 
| -    case CSSPropertyLightingColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyListStyleImage: | 
| -      return CreateFromStyleImage(style.ListStyleImage()); | 
| -    case CSSPropertyLeft: | 
| -      return CreateFromLength(style.Left(), style); | 
| -    case CSSPropertyLetterSpacing: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyLineHeight: | 
| -      return CreateFromLineHeight(style.SpecifiedLineHeight(), style); | 
| -    case CSSPropertyMarginBottom: | 
| -      return CreateFromLength(style.MarginBottom(), style); | 
| -    case CSSPropertyMarginLeft: | 
| -      return CreateFromLength(style.MarginLeft(), style); | 
| -    case CSSPropertyMarginRight: | 
| -      return CreateFromLength(style.MarginRight(), style); | 
| -    case CSSPropertyMarginTop: | 
| -      return CreateFromLength(style.MarginTop(), style); | 
| -    case CSSPropertyMaxHeight: | 
| -      return CreateFromLength(style.MaxHeight(), style); | 
| -    case CSSPropertyMaxWidth: | 
| -      return CreateFromLength(style.MaxWidth(), style); | 
| -    case CSSPropertyMinHeight: | 
| -      return CreateFromLength(style.MinHeight(), style); | 
| -    case CSSPropertyMinWidth: | 
| -      return CreateFromLength(style.MinWidth(), style); | 
| -    case CSSPropertyObjectPosition: | 
| -      return CreateFromLengthPoint(style.ObjectPosition(), style); | 
| +  DCHECK(CSSPropertyMetadata::IsInterpolableProperty(property)); | 
| +  DCHECK(CompositorAnimations::IsCompositableProperty(property)); | 
| +  switch (property) { | 
| case CSSPropertyOpacity: | 
| -      return CreateFromDouble(style.Opacity()); | 
| -    case CSSPropertyOrder: | 
| -      return CreateFromDouble(style.Order()); | 
| -    case CSSPropertyOrphans: | 
| -      return CreateFromDouble(style.Orphans()); | 
| -    case CSSPropertyOutlineColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyOutlineOffset: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyOutlineWidth: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyPaddingBottom: | 
| -      return CreateFromLength(style.PaddingBottom(), style); | 
| -    case CSSPropertyPaddingLeft: | 
| -      return CreateFromLength(style.PaddingLeft(), style); | 
| -    case CSSPropertyPaddingRight: | 
| -      return CreateFromLength(style.PaddingRight(), style); | 
| -    case CSSPropertyPaddingTop: | 
| -      return CreateFromLength(style.PaddingTop(), style); | 
| -    case CSSPropertyRight: | 
| -      return CreateFromLength(style.Right(), style); | 
| -    case CSSPropertyStrokeWidth: | 
| -      return CreateFromUnzoomedLength(style.StrokeWidth()); | 
| -    case CSSPropertyStopColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyStopOpacity: | 
| -      return CreateFromDouble(style.StopOpacity()); | 
| -    case CSSPropertyStrokeDasharray: | 
| -      return AnimatableStrokeDasharrayList::Create(style.StrokeDashArray(), | 
| -                                                   style.EffectiveZoom()); | 
| -    case CSSPropertyStrokeDashoffset: | 
| -      return CreateFromLength(style.StrokeDashOffset(), style); | 
| -    case CSSPropertyStrokeMiterlimit: | 
| -      return CreateFromDouble(style.StrokeMiterLimit()); | 
| -    case CSSPropertyStrokeOpacity: | 
| -      return CreateFromDouble(style.StrokeOpacity()); | 
| -    case CSSPropertyStroke: | 
| -      return AnimatableSVGPaint::Create( | 
| -          NormalizeSVGPaintType(style.SvgStyle().StrokePaintType()), | 
| -          NormalizeSVGPaintType(style.SvgStyle().VisitedLinkStrokePaintType()), | 
| -          style.SvgStyle().StrokePaintColor(), | 
| -          style.SvgStyle().VisitedLinkStrokePaintColor(), | 
| -          style.SvgStyle().StrokePaintUri(), | 
| -          style.SvgStyle().VisitedLinkStrokePaintUri()); | 
| -    case CSSPropertyTextDecorationColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyTextIndent: | 
| -      return CreateFromLength(style.TextIndent(), style); | 
| -    case CSSPropertyTextShadow: | 
| -      return AnimatableShadow::Create(style.TextShadow()); | 
| -    case CSSPropertyTop: | 
| -      return CreateFromLength(style.Top(), style); | 
| -    case CSSPropertyWebkitBorderHorizontalSpacing: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyWebkitBorderVerticalSpacing: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyClipPath: | 
| -      if (ClipPathOperation* operation = style.ClipPath()) | 
| -        return AnimatableClipPathOperation::Create(operation); | 
| -      return AnimatableUnknown::Create(CSSValueNone); | 
| -    case CSSPropertyColumnCount: | 
| -      if (style.HasAutoColumnCount()) | 
| -        return AnimatableUnknown::Create(CSSValueAuto); | 
| -      return CreateFromDouble(style.ColumnCount()); | 
| -    case CSSPropertyColumnGap: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyColumnRuleColor: | 
| -      return CreateFromColor(property_id, style); | 
| -    case CSSPropertyColumnRuleWidth: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyColumnWidth: | 
| -      if (style.HasAutoColumnWidth()) | 
| -        return AnimatableUnknown::Create(CSSValueAuto); | 
| -      return CreateFromPropertyLength(property_id, style); | 
| +      return AnimatableDouble::Create(style.Opacity()); | 
| case CSSPropertyFilter: | 
| return AnimatableFilterOperations::Create(style.Filter()); | 
| case CSSPropertyBackdropFilter: | 
| return AnimatableFilterOperations::Create(style.BackdropFilter()); | 
| -    case CSSPropertyWebkitMaskBoxImageOutset: | 
| -      return CreateFromBorderImageLengthBox(style.MaskBoxImageOutset(), style); | 
| -    case CSSPropertyWebkitMaskBoxImageSlice: | 
| -      return CreateFromLengthBoxAndBool(style.MaskBoxImageSlices(), | 
| -                                        style.MaskBoxImageSlicesFill(), style); | 
| -    case CSSPropertyWebkitMaskBoxImageSource: | 
| -      return CreateFromStyleImage(style.MaskBoxImageSource()); | 
| -    case CSSPropertyWebkitMaskBoxImageWidth: | 
| -      return CreateFromBorderImageLengthBox(style.MaskBoxImageWidth(), style); | 
| -    case CSSPropertyWebkitMaskImage: | 
| -      return CreateFromFillLayers<CSSPropertyWebkitMaskImage>( | 
| -          style.MaskLayers(), style); | 
| -    case CSSPropertyWebkitMaskPositionX: | 
| -      return CreateFromFillLayers<CSSPropertyWebkitMaskPositionX>( | 
| -          style.MaskLayers(), style); | 
| -    case CSSPropertyWebkitMaskPositionY: | 
| -      return CreateFromFillLayers<CSSPropertyWebkitMaskPositionY>( | 
| -          style.MaskLayers(), style); | 
| -    case CSSPropertyWebkitMaskSize: | 
| -      return CreateFromFillLayers<CSSPropertyWebkitMaskSize>(style.MaskLayers(), | 
| -                                                             style); | 
| -    case CSSPropertyPerspective: | 
| -      if (style.Perspective() == 0) { | 
| -        return AnimatableUnknown::Create( | 
| -            CSSIdentifierValue::Create(CSSValueNone)); | 
| -      } | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyPerspectiveOrigin: | 
| -      return CreateFromLengthPoint(style.PerspectiveOrigin(), style); | 
| -    case CSSPropertyShapeOutside: | 
| -      return CreateFromShapeValue(style.ShapeOutside()); | 
| -    case CSSPropertyShapeMargin: | 
| -      return CreateFromLength(style.ShapeMargin(), style); | 
| -    case CSSPropertyShapeImageThreshold: | 
| -      return CreateFromDouble(style.ShapeImageThreshold()); | 
| -    case CSSPropertyWebkitTextStrokeColor: | 
| -      return CreateFromColor(property_id, style); | 
| case CSSPropertyTransform: | 
| return AnimatableTransform::Create(style.Transform(), | 
| style.EffectiveZoom()); | 
| @@ -618,61 +78,6 @@ PassRefPtr<AnimatableValue> CSSAnimatableValueFactory::Create( | 
| return CreateFromTransformProperties(style.Scale(), style.EffectiveZoom(), | 
| nullptr); | 
| } | 
| -    case CSSPropertyOffsetAnchor: | 
| -      return CreateFromLengthPoint(style.OffsetAnchor(), style); | 
| -    case CSSPropertyOffsetDistance: | 
| -      return CreateFromLength(style.OffsetDistance(), style); | 
| -    case CSSPropertyOffsetPosition: | 
| -      return CreateFromLengthPoint(style.OffsetPosition(), style); | 
| -    case CSSPropertyOffsetRotate: | 
| -      return CreateFromDoubleAndBool( | 
| -          style.OffsetRotate().angle, | 
| -          style.OffsetRotate().type == kOffsetRotationAuto, style); | 
| -    case CSSPropertyTransformOrigin: | 
| -      return CreateFromTransformOrigin(style.GetTransformOrigin(), style); | 
| -    case CSSPropertyWebkitPerspectiveOriginX: | 
| -      return CreateFromLength(style.PerspectiveOriginX(), style); | 
| -    case CSSPropertyWebkitPerspectiveOriginY: | 
| -      return CreateFromLength(style.PerspectiveOriginY(), style); | 
| -    case CSSPropertyWebkitTransformOriginX: | 
| -      return CreateFromLength(style.TransformOriginX(), style); | 
| -    case CSSPropertyWebkitTransformOriginY: | 
| -      return CreateFromLength(style.TransformOriginY(), style); | 
| -    case CSSPropertyWebkitTransformOriginZ: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyWidows: | 
| -      return CreateFromDouble(style.Widows()); | 
| -    case CSSPropertyWidth: | 
| -      return CreateFromLength(style.Width(), style); | 
| -    case CSSPropertyWordSpacing: | 
| -      return CreateFromPropertyLength(property_id, style); | 
| -    case CSSPropertyVerticalAlign: | 
| -      if (style.VerticalAlign() == EVerticalAlign::kLength) | 
| -        return CreateFromLength(style.GetVerticalAlignLength(), style); | 
| -      return AnimatableUnknown::Create( | 
| -          CSSIdentifierValue::Create(style.VerticalAlign())); | 
| -    case CSSPropertyVisibility: | 
| -      return AnimatableVisibility::Create(style.Visibility()); | 
| -    case CSSPropertyD: | 
| -      return CreateFromPath(style.SvgStyle().D()); | 
| -    case CSSPropertyCx: | 
| -      return CreateFromLength(style.SvgStyle().Cx(), style); | 
| -    case CSSPropertyCy: | 
| -      return CreateFromLength(style.SvgStyle().Cy(), style); | 
| -    case CSSPropertyX: | 
| -      return CreateFromLength(style.SvgStyle().X(), style); | 
| -    case CSSPropertyY: | 
| -      return CreateFromLength(style.SvgStyle().Y(), style); | 
| -    case CSSPropertyR: | 
| -      return CreateFromLength(style.SvgStyle().R(), style); | 
| -    case CSSPropertyRx: | 
| -      return CreateFromLength(style.SvgStyle().Rx(), style); | 
| -    case CSSPropertyRy: | 
| -      return CreateFromLength(style.SvgStyle().Ry(), style); | 
| -    case CSSPropertyZIndex: | 
| -      if (style.HasAutoZIndex()) | 
| -        return AnimatableUnknown::Create(CSSValueAuto); | 
| -      return CreateFromDouble(style.ZIndex()); | 
| default: | 
| NOTREACHED(); | 
| return nullptr; | 
|  |