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. 4 5#include "config.h" 6#include "core/animation/css/CSSAnimationData.h" 7 8#include "core/animation/Timing.h" 9 10namespace blink { 11 12CSSAnimationData::CSSAnimationData() 13{ 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()); 19} 20 21CSSAnimationData::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) 28{ 29} 30 31const AtomicString& CSSAnimationData::initialName() 32{ 33 DEFINE_STATIC_LOCAL(const AtomicString, name, ("none", AtomicString::ConstructFromLiteral)); 34 return name; 35} 36 37bool CSSAnimationData::animationsMatchForStyleRecalc(const CSSAnimationData& other) const 38{ 39 return m_nameList == other.m_nameList && m_playStateList == other.m_playStateList; 40} 41 42Timing CSSAnimationData::convertToTiming(size_t index) const 43{ 44 ASSERT(index < m_nameList.size()); 45 Timing timing = CSSTimingData::convertToTiming(index); 46 47 timing.iterationCount = getRepeated(m_iterationCountList, index); 48 timing.direction = getRepeated(m_directionList, index); 49 timing.fillMode = getRepeated(m_fillModeList, index); 50 timing.assertValid(); 51 return timing; 52} 53 54} // namespace blink 55