Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(927)

Side by Side Diff: Source/core/animation/css/CSSAnimations.cpp

Issue 468543002: Revert refactoring of CSSProperty .in files (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/animation/css/CSSAnimations.h ('k') | Source/core/core.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 22 matching lines...) Expand all
33 33
34 #include "core/StylePropertyShorthand.h" 34 #include "core/StylePropertyShorthand.h"
35 #include "core/animation/ActiveAnimations.h" 35 #include "core/animation/ActiveAnimations.h"
36 #include "core/animation/AnimationTimeline.h" 36 #include "core/animation/AnimationTimeline.h"
37 #include "core/animation/CompositorAnimations.h" 37 #include "core/animation/CompositorAnimations.h"
38 #include "core/animation/KeyframeEffectModel.h" 38 #include "core/animation/KeyframeEffectModel.h"
39 #include "core/animation/LegacyStyleInterpolation.h" 39 #include "core/animation/LegacyStyleInterpolation.h"
40 #include "core/animation/css/CSSAnimatableValueFactory.h" 40 #include "core/animation/css/CSSAnimatableValueFactory.h"
41 #include "core/animation/css/CSSPropertyEquality.h" 41 #include "core/animation/css/CSSPropertyEquality.h"
42 #include "core/css/CSSKeyframeRule.h" 42 #include "core/css/CSSKeyframeRule.h"
43 #include "core/css/CSSPropertyMetadata.h"
44 #include "core/css/resolver/CSSToStyleMap.h" 43 #include "core/css/resolver/CSSToStyleMap.h"
45 #include "core/css/resolver/StyleResolver.h" 44 #include "core/css/resolver/StyleResolver.h"
46 #include "core/dom/Element.h" 45 #include "core/dom/Element.h"
47 #include "core/dom/PseudoElement.h" 46 #include "core/dom/PseudoElement.h"
48 #include "core/dom/StyleEngine.h" 47 #include "core/dom/StyleEngine.h"
49 #include "core/events/TransitionEvent.h" 48 #include "core/events/TransitionEvent.h"
50 #include "core/events/WebKitAnimationEvent.h" 49 #include "core/events/WebKitAnimationEvent.h"
51 #include "core/frame/UseCounter.h" 50 #include "core/frame/UseCounter.h"
52 #include "core/rendering/RenderLayer.h" 51 #include "core/rendering/RenderLayer.h"
53 #include "core/rendering/RenderObject.h" 52 #include "core/rendering/RenderObject.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 if (property == CSSPropertyWebkitAnimationTimingFunction || property == CSSPropertyAnimationTimingFunction) { 111 if (property == CSSPropertyWebkitAnimationTimingFunction || property == CSSPropertyAnimationTimingFunction) {
113 CSSValue* value = properties.propertyAt(j).value(); 112 CSSValue* value = properties.propertyAt(j).value();
114 RefPtr<TimingFunction> timingFunction; 113 RefPtr<TimingFunction> timingFunction;
115 if (value->isInheritedValue() && parentStyle->animations()) 114 if (value->isInheritedValue() && parentStyle->animations())
116 timingFunction = parentStyle->animations()->timingFunctionLi st()[0]; 115 timingFunction = parentStyle->animations()->timingFunctionLi st()[0];
117 else if (value->isInheritedValue() || value->isInitialValue()) 116 else if (value->isInheritedValue() || value->isInitialValue())
118 timingFunction = CSSTimingData::initialTimingFunction(); 117 timingFunction = CSSTimingData::initialTimingFunction();
119 else 118 else
120 timingFunction = CSSToStyleMap::mapAnimationTimingFunction(t oCSSValueList(value)->item(0)); 119 timingFunction = CSSToStyleMap::mapAnimationTimingFunction(t oCSSValueList(value)->item(0));
121 keyframe->setEasing(timingFunction.release()); 120 keyframe->setEasing(timingFunction.release());
122 } else if (CSSPropertyMetadata::isAnimatableProperty(property)) { 121 } else if (CSSAnimations::isAnimatableProperty(property)) {
123 keyframe->setPropertyValue(property, CSSAnimatableValueFactory:: create(property, *keyframeStyle).get()); 122 keyframe->setPropertyValue(property, CSSAnimatableValueFactory:: create(property, *keyframeStyle).get());
124 } 123 }
125 } 124 }
126 keyframes.append(keyframe); 125 keyframes.append(keyframe);
127 // The last keyframe specified at a given offset is used. 126 // The last keyframe specified at a given offset is used.
128 for (size_t j = 1; j < offsets.size(); ++j) { 127 for (size_t j = 1; j < offsets.size(); ++j) {
129 keyframes.append(toAnimatableValueKeyframe(keyframe->cloneWithOffset (offsets[j]).get())); 128 keyframes.append(toAnimatableValueKeyframe(keyframe->cloneWithOffset (offsets[j]).get()));
130 } 129 }
131 } 130 }
132 ASSERT(!keyframes.isEmpty()); 131 ASSERT(!keyframes.isEmpty());
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 if (animateAll) 484 if (animateAll)
486 anyTransitionHadTransitionAll = true; 485 anyTransitionHadTransitionAll = true;
487 const StylePropertyShorthand& propertyList = animateAll ? CSSAnimati ons::animatableProperties() : shorthandForProperty(property); 486 const StylePropertyShorthand& propertyList = animateAll ? CSSAnimati ons::animatableProperties() : shorthandForProperty(property);
488 // If not a shorthand we only execute one iteration of this loop, an d refer to the property directly. 487 // If not a shorthand we only execute one iteration of this loop, an d refer to the property directly.
489 for (unsigned j = 0; !j || j < propertyList.length(); ++j) { 488 for (unsigned j = 0; !j || j < propertyList.length(); ++j) {
490 CSSPropertyID id = propertyList.length() ? propertyList.properti es()[j] : property; 489 CSSPropertyID id = propertyList.length() ? propertyList.properti es()[j] : property;
491 CSSPropertyID eventId = id; 490 CSSPropertyID eventId = id;
492 491
493 if (!animateAll) { 492 if (!animateAll) {
494 id = propertyForAnimation(id); 493 id = propertyForAnimation(id);
495 if (CSSPropertyMetadata::isAnimatableProperty(id)) 494 if (CSSAnimations::isAnimatableProperty(id))
496 listedProperties.set(id); 495 listedProperties.set(id);
497 else 496 else
498 continue; 497 continue;
499 } 498 }
500 499
501 // FIXME: We should transition if an !important property changes even when an animation is running, 500 // FIXME: We should transition if an !important property changes even when an animation is running,
502 // but this is a bit hard to do with the current applyMatchedPro perties system. 501 // but this is a bit hard to do with the current applyMatchedPro perties system.
503 if (!update->activeInterpolationsForAnimations().contains(id) 502 if (!update->activeInterpolationsForAnimations().contains(id)
504 && (!activeAnimations || !activeAnimations->cssAnimations(). m_previousActiveInterpolationsForAnimations.contains(id))) { 503 && (!activeAnimations || !activeAnimations->cssAnimations(). m_previousActiveInterpolationsForAnimations.contains(id))) {
505 calculateTransitionUpdateForProperty(id, eventId, *transitio nData, i, oldStyle, style, activeTransitions, update, element); 504 calculateTransitionUpdateForProperty(id, eventId, *transitio nData, i, oldStyle, style, activeTransitions, update, element);
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 652
654 m_previousPhase = currentPhase; 653 m_previousPhase = currentPhase;
655 } 654 }
656 655
657 void CSSAnimations::TransitionEventDelegate::trace(Visitor* visitor) 656 void CSSAnimations::TransitionEventDelegate::trace(Visitor* visitor)
658 { 657 {
659 visitor->trace(m_target); 658 visitor->trace(m_target);
660 AnimationNode::EventDelegate::trace(visitor); 659 AnimationNode::EventDelegate::trace(visitor);
661 } 660 }
662 661
662 bool CSSAnimations::isAnimatableProperty(CSSPropertyID property)
663 {
664 switch (property) {
665 case CSSPropertyBackgroundColor:
666 case CSSPropertyBackgroundImage:
667 case CSSPropertyBackgroundPositionX:
668 case CSSPropertyBackgroundPositionY:
669 case CSSPropertyBackgroundSize:
670 case CSSPropertyBaselineShift:
671 case CSSPropertyBorderBottomColor:
672 case CSSPropertyBorderBottomLeftRadius:
673 case CSSPropertyBorderBottomRightRadius:
674 case CSSPropertyBorderBottomWidth:
675 case CSSPropertyBorderImageOutset:
676 case CSSPropertyBorderImageSlice:
677 case CSSPropertyBorderImageSource:
678 case CSSPropertyBorderImageWidth:
679 case CSSPropertyBorderLeftColor:
680 case CSSPropertyBorderLeftWidth:
681 case CSSPropertyBorderRightColor:
682 case CSSPropertyBorderRightWidth:
683 case CSSPropertyBorderTopColor:
684 case CSSPropertyBorderTopLeftRadius:
685 case CSSPropertyBorderTopRightRadius:
686 case CSSPropertyBorderTopWidth:
687 case CSSPropertyBottom:
688 case CSSPropertyBoxShadow:
689 case CSSPropertyClip:
690 case CSSPropertyColor:
691 case CSSPropertyFill:
692 case CSSPropertyFillOpacity:
693 case CSSPropertyFlexBasis:
694 case CSSPropertyFlexGrow:
695 case CSSPropertyFlexShrink:
696 case CSSPropertyFloodColor:
697 case CSSPropertyFloodOpacity:
698 case CSSPropertyFontSize:
699 case CSSPropertyFontWeight:
700 case CSSPropertyHeight:
701 case CSSPropertyLeft:
702 case CSSPropertyLetterSpacing:
703 case CSSPropertyLightingColor:
704 case CSSPropertyLineHeight:
705 case CSSPropertyListStyleImage:
706 case CSSPropertyMarginBottom:
707 case CSSPropertyMarginLeft:
708 case CSSPropertyMarginRight:
709 case CSSPropertyMarginTop:
710 case CSSPropertyMaxHeight:
711 case CSSPropertyMaxWidth:
712 case CSSPropertyMinHeight:
713 case CSSPropertyMinWidth:
714 case CSSPropertyObjectPosition:
715 case CSSPropertyOpacity:
716 case CSSPropertyOrphans:
717 case CSSPropertyOutlineColor:
718 case CSSPropertyOutlineOffset:
719 case CSSPropertyOutlineWidth:
720 case CSSPropertyPaddingBottom:
721 case CSSPropertyPaddingLeft:
722 case CSSPropertyPaddingRight:
723 case CSSPropertyPaddingTop:
724 case CSSPropertyRight:
725 case CSSPropertyStopColor:
726 case CSSPropertyStopOpacity:
727 case CSSPropertyStroke:
728 case CSSPropertyStrokeDasharray:
729 case CSSPropertyStrokeDashoffset:
730 case CSSPropertyStrokeMiterlimit:
731 case CSSPropertyStrokeOpacity:
732 case CSSPropertyStrokeWidth:
733 case CSSPropertyTextDecorationColor:
734 case CSSPropertyTextIndent:
735 case CSSPropertyTextShadow:
736 case CSSPropertyTop:
737 case CSSPropertyVerticalAlign:
738 case CSSPropertyVisibility:
739 case CSSPropertyWebkitBackgroundSize:
740 case CSSPropertyWebkitBorderHorizontalSpacing:
741 case CSSPropertyWebkitBorderVerticalSpacing:
742 case CSSPropertyWebkitBoxShadow:
743 case CSSPropertyWebkitClipPath:
744 case CSSPropertyWebkitColumnCount:
745 case CSSPropertyWebkitColumnGap:
746 case CSSPropertyWebkitColumnRuleColor:
747 case CSSPropertyWebkitColumnRuleWidth:
748 case CSSPropertyWebkitColumnWidth:
749 case CSSPropertyWebkitFilter:
750 case CSSPropertyWebkitMaskBoxImageOutset:
751 case CSSPropertyWebkitMaskBoxImageSlice:
752 case CSSPropertyWebkitMaskBoxImageSource:
753 case CSSPropertyWebkitMaskBoxImageWidth:
754 case CSSPropertyWebkitMaskImage:
755 case CSSPropertyWebkitMaskPositionX:
756 case CSSPropertyWebkitMaskPositionY:
757 case CSSPropertyWebkitMaskSize:
758 case CSSPropertyPerspective:
759 case CSSPropertyPerspectiveOrigin:
760 case CSSPropertyShapeOutside:
761 case CSSPropertyShapeMargin:
762 case CSSPropertyShapeImageThreshold:
763 case CSSPropertyWebkitTextStrokeColor:
764 case CSSPropertyTransform:
765 case CSSPropertyTransformOrigin:
766 case CSSPropertyWidows:
767 case CSSPropertyWidth:
768 case CSSPropertyWordSpacing:
769 case CSSPropertyZIndex:
770 case CSSPropertyZoom:
771 return true;
772 default:
773 return false;
774 }
775 }
776
663 const StylePropertyShorthand& CSSAnimations::animatableProperties() 777 const StylePropertyShorthand& CSSAnimations::animatableProperties()
664 { 778 {
665 DEFINE_STATIC_LOCAL(Vector<CSSPropertyID>, properties, ()); 779 DEFINE_STATIC_LOCAL(Vector<CSSPropertyID>, properties, ());
666 DEFINE_STATIC_LOCAL(StylePropertyShorthand, propertyShorthand, ()); 780 DEFINE_STATIC_LOCAL(StylePropertyShorthand, propertyShorthand, ());
667 if (properties.isEmpty()) { 781 if (properties.isEmpty()) {
668 for (int i = firstCSSProperty; i < lastCSSProperty; ++i) { 782 for (int i = firstCSSProperty; i < lastCSSProperty; ++i) {
669 CSSPropertyID id = convertToCSSPropertyID(i); 783 CSSPropertyID id = convertToCSSPropertyID(i);
670 if (CSSPropertyMetadata::isAnimatableProperty(id)) 784 if (isAnimatableProperty(id))
671 properties.append(id); 785 properties.append(id);
672 } 786 }
673 propertyShorthand = StylePropertyShorthand(CSSPropertyInvalid, propertie s.begin(), properties.size()); 787 propertyShorthand = StylePropertyShorthand(CSSPropertyInvalid, propertie s.begin(), properties.size());
674 } 788 }
675 return propertyShorthand; 789 return propertyShorthand;
676 } 790 }
677 791
678 // Animation properties are not allowed to be affected by Web Animations. 792 // Animation properties are not allowed to be affected by Web Animations.
679 // http://dev.w3.org/fxtf/web-animations/#not-animatable 793 // http://dev.w3.org/fxtf/web-animations/#not-animatable
680 bool CSSAnimations::isAllowedAnimation(CSSPropertyID property) 794 bool CSSAnimations::isAllowedAnimation(CSSPropertyID property)
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 #if ENABLE(OILPAN) 844 #if ENABLE(OILPAN)
731 visitor->trace(m_newTransitions); 845 visitor->trace(m_newTransitions);
732 visitor->trace(m_activeInterpolationsForAnimations); 846 visitor->trace(m_activeInterpolationsForAnimations);
733 visitor->trace(m_activeInterpolationsForTransitions); 847 visitor->trace(m_activeInterpolationsForTransitions);
734 visitor->trace(m_newAnimations); 848 visitor->trace(m_newAnimations);
735 visitor->trace(m_cancelledAnimationPlayers); 849 visitor->trace(m_cancelledAnimationPlayers);
736 #endif 850 #endif
737 } 851 }
738 852
739 } // namespace blink 853 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/animation/css/CSSAnimations.h ('k') | Source/core/core.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698