| Index: Source/platform/animation/TimingFunction.h | 
| diff --git a/Source/platform/animation/TimingFunction.h b/Source/platform/animation/TimingFunction.h | 
| index c5c6c0620d38ae1f762554604c571b8f5a132474..31f980687279324bf74e009c8e4a29976b625f7e 100644 | 
| --- a/Source/platform/animation/TimingFunction.h | 
| +++ b/Source/platform/animation/TimingFunction.h | 
| @@ -172,12 +172,19 @@ public: | 
| enum SubType { | 
| Start, | 
| End, | 
| +        Middle, | 
| Custom | 
| }; | 
|  | 
| -    static PassRefPtr<StepsTimingFunction> create(int steps, bool stepAtStart) | 
| +    enum StepAtPosition { | 
| +        StepAtStart, | 
| +        StepAtMiddle, | 
| +        StepAtEnd | 
| +    }; | 
| + | 
| +    static PassRefPtr<StepsTimingFunction> create(int steps, StepAtPosition stepAtPosition) | 
| { | 
| -        return adoptRef(new StepsTimingFunction(Custom, steps, stepAtStart)); | 
| +        return adoptRef(new StepsTimingFunction(Custom, steps, stepAtPosition)); | 
| } | 
|  | 
| static StepsTimingFunction* preset(SubType subType) | 
| @@ -185,12 +192,17 @@ public: | 
| switch (subType) { | 
| case Start: | 
| { | 
| -                DEFINE_STATIC_REF(StepsTimingFunction, start, (adoptRef(new StepsTimingFunction(Start, 1, true)))); | 
| +                DEFINE_STATIC_REF(StepsTimingFunction, start, (adoptRef(new StepsTimingFunction(Start, 1, StepAtStart)))); | 
| return start; | 
| } | 
| +        case Middle: | 
| +            { | 
| +                DEFINE_STATIC_REF(StepsTimingFunction, middle, (adoptRef(new StepsTimingFunction(Middle, 1, StepAtMiddle)))); | 
| +                return middle; | 
| +            } | 
| case End: | 
| { | 
| -                DEFINE_STATIC_REF(StepsTimingFunction, end, (adoptRef(new StepsTimingFunction(End, 1, false)))); | 
| +                DEFINE_STATIC_REF(StepsTimingFunction, end, (adoptRef(new StepsTimingFunction(End, 1, StepAtEnd)))); | 
| return end; | 
| } | 
| default: | 
| @@ -207,21 +219,21 @@ public: | 
| virtual double evaluate(double fraction, double) const OVERRIDE; | 
|  | 
| int numberOfSteps() const { return m_steps; } | 
| -    bool stepAtStart() const { return m_stepAtStart; } | 
| +    StepAtPosition stepAtPosition() const { return m_stepAtPosition; } | 
|  | 
| SubType subType() const { return m_subType; } | 
|  | 
| private: | 
| -    StepsTimingFunction(SubType subType, int steps, bool stepAtStart) | 
| +    StepsTimingFunction(SubType subType, int steps, StepAtPosition stepAtPosition) | 
| : TimingFunction(StepsFunction) | 
| , m_steps(steps) | 
| -        , m_stepAtStart(stepAtStart) | 
| +        , m_stepAtPosition(stepAtPosition) | 
| , m_subType(subType) | 
| { | 
| } | 
|  | 
| int m_steps; | 
| -    bool m_stepAtStart; | 
| +    StepAtPosition m_stepAtPosition; | 
| SubType m_subType; | 
| }; | 
|  | 
|  |