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

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

Issue 2723883005: Add registered custom property wrapping support to CSSAnimatableValueFactory (Closed)
Patch Set: Rebased Created 3 years, 9 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
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 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 return; 629 return;
630 } 630 }
631 631
632 RefPtr<AnimatableValue> to = nullptr; 632 RefPtr<AnimatableValue> to = nullptr;
633 const RunningTransition* interruptedTransition = nullptr; 633 const RunningTransition* interruptedTransition = nullptr;
634 if (state.activeTransitions) { 634 if (state.activeTransitions) {
635 TransitionMap::const_iterator activeTransitionIter = 635 TransitionMap::const_iterator activeTransitionIter =
636 state.activeTransitions->find(property); 636 state.activeTransitions->find(property);
637 if (activeTransitionIter != state.activeTransitions->end()) { 637 if (activeTransitionIter != state.activeTransitions->end()) {
638 const RunningTransition* runningTransition = &activeTransitionIter->value; 638 const RunningTransition* runningTransition = &activeTransitionIter->value;
639 to = CSSAnimatableValueFactory::create(property.cssProperty(), 639 to = CSSAnimatableValueFactory::create(property, state.style);
640 state.style);
641 const AnimatableValue* activeTo = runningTransition->to.get(); 640 const AnimatableValue* activeTo = runningTransition->to.get();
642 if (to->equals(activeTo)) 641 if (to->equals(activeTo))
643 return; 642 return;
644 state.update.cancelTransition(property); 643 state.update.cancelTransition(property);
645 DCHECK(!state.animatingElement->elementAnimations() || 644 DCHECK(!state.animatingElement->elementAnimations() ||
646 !state.animatingElement->elementAnimations() 645 !state.animatingElement->elementAnimations()
647 ->isAnimationStyleChange()); 646 ->isAnimationStyleChange());
648 647
649 if (to->equals(runningTransition->reversingAdjustedStartValue.get())) { 648 if (to->equals(runningTransition->reversingAdjustedStartValue.get())) {
650 interruptedTransition = runningTransition; 649 interruptedTransition = runningTransition;
651 } 650 }
652 } 651 }
653 } 652 }
654 653
655 if (CSSPropertyEquality::propertiesEqual(property.cssProperty(), 654 if (CSSPropertyEquality::propertiesEqual(property.cssProperty(),
656 state.oldStyle, state.style)) { 655 state.oldStyle, state.style)) {
657 return; 656 return;
658 } 657 }
659 658
660 if (!to) 659 if (!to)
661 to = CSSAnimatableValueFactory::create(property.cssProperty(), state.style); 660 to = CSSAnimatableValueFactory::create(property, state.style);
662 RefPtr<AnimatableValue> from = 661 RefPtr<AnimatableValue> from =
663 CSSAnimatableValueFactory::create(property.cssProperty(), state.oldStyle); 662 CSSAnimatableValueFactory::create(property, state.oldStyle);
664 663
665 // TODO(alancutter): Support transitions on registered custom properties and 664 // TODO(alancutter): Support transitions on registered custom properties and
666 // give the map a PropertyRegistry. 665 // give the map a PropertyRegistry.
667 CSSInterpolationTypesMap map(nullptr); 666 CSSInterpolationTypesMap map(nullptr);
668 InterpolationEnvironment oldEnvironment(map, state.oldStyle); 667 InterpolationEnvironment oldEnvironment(map, state.oldStyle);
669 InterpolationEnvironment newEnvironment(map, state.style); 668 InterpolationEnvironment newEnvironment(map, state.style);
670 InterpolationValue start = nullptr; 669 InterpolationValue start = nullptr;
671 InterpolationValue end = nullptr; 670 InterpolationValue end = nullptr;
672 const InterpolationType* transitionType = nullptr; 671 const InterpolationType* transitionType = nullptr;
673 for (const auto& interpolationType : map.get(property)) { 672 for (const auto& interpolationType : map.get(property)) {
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1145 isCustomPropertyHandle); 1144 isCustomPropertyHandle);
1146 } 1145 }
1147 1146
1148 DEFINE_TRACE(CSSAnimations) { 1147 DEFINE_TRACE(CSSAnimations) {
1149 visitor->trace(m_transitions); 1148 visitor->trace(m_transitions);
1150 visitor->trace(m_pendingUpdate); 1149 visitor->trace(m_pendingUpdate);
1151 visitor->trace(m_runningAnimations); 1150 visitor->trace(m_runningAnimations);
1152 } 1151 }
1153 1152
1154 } // namespace blink 1153 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698