| Index: Source/core/css/resolver/StyleBuilderCustom.cpp | 
| diff --git a/Source/core/css/resolver/StyleBuilderCustom.cpp b/Source/core/css/resolver/StyleBuilderCustom.cpp | 
| index 175e77a6c7c6560f4edba962b8607af7570da283..db836f51ce364becf340c26797f67491dd2a05f6 100644 | 
| --- a/Source/core/css/resolver/StyleBuilderCustom.cpp | 
| +++ b/Source/core/css/resolver/StyleBuilderCustom.cpp | 
| @@ -614,7 +614,7 @@ void StyleBuilderFunctions::applyValueCSSPropertyTextAlign(StyleResolverState& s | 
| state.style()->setTextAlign(state.parentStyle()->textAlign()); | 
| } | 
|  | 
| -void StyleBuilderFunctions::applyValueCSSPropertyTextDecoration(StyleResolverState& state, CSSValue* value) | 
| +void StyleBuilderFunctions::applyValueCSSPropertyTextDecorationLine(StyleResolverState& state, CSSValue* value) | 
| { | 
| TextDecoration t = RenderStyle::initialTextDecoration(); | 
| for (CSSValueListIterator i(value); i.hasMore(); i.advance()) { | 
| @@ -989,25 +989,6 @@ void StyleBuilderFunctions::applyValueCSSPropertyInternalMarqueeSpeed(StyleResol | 
| } | 
| } | 
|  | 
| -// FIXME: We should use the same system for this as the rest of the pseudo-shorthands (e.g. background-position) | 
| -void StyleBuilderFunctions::applyInitialCSSPropertyWebkitPerspectiveOrigin(StyleResolverState& state) | 
| -{ | 
| -    applyInitialCSSPropertyWebkitPerspectiveOriginX(state); | 
| -    applyInitialCSSPropertyWebkitPerspectiveOriginY(state); | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyInheritCSSPropertyWebkitPerspectiveOrigin(StyleResolverState& state) | 
| -{ | 
| -    applyInheritCSSPropertyWebkitPerspectiveOriginX(state); | 
| -    applyInheritCSSPropertyWebkitPerspectiveOriginY(state); | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyValueCSSPropertyWebkitPerspectiveOrigin(StyleResolverState&, CSSValue* value) | 
| -{ | 
| -    // This is expanded in the parser | 
| -    ASSERT_NOT_REACHED(); | 
| -} | 
| - | 
| void StyleBuilderFunctions::applyValueCSSPropertyWebkitTapHighlightColor(StyleResolverState& state, CSSValue* value) | 
| { | 
| if (!value->isPrimitiveValue()) | 
| @@ -1245,7 +1226,6 @@ void StyleBuilderFunctions::applyValueCSSPropertyFont(StyleResolverState& state, | 
| // FIXME: System Font identifiers should not hijack this | 
| // short-hand CSSProperty like this (crbug.com/353932) | 
| state.style()->setLineHeight(RenderStyle::initialLineHeight()); | 
| -    state.setLineHeightValue(0); | 
| state.fontBuilder().fromSystemFont(toCSSPrimitiveValue(value)->getValueID(), state.style()->effectiveZoom()); | 
| } | 
|  | 
| @@ -1280,37 +1260,21 @@ void StyleBuilderFunctions::applyValueCSSPropertyWebkitAppRegion(StyleResolverSt | 
| state.document().setHasAnnotatedRegions(true); | 
| } | 
|  | 
| -void StyleBuilderFunctions::applyInitialCSSPropertyWebkitPerspective(StyleResolverState& state) | 
| -{ | 
| -    applyInitialCSSPropertyPerspective(state); | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyInheritCSSPropertyWebkitPerspective(StyleResolverState& state) | 
| -{ | 
| -    applyInheritCSSPropertyPerspective(state); | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyValueCSSPropertyWebkitPerspective(StyleResolverState& state, CSSValue* value) | 
| +void StyleBuilderFunctions::applyValueCSSPropertyPerspective(StyleResolverState& state, CSSValue* value) | 
| { | 
| if (!value->isPrimitiveValue()) | 
| return; | 
| CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 
| +    if (primitiveValue->getValueID() == CSSValueNone) { | 
| +        state.style()->setPerspective(0); | 
| +        return; | 
| +    } | 
| + | 
| +    // This case is only hit when using -webkit-perspective | 
| if (primitiveValue->isNumber()) { | 
| float perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoubleValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.cssToLengthConversionData()); | 
| if (perspectiveValue >= 0.0f) | 
| state.style()->setPerspective(perspectiveValue); | 
| -    } else { | 
| -        applyValueCSSPropertyPerspective(state, value); | 
| -    } | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyValueCSSPropertyPerspective(StyleResolverState& state, CSSValue* value) | 
| -{ | 
| -    if (!value->isPrimitiveValue()) | 
| -        return; | 
| -    CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 
| -    if (primitiveValue->getValueID() == CSSValueNone) { | 
| -        state.style()->setPerspective(0); | 
| return; | 
| } | 
|  | 
| @@ -1321,20 +1285,6 @@ void StyleBuilderFunctions::applyValueCSSPropertyPerspective(StyleResolverState& | 
| state.style()->setPerspective(perspectiveValue); | 
| } | 
|  | 
| -void StyleBuilderFunctions::applyInitialCSSPropertyInternalCallback(StyleResolverState& state) | 
| -{ | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyInheritCSSPropertyInternalCallback(StyleResolverState& state) | 
| -{ | 
| -} | 
| - | 
| -void StyleBuilderFunctions::applyValueCSSPropertyInternalCallback(StyleResolverState& state, CSSValue* value) | 
| -{ | 
| -    if (value->isPrimitiveValue() && toCSSPrimitiveValue(value)->getValueID() == CSSValueInternalPresence) | 
| -        state.style()->addCallbackSelector(state.currentRule()->selectorList().selectorsText()); | 
| -} | 
| - | 
| void StyleBuilderFunctions::applyValueCSSPropertyWebkitWritingMode(StyleResolverState& state, CSSValue* value) | 
| { | 
| if (value->isPrimitiveValue()) | 
|  |