1d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// found in the LICENSE file. 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "config.h" 609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)#include "core/animation/css/CSSAnimationData.h" 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 8d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "core/animation/Timing.h" 9d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)CSSAnimationData::CSSAnimationData() 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 14d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) m_nameList.append(initialName()); 15d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) m_iterationCountList.append(initialIterationCount()); 16d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) m_directionList.append(initialDirection()); 17d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) m_fillModeList.append(initialFillMode()); 18d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) m_playStateList.append(initialPlayState()); 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 21d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)CSSAnimationData::CSSAnimationData(const CSSAnimationData& other) 22d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) : CSSTimingData(other) 23d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , m_nameList(other.m_nameList) 24d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , m_iterationCountList(other.m_iterationCountList) 25d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , m_directionList(other.m_directionList) 26d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , m_fillModeList(other.m_fillModeList) 27d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) , m_playStateList(other.m_playStateList) 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 31d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)const AtomicString& CSSAnimationData::initialName() 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 33d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, name, ("none", AtomicString::ConstructFromLiteral)); 34d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return name; 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 37d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)bool CSSAnimationData::animationsMatchForStyleRecalc(const CSSAnimationData& other) const 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 39d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return m_nameList == other.m_nameList && m_playStateList == other.m_playStateList; 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 42d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)Timing CSSAnimationData::convertToTiming(size_t index) const 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 44d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) ASSERT(index < m_nameList.size()); 45d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) Timing timing = CSSTimingData::convertToTiming(index); 46d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 47d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) timing.iterationCount = getRepeated(m_iterationCountList, index); 48d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) timing.direction = getRepeated(m_directionList, index); 49d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) timing.fillMode = getRepeated(m_fillModeList, index); 50d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) timing.assertValid(); 51d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) return timing; 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 54c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 55