1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 #include "core/animation/css/CSSAnimationData.h"
8 #include "core/animation/Timing.h"
12 CSSAnimationData::CSSAnimationData()
14 m_nameList.append(initialName());
15 m_iterationCountList.append(initialIterationCount());
16 m_directionList.append(initialDirection());
17 m_fillModeList.append(initialFillMode());
18 m_playStateList.append(initialPlayState());
21 CSSAnimationData::CSSAnimationData(const CSSAnimationData& other)
22 : CSSTimingData(other)
23 , m_nameList(other.m_nameList)
24 , m_iterationCountList(other.m_iterationCountList)
25 , m_directionList(other.m_directionList)
26 , m_fillModeList(other.m_fillModeList)
27 , m_playStateList(other.m_playStateList)
31 const AtomicString& CSSAnimationData::initialName()
33 DEFINE_STATIC_LOCAL(const AtomicString, name, ("none", AtomicString::ConstructFromLiteral));
37 bool CSSAnimationData::animationsMatchForStyleRecalc(const CSSAnimationData& other) const
39 return m_nameList == other.m_nameList && m_playStateList == other.m_playStateList;
42 Timing CSSAnimationData::convertToTiming(size_t index) const
44 ASSERT(index < m_nameList.size());
45 Timing timing = CSSTimingData::convertToTiming(index);
47 timing.iterationCount = getRepeated(m_iterationCountList, index);
48 timing.direction = getRepeated(m_directionList, index);
49 timing.fillMode = getRepeated(m_fillModeList, index);