Changeset 139200 in webkit


Ignore:
Timestamp:
Jan 9, 2013 10:04:04 AM (11 years ago)
Author:
alexis@webkit.org
Message:

Implement CSS computed style value for transition shorthand
https://bugs.webkit.org/show_bug.cgi?id=105035

Reviewed by Dean Jackson.

Source/WebCore:

Implement support for query the transition and webkit-transition
shorthand from the computed style.

Test: transitions/transitions-parsing.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTransitionPropertyValue): Factor the code to create the
correct value into a function to reuse it for the shorthand.
(WebCore::getTransitionPropertyValue):
(WebCore::createTimingFunctionValue): Little refactor, the intermediate
local variables are not needed.
(WebCore::getTimingFunctionValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

LayoutTests:

Uncomment existing tests to cover the new feature.

  • transitions/transitions-parsing-expected.txt:
  • transitions/transitions-parsing.html:
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r139198 r139200  
     12013-01-09  Alexis Menard  <alexis@webkit.org>
     2
     3        Implement CSS computed style value for transition shorthand
     4        https://bugs.webkit.org/show_bug.cgi?id=105035
     5
     6        Reviewed by Dean Jackson.
     7
     8        Uncomment existing tests to cover the new feature.
     9
     10        * transitions/transitions-parsing-expected.txt:
     11        * transitions/transitions-parsing.html:
     12
    1132013-01-09  Shinya Kawanaka  <shinyak@chromium.org>
    214
  • trunk/LayoutTests/transitions/transitions-parsing-expected.txt

    r139106 r139200  
    300300PASS style.webkitTransitionDelay is ''
    301301PASS computedStyle.webkitTransitionDelay is '0s'
     302Valid transition shorthand values.
     303PASS computedStyle.transition is 'all 0s ease 0s'
     304PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     305PASS style.transition is 'none'
     306PASS computedStyle.transition is 'none 0s ease 0s'
     307PASS style.webkitTransition is 'none'
     308PASS computedStyle.webkitTransition is 'none 0s ease 0s'
     309PASS checkTransitionShorthandValue() is true
     310PASS style.transition is 'none 20s'
     311PASS computedStyle.transition is 'none 20s ease 0s'
     312PASS style.webkitTransition is 'none 20s'
     313PASS computedStyle.webkitTransition is 'none 20s ease 0s'
     314PASS checkTransitionShorthandValue() is true
     315PASS style.transition is 'none 20s ease-in'
     316PASS computedStyle.transition is 'none 20s ease-in 0s'
     317PASS style.webkitTransition is 'none 20s ease-in'
     318PASS computedStyle.webkitTransition is 'none 20s ease-in 0s'
     319PASS checkTransitionShorthandValue() is true
     320PASS style.transition is 'opacity 20s ease-in'
     321PASS computedStyle.transition is 'opacity 20s ease-in 0s'
     322PASS style.webkitTransition is 'opacity 20s ease-in'
     323PASS computedStyle.webkitTransition is 'opacity 20s ease-in 0s'
     324PASS checkTransitionShorthandValue() is true
     325PASS style.transition is 'opacity 20s ease-in 10s'
     326PASS computedStyle.transition is 'opacity 20s ease-in 10s'
     327PASS style.webkitTransition is 'opacity 20s ease-in 10s'
     328PASS computedStyle.webkitTransition is 'opacity 20s ease-in 10s'
     329PASS computedStyle.transitionDuration is '20s'
     330PASS computedStyle.webkitTransitionDuration is '20s'
     331PASS computedStyle.transitionDelay is '10s'
     332PASS computedStyle.webkitTransitionDelay is '10s'
     333PASS checkTransitionShorthandValue() is true
     334PASS style.transition is 'opacity 20s ease-in 10s'
     335PASS computedStyle.transition is 'opacity 20s ease-in 10s'
     336PASS style.webkitTransition is 'opacity 20s ease-in 10s'
     337PASS computedStyle.webkitTransition is 'opacity 20s ease-in 10s'
     338PASS computedStyle.transitionDuration is '20s'
     339PASS computedStyle.webkitTransitionDuration is '20s'
     340PASS computedStyle.transitionDelay is '10s'
     341PASS computedStyle.webkitTransitionDelay is '10s'
     342PASS checkTransitionShorthandValue() is true
     343PASS style.transition is 'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'
     344PASS computedStyle.transition is 'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'
     345PASS style.webkitTransition is 'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'
     346PASS computedStyle.webkitTransition is 'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'
     347PASS computedStyle.transitionDuration is '20s, 10s'
     348PASS computedStyle.webkitTransitionDuration is '20s, 10s'
     349PASS computedStyle.transitionDelay is '10s, 20s'
     350PASS computedStyle.webkitTransitionDelay is '10s, 20s'
     351PASS checkTransitionShorthandValue() is true
     352Invalid transition shorthand values.
     353PASS style.transition is ''
     354PASS computedStyle.transition is 'all 0s ease 0s'
     355PASS style.webkitTransition is ''
     356PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     357PASS style.transition is ''
     358PASS computedStyle.transition is 'all 0s ease 0s'
     359PASS style.webkitTransition is ''
     360PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     361PASS style.transition is ''
     362PASS computedStyle.transition is 'all 0s ease 0s'
     363PASS style.webkitTransition is ''
     364PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     365PASS style.transition is ''
     366PASS computedStyle.transition is 'all 0s ease 0s'
     367PASS style.webkitTransition is ''
     368PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     369PASS style.transition is ''
     370PASS computedStyle.transition is 'all 0s ease 0s'
     371PASS style.webkitTransition is ''
     372PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     373PASS style.transition is ''
     374PASS computedStyle.transition is 'all 0s ease 0s'
     375PASS style.webkitTransition is ''
     376PASS computedStyle.webkitTransition is 'all 0s ease 0s'
     377PASS style.transition is ''
     378PASS computedStyle.transition is 'all 0s ease 0s'
     379PASS style.webkitTransition is ''
     380PASS computedStyle.webkitTransition is 'all 0s ease 0s'
    302381PASS successfullyParsed is true
    303382
  • trunk/LayoutTests/transitions/transitions-parsing.html

    r139106 r139200  
    1717computedStyle = window.getComputedStyle(e, null);
    1818
     19// This function checks the return value of computedStyle.transition and verifies WebKit can parse it.
     20function checkTransitionShorthandValue() {
     21    var before = computedStyle.getPropertyValue('transition');
     22    e.style.transition = '';
     23    e.style.transition = before;
     24    return (computedStyle.getPropertyValue('transition') == before);
     25}
     26
    1927debug("Valid transition-property values.");
    2028// Initial test.
     
    497505// Transition and -webkit-transition is not correctly implemented.
    498506// Tracked by https://bugs.webkit.org/show_bug.cgi?id=105035.
    499 /*debug("Valid transition shorthand values.");
     507debug("Valid transition shorthand values.");
    500508style.transition = "";
    501509// Initial test.
    502 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
    503 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     510shouldBe("computedStyle.transition", "'all 0s ease 0s'");
     511shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    504512
    505513style.transition = "none";
    506514shouldBe("style.transition", "'none'");
    507 shouldBe("computedStyle.transition", "'none 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     515shouldBe("computedStyle.transition", "'none 0s ease 0s'");
    508516shouldBe("style.webkitTransition", "'none'");
    509 shouldBe("computedStyle.webkitTransition", "'none 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     517shouldBe("computedStyle.webkitTransition", "'none 0s ease 0s'");
     518shouldBe("checkTransitionShorthandValue()", "true");
    510519
    511520style.transition = "none 20s";
    512521shouldBe("style.transition", "'none 20s'");
    513 shouldBe("computedStyle.transition", "'none 20s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     522shouldBe("computedStyle.transition", "'none 20s ease 0s'");
    514523shouldBe("style.webkitTransition", "'none 20s'");
    515 shouldBe("computedStyle.webkitTransition", "'none 20s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     524shouldBe("computedStyle.webkitTransition", "'none 20s ease 0s'");
     525shouldBe("checkTransitionShorthandValue()", "true");
    516526
    517527style.transition = "ease-in none 20s";
    518 shouldBe("style.transition", "'ease-in none 20s'");
    519 shouldBe("computedStyle.transition", "'none 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
    520 shouldBe("style.webkitTransition", "'ease-in none 20s'");
    521 shouldBe("computedStyle.webkitTransition", "'none 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
     528shouldBe("style.transition", "'none 20s ease-in'");
     529shouldBe("computedStyle.transition", "'none 20s ease-in 0s'");
     530shouldBe("style.webkitTransition", "'none 20s ease-in'");
     531shouldBe("computedStyle.webkitTransition", "'none 20s ease-in 0s'");
     532shouldBe("checkTransitionShorthandValue()", "true");
    522533
    523534style.transition = "ease-in opacity 20s";
    524 shouldBe("style.transition", "'ease-in opacity 20s'");
    525 shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
    526 shouldBe("style.webkitTransition", "'ease-in opacity 20s'");
    527 shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 0s'");
     535shouldBe("style.transition", "'opacity 20s ease-in'");
     536shouldBe("computedStyle.transition", "'opacity 20s ease-in 0s'");
     537shouldBe("style.webkitTransition", "'opacity 20s ease-in'");
     538shouldBe("computedStyle.webkitTransition", "'opacity 20s ease-in 0s'");
     539shouldBe("checkTransitionShorthandValue()", "true");
    528540
    529541style.transition = "ease-in opacity 20s 10s";
    530 shouldBe("style.transition", "'ease-in opacity 20s 10s'");
    531 shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
    532 shouldBe("style.webkitTransition", "'ease-in opacity 20s 10s'");
    533 shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
     542shouldBe("style.transition", "'opacity 20s ease-in 10s'");
     543shouldBe("computedStyle.transition", "'opacity 20s ease-in 10s'");
     544shouldBe("style.webkitTransition", "'opacity 20s ease-in 10s'");
     545shouldBe("computedStyle.webkitTransition", "'opacity 20s ease-in 10s'");
    534546// Let's double check here the delay and duration. As stated in the spec the first value parsed
    535547// is assigned to the duration.
     
    538550shouldBe("computedStyle.transitionDelay", "'10s'");
    539551shouldBe("computedStyle.webkitTransitionDelay", "'10s'");
     552shouldBe("checkTransitionShorthandValue()", "true");
    540553
    541554style.transition = "20s ease-in opacity 10s";
    542 shouldBe("style.transition", "'20s ease-in opacity 10s'");
    543 shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
    544 shouldBe("style.webkitTransition", "'20s ease-in opacity 10s'");
    545 shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s'");
     555shouldBe("style.transition", "'opacity 20s ease-in 10s'");
     556shouldBe("computedStyle.transition", "'opacity 20s ease-in 10s'");
     557shouldBe("style.webkitTransition", "'opacity 20s ease-in 10s'");
     558shouldBe("computedStyle.webkitTransition", "'opacity 20s ease-in 10s'");
    546559shouldBe("computedStyle.transitionDuration", "'20s'");
    547560shouldBe("computedStyle.webkitTransitionDuration", "'20s'");
    548561shouldBe("computedStyle.transitionDelay", "'10s'");
    549562shouldBe("computedStyle.webkitTransitionDelay", "'10s'");
     563shouldBe("checkTransitionShorthandValue()", "true");
    550564
    551565style.transition = "ease-in opacity 20s 10s, cubic-bezier(0.32, 0, 1, 1) 10s width 20s";
    552 shouldBe("style.transition", "'ease-in opacity 20s 10s, cubic-bezier(0.32, 0, 1, 1) 10s width 20s'");
    553 shouldBe("computedStyle.transition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
    554 shouldBe("style.webkitTransition", "'ease-in opacity 20s 10s, cubic-bezier(0.32, 0, 1, 1) 10s width 20s'");
    555 shouldBe("computedStyle.webkitTransition", "'opacity 20s cubic-bezier(0.42, 0, 1, 1) 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
     566shouldBe("style.transition", "'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
     567shouldBe("computedStyle.transition", "'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
     568shouldBe("style.webkitTransition", "'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
     569shouldBe("computedStyle.webkitTransition", "'opacity 20s ease-in 10s, width 10s cubic-bezier(0.32, 0, 1, 1) 20s'");
    556570// Let's double check here the delay and duration. As stated in the spec the first value parsed
    557571// is assigned to the duration.
     
    560574shouldBe("computedStyle.transitionDelay", "'10s, 20s'");
    561575shouldBe("computedStyle.webkitTransitionDelay", "'10s, 20s'");
     576shouldBe("checkTransitionShorthandValue()", "true");
    562577
    563578debug("Invalid transition shorthand values.");
     
    566581style.transition = "20";
    567582shouldBe("style.transition", "''");
    568 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     583shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    569584shouldBe("style.webkitTransition", "''");
    570 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     585shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    571586
    572587style.transition = "20, 20";
    573588shouldBe("style.transition", "''");
    574 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     589shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    575590shouldBe("style.webkitTransition", "''");
    576 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     591shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    577592
    578593style.transition = "widthFoo";
    579594shouldBe("style.transition", "''");
    580 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     595shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    581596shouldBe("style.webkitTransition", "''");
    582 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     597shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    583598
    584599style.transition = "all 30s width ease-in";
    585600shouldBe("style.transition", "''");
    586 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     601shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    587602shouldBe("style.webkitTransition", "''");
    588 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     603shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    589604
    590605style.transition = "all 30s ease-in 20px";
    591606shouldBe("style.transition", "''");
    592 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     607shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    593608shouldBe("style.webkitTransition", "''");
    594 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     609shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    595610
    596611style.transition = "all 30s ease-in 20s, 20px";
    597612shouldBe("style.transition", "''");
    598 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     613shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    599614shouldBe("style.webkitTransition", "''");
    600 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     615shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    601616
    602617style.transition = "all 30s ease-in 20s, step-start(2)";
    603618shouldBe("style.transition", "''");
    604 shouldBe("computedStyle.transition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");
     619shouldBe("computedStyle.transition", "'all 0s ease 0s'");
    605620shouldBe("style.webkitTransition", "''");
    606 shouldBe("computedStyle.webkitTransition", "'all 0s cubic-bezier(0.25, 0.1, 0.25, 1) 0s'");*/
     621shouldBe("computedStyle.webkitTransition", "'all 0s ease 0s'");
    607622
    608623document.body.removeChild(testContainer);
  • trunk/Source/WebCore/ChangeLog

    r139199 r139200  
     12013-01-09  Alexis Menard  <alexis@webkit.org>
     2
     3        Implement CSS computed style value for transition shorthand
     4        https://bugs.webkit.org/show_bug.cgi?id=105035
     5
     6        Reviewed by Dean Jackson.
     7
     8        Implement support for query the transition and webkit-transition
     9        shorthand from the computed style.
     10
     11        Test: transitions/transitions-parsing.html
     12
     13        * css/CSSComputedStyleDeclaration.cpp:
     14        (WebCore::createTransitionPropertyValue): Factor the code to create the
     15        correct value into a function to reuse it for the shorthand.
     16        (WebCore::getTransitionPropertyValue):
     17        (WebCore::createTimingFunctionValue): Little refactor, the intermediate
     18        local variables are not needed.
     19        (WebCore::getTimingFunctionValue):
     20        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
     21
    1222013-01-09  Hajime Morrita  <morrita@google.com>
    223
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r138909 r139200  
    10481048    return cssValuePool().createValue(position.integerPosition(), CSSPrimitiveValue::CSS_NUMBER);
    10491049}
     1050static PassRefPtr<CSSValue> createTransitionPropertyValue(const Animation* animation)
     1051{
     1052    RefPtr<CSSValue> propertyValue;
     1053    if (animation->animationMode() == Animation::AnimateNone)
     1054        propertyValue = cssValuePool().createIdentifierValue(CSSValueNone);
     1055    else if (animation->animationMode() == Animation::AnimateAll)
     1056        propertyValue = cssValuePool().createIdentifierValue(CSSValueAll);
     1057    else
     1058        propertyValue = cssValuePool().createValue(getPropertyNameString(animation->property()), CSSPrimitiveValue::CSS_STRING);
     1059    return propertyValue.release();
     1060}
     1061static PassRefPtr<CSSValue> getTransitionPropertyValue(const AnimationList* animList)
     1062{
     1063    RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
     1064    if (animList) {
     1065        for (size_t i = 0; i < animList->size(); ++i)
     1066            list->append(createTransitionPropertyValue(animList->animation(i)));
     1067    } else
     1068        list->append(cssValuePool().createIdentifierValue(CSSValueAll));
     1069    return list.release();
     1070}
    10501071
    10511072static PassRefPtr<CSSValue> getDelayValue(const AnimationList* animList)
     
    10751096}
    10761097
    1077 static PassRefPtr<CSSValue> createAnimationValue(const TimingFunction* timingFunction)
     1098static PassRefPtr<CSSValue> createTimingFunctionValue(const TimingFunction* timingFunction)
    10781099{
    10791100    if (timingFunction->isCubicBezierTimingFunction()) {
     
    11151136    RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
    11161137    if (animList) {
    1117         for (size_t i = 0; i < animList->size(); ++i) {
    1118             RefPtr<TimingFunction> timingFunction = animList->animation(i)->timingFunction();
    1119             list->append(createAnimationValue(timingFunction.get()));
    1120         }
    1121     } else {
     1138        for (size_t i = 0; i < animList->size(); ++i)
     1139            list->append(createTimingFunctionValue(animList->animation(i)->timingFunction().get()));
     1140    } else
    11221141        // Note that initialAnimationTimingFunction() is used for both transitions and animations
    1123         RefPtr<TimingFunction> timingFunction = Animation::initialAnimationTimingFunction();
    1124         list->append(createAnimationValue(timingFunction.get()));
    1125     }
     1142        list->append(createTimingFunctionValue(Animation::initialAnimationTimingFunction().get()));
    11261143    return list.release();
    11271144}
     
    24702487        case CSSPropertyWebkitTransitionDuration:
    24712488            return getDurationValue(style->transitions());
    2472         case CSSPropertyWebkitTransitionProperty: {
    2473             RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
    2474             const AnimationList* t = style->transitions();
    2475             if (t) {
    2476                 for (size_t i = 0; i < t->size(); ++i) {
    2477                     RefPtr<CSSValue> propertyValue;
    2478                     const Animation* animation = t->animation(i);
    2479                     if (animation->animationMode() == Animation::AnimateNone)
    2480                         propertyValue = cssValuePool().createIdentifierValue(CSSValueNone);
    2481                     else if (animation->animationMode() == Animation::AnimateAll)
    2482                         propertyValue = cssValuePool().createIdentifierValue(CSSValueAll);
    2483                     else
    2484                         propertyValue = cssValuePool().createValue(getPropertyNameString(animation->property()), CSSPrimitiveValue::CSS_STRING);
    2485                     list->append(propertyValue);
    2486                 }
    2487             } else
    2488                 list->append(cssValuePool().createIdentifierValue(CSSValueAll));
    2489             return list.release();
    2490         }
     2489        case CSSPropertyWebkitTransitionProperty:
     2490            return getTransitionPropertyValue(style->transitions());
    24912491        case CSSPropertyWebkitTransitionTimingFunction:
    24922492            return getTimingFunctionValue(style->transitions());
     2493        case CSSPropertyWebkitTransition: {
     2494            const AnimationList* animList = style->transitions();
     2495            if (animList) {
     2496                RefPtr<CSSValueList> transitionsList = CSSValueList::createCommaSeparated();
     2497                for (size_t i = 0; i < animList->size(); ++i) {
     2498                    RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
     2499                    const Animation* animation = animList->animation(i);
     2500                    list->append(createTransitionPropertyValue(animation));
     2501                    list->append(cssValuePool().createValue(animation->duration(), CSSPrimitiveValue::CSS_S));
     2502                    list->append(createTimingFunctionValue(animation->timingFunction().get()));
     2503                    list->append(cssValuePool().createValue(animation->delay(), CSSPrimitiveValue::CSS_S));
     2504                    transitionsList->append(list);
     2505                }
     2506                return transitionsList.release();
     2507            }
     2508
     2509            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
     2510            // transition-property default value.
     2511            list->append(cssValuePool().createIdentifierValue(CSSValueAll));
     2512            list->append(cssValuePool().createValue(Animation::initialAnimationDuration(), CSSPrimitiveValue::CSS_S));
     2513            list->append(createTimingFunctionValue(Animation::initialAnimationTimingFunction().get()));
     2514            list->append(cssValuePool().createValue(Animation::initialAnimationDelay(), CSSPrimitiveValue::CSS_S));
     2515            return list.release();
     2516        }
    24932517        case CSSPropertyPointerEvents:
    24942518            return cssValuePool().createValue(style->pointerEvents());
     
    26962720        case CSSPropertyWebkitTransformOriginY:
    26972721        case CSSPropertyWebkitTransformOriginZ:
    2698         case CSSPropertyWebkitTransition:
    26992722#if ENABLE(CSS_EXCLUSIONS)
    27002723        case CSSPropertyWebkitWrap:
Note: See TracChangeset for help on using the changeset viewer.