OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 cancelAnimationPolicyTimer(); | 64 cancelAnimationPolicyTimer(); |
65 ASSERT(!m_wakeupTimer.isActive()); | 65 ASSERT(!m_wakeupTimer.isActive()); |
66 #if ENABLE(ASSERT) | 66 #if ENABLE(ASSERT) |
67 ASSERT(!m_preventScheduledAnimationsChanges); | 67 ASSERT(!m_preventScheduledAnimationsChanges); |
68 #endif | 68 #endif |
69 } | 69 } |
70 | 70 |
71 void SMILTimeContainer::schedule(SVGSMILElement* animation, | 71 void SMILTimeContainer::schedule(SVGSMILElement* animation, |
72 SVGElement* target, | 72 SVGElement* target, |
73 const QualifiedName& attributeName) { | 73 const QualifiedName& attributeName) { |
74 ASSERT(animation->timeContainer() == this); | 74 DCHECK_EQ(animation->timeContainer(), this); |
75 ASSERT(target); | 75 DCHECK(target); |
76 ASSERT(animation->hasValidAttributeName()); | 76 DCHECK(animation->hasValidTarget()); |
77 ASSERT(animation->hasValidAttributeType()); | |
78 ASSERT(animation->inActiveDocument()); | |
79 | 77 |
80 #if ENABLE(ASSERT) | 78 #if ENABLE(ASSERT) |
81 ASSERT(!m_preventScheduledAnimationsChanges); | 79 ASSERT(!m_preventScheduledAnimationsChanges); |
82 #endif | 80 #endif |
83 | 81 |
84 ElementAttributePair key(target, attributeName); | 82 ElementAttributePair key(target, attributeName); |
85 Member<AnimationsLinkedHashSet>& scheduled = | 83 Member<AnimationsLinkedHashSet>& scheduled = |
86 m_scheduledAnimations.add(key, nullptr).storedValue->value; | 84 m_scheduledAnimations.add(key, nullptr).storedValue->value; |
87 if (!scheduled) | 85 if (!scheduled) |
88 scheduled = new AnimationsLinkedHashSet; | 86 scheduled = new AnimationsLinkedHashSet; |
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 // priority. In case of a tie, document order decides. | 449 // priority. In case of a tie, document order decides. |
452 // FIXME: This should also consider timing relationships between the | 450 // FIXME: This should also consider timing relationships between the |
453 // elements. Dependents have higher priority. | 451 // elements. Dependents have higher priority. |
454 copyToVector(*entry.value, scheduledAnimationsInSameGroup); | 452 copyToVector(*entry.value, scheduledAnimationsInSameGroup); |
455 std::sort(scheduledAnimationsInSameGroup.begin(), | 453 std::sort(scheduledAnimationsInSameGroup.begin(), |
456 scheduledAnimationsInSameGroup.end(), PriorityCompare(elapsed)); | 454 scheduledAnimationsInSameGroup.end(), PriorityCompare(elapsed)); |
457 | 455 |
458 AnimationsVector sandwich; | 456 AnimationsVector sandwich; |
459 for (const auto& itAnimation : scheduledAnimationsInSameGroup) { | 457 for (const auto& itAnimation : scheduledAnimationsInSameGroup) { |
460 SVGSMILElement* animation = itAnimation.get(); | 458 SVGSMILElement* animation = itAnimation.get(); |
461 ASSERT(animation->timeContainer() == this); | 459 DCHECK_EQ(animation->timeContainer(), this); |
462 ASSERT(animation->targetElement()); | 460 DCHECK(animation->hasValidTarget()); |
463 ASSERT(animation->hasValidAttributeName()); | |
464 ASSERT(animation->hasValidAttributeType()); | |
465 | 461 |
466 // This will calculate the contribution from the animation and update | 462 // This will calculate the contribution from the animation and update |
467 // timing. | 463 // timing. |
468 if (animation->progress(elapsed, seekToTime)) { | 464 if (animation->progress(elapsed, seekToTime)) { |
469 sandwich.append(animation); | 465 sandwich.append(animation); |
470 } else { | 466 } else { |
471 animation->clearAnimatedType(); | 467 animation->clearAnimatedType(); |
472 } | 468 } |
473 | 469 |
474 SMILTime nextFireTime = animation->nextProgressTime(); | 470 SMILTime nextFireTime = animation->nextProgressTime(); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 void SMILTimeContainer::advanceFrameForTesting() { | 531 void SMILTimeContainer::advanceFrameForTesting() { |
536 setElapsed(elapsed() + initialFrameDelay); | 532 setElapsed(elapsed() + initialFrameDelay); |
537 } | 533 } |
538 | 534 |
539 DEFINE_TRACE(SMILTimeContainer) { | 535 DEFINE_TRACE(SMILTimeContainer) { |
540 visitor->trace(m_scheduledAnimations); | 536 visitor->trace(m_scheduledAnimations); |
541 visitor->trace(m_ownerSVGElement); | 537 visitor->trace(m_ownerSVGElement); |
542 } | 538 } |
543 | 539 |
544 } // namespace blink | 540 } // namespace blink |
OLD | NEW |