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

Unified Diff: Source/core/css/resolver/StyleResolver.cpp

Issue 26382004: Web Animations CSS: Implement CSS Transitions backed on Web Animations model (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: update testexpectations and friends Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/css/resolver/StyleResolver.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/resolver/StyleResolver.cpp
diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp
index f5b0478969e6a3a17ff2d78e64120abb20b14ccc..6846fc04073b7bd03bfb68f90c0b1681a0203472 100644
--- a/Source/core/css/resolver/StyleResolver.cpp
+++ b/Source/core/css/resolver/StyleResolver.cpp
@@ -1246,7 +1246,7 @@ bool StyleResolver::applyAnimatedProperties(StyleResolverState& state, const Doc
const Vector<Animation*>& animations = animationStack->activeAnimations(element);
for (size_t i = 0; i < animations.size(); ++i) {
RefPtr<Animation> animation = animations.at(i);
- if (update && update->isCancelled(animation->player()))
+ if (update && update->isCancelledAnimation(animation->player()))
continue;
const AnimationEffect::CompositableValueMap* compositableValues = animation->compositableValues();
for (AnimationEffect::CompositableValueMap::const_iterator iter = compositableValues->begin(); iter != compositableValues->end(); ++iter) {
@@ -1452,23 +1452,6 @@ void StyleResolver::invalidateMatchedPropertiesCache()
m_matchedPropertiesCache.clear();
}
-void StyleResolver::calculateCSSAnimationUpdate(StyleResolverState& state)
-{
- if (!RuntimeEnabledFeatures::webAnimationsCSSEnabled())
- return;
-
- Element* element = state.element();
- ASSERT(element);
-
- if (!CSSAnimations::needsUpdate(element, state.style()))
- return;
-
- ActiveAnimations* activeAnimations = element->activeAnimations();
- const CSSAnimationDataList* animations = state.style()->animations();
- const CSSAnimations* cssAnimations = activeAnimations ? activeAnimations->cssAnimations() : 0;
- state.setAnimationUpdate(CSSAnimations::calculateUpdate(element, state.style(), cssAnimations, animations, this));
-}
-
void StyleResolver::applyMatchedProperties(StyleResolverState& state, const MatchResult& matchResult)
{
const Element* element = state.element();
@@ -1513,6 +1496,12 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
applyMatchedProperties<AnimationProperties>(state, matchResult, true, matchResult.ranges.firstUserRule, matchResult.ranges.lastUserRule, applyInheritedOnly);
applyMatchedProperties<AnimationProperties>(state, matchResult, true, matchResult.ranges.firstUARule, matchResult.ranges.lastUARule, applyInheritedOnly);
+ // Match transition-property / animation-name length by trimming and
+ // lengthening other transition / animation property lists
+ // FIXME: This is wrong because we shouldn't affect the computed values
+ state.style()->adjustAnimations();
+ state.style()->adjustTransitions();
+
// Now we have all of the matched rules in the appropriate order. Walk the rules and apply
// high-priority properties first, i.e., those properties that other properties depend on.
// The order is (1) high-priority not important, (2) high-priority important, (3) normal not important
@@ -1552,7 +1541,7 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
applyMatchedProperties<LowPriorityProperties>(state, matchResult, true, matchResult.ranges.firstUARule, matchResult.ranges.lastUARule, applyInheritedOnly);
if (RuntimeEnabledFeatures::webAnimationsEnabled() && !applyInheritedOnly) {
- calculateCSSAnimationUpdate(state);
+ state.setAnimationUpdate(CSSAnimations::calculateUpdate(state.element(), state.style(), this));
// Apply animated properties, then reapply any rules marked important.
if (applyAnimatedProperties<HighPriorityProperties>(state, element->document().timeline())) {
bool important = true;
« no previous file with comments | « Source/core/css/resolver/StyleResolver.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698