| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 for (size_t j = 1; j < offsets.size(); ++j) { | 127 for (size_t j = 1; j < offsets.size(); ++j) { |
| 128 keyframes.push_back( | 128 keyframes.push_back( |
| 129 toStringKeyframe(keyframe->cloneWithOffset(offsets[j]).get())); | 129 toStringKeyframe(keyframe->cloneWithOffset(offsets[j]).get())); |
| 130 } | 130 } |
| 131 } | 131 } |
| 132 | 132 |
| 133 DEFINE_STATIC_LOCAL(SparseHistogram, propertyHistogram, | 133 DEFINE_STATIC_LOCAL(SparseHistogram, propertyHistogram, |
| 134 ("WebCore.Animation.CSSProperties")); | 134 ("WebCore.Animation.CSSProperties")); |
| 135 for (CSSPropertyID property : specifiedPropertiesForUseCounter) { | 135 for (CSSPropertyID property : specifiedPropertiesForUseCounter) { |
| 136 DCHECK(isValidCSSPropertyID(property)); | 136 DCHECK(isValidCSSPropertyID(property)); |
| 137 UseCounter::countAnimatedCSS(elementForScoping->document(), property); |
| 138 |
| 139 // TODO(crbug.com/458925): Remove legacy histogram and counts |
| 137 propertyHistogram.sample( | 140 propertyHistogram.sample( |
| 138 UseCounter::mapCSSPropertyIdToCSSSampleIdForHistogram(property)); | 141 UseCounter::mapCSSPropertyIdToCSSSampleIdForHistogram(property)); |
| 139 } | 142 } |
| 140 | 143 |
| 141 // Merge duplicate keyframes. | 144 // Merge duplicate keyframes. |
| 142 std::stable_sort(keyframes.begin(), keyframes.end(), | 145 std::stable_sort(keyframes.begin(), keyframes.end(), |
| 143 Keyframe::compareOffsets); | 146 Keyframe::compareOffsets); |
| 144 size_t targetIndex = 0; | 147 size_t targetIndex = 0; |
| 145 for (size_t i = 1; i < keyframes.size(); i++) { | 148 for (size_t i = 1; i < keyframes.size(); i++) { |
| 146 if (keyframes[i]->offset() == keyframes[targetIndex]->offset()) { | 149 if (keyframes[i]->offset() == keyframes[targetIndex]->offset()) { |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 595 } else { | 598 } else { |
| 596 animation->setId(getPropertyName(property.cssProperty())); | 599 animation->setId(getPropertyName(property.cssProperty())); |
| 597 } | 600 } |
| 598 // Set the current time as the start time for retargeted transitions | 601 // Set the current time as the start time for retargeted transitions |
| 599 if (retargetedCompositorTransitions.contains(property)) | 602 if (retargetedCompositorTransitions.contains(property)) |
| 600 animation->setStartTime(element->document().timeline().currentTime()); | 603 animation->setStartTime(element->document().timeline().currentTime()); |
| 601 animation->update(TimingUpdateOnDemand); | 604 animation->update(TimingUpdateOnDemand); |
| 602 runningTransition.animation = animation; | 605 runningTransition.animation = animation; |
| 603 m_transitions.set(property, runningTransition); | 606 m_transitions.set(property, runningTransition); |
| 604 DCHECK(isValidCSSPropertyID(property.cssProperty())); | 607 DCHECK(isValidCSSPropertyID(property.cssProperty())); |
| 608 UseCounter::countAnimatedCSS(element->document(), property.cssProperty()); |
| 605 | 609 |
| 610 // TODO(crbug.com/458925): Remove legacy histogram and counts |
| 606 DEFINE_STATIC_LOCAL(SparseHistogram, propertyHistogram, | 611 DEFINE_STATIC_LOCAL(SparseHistogram, propertyHistogram, |
| 607 ("WebCore.Animation.CSSProperties")); | 612 ("WebCore.Animation.CSSProperties")); |
| 608 propertyHistogram.sample( | 613 propertyHistogram.sample( |
| 609 UseCounter::mapCSSPropertyIdToCSSSampleIdForHistogram( | 614 UseCounter::mapCSSPropertyIdToCSSSampleIdForHistogram( |
| 610 property.cssProperty())); | 615 property.cssProperty())); |
| 611 } | 616 } |
| 612 clearPendingUpdate(); | 617 clearPendingUpdate(); |
| 613 } | 618 } |
| 614 | 619 |
| 615 void CSSAnimations::calculateTransitionUpdateForProperty( | 620 void CSSAnimations::calculateTransitionUpdateForProperty( |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1130 isCustomPropertyHandle); | 1135 isCustomPropertyHandle); |
| 1131 } | 1136 } |
| 1132 | 1137 |
| 1133 DEFINE_TRACE(CSSAnimations) { | 1138 DEFINE_TRACE(CSSAnimations) { |
| 1134 visitor->trace(m_transitions); | 1139 visitor->trace(m_transitions); |
| 1135 visitor->trace(m_pendingUpdate); | 1140 visitor->trace(m_pendingUpdate); |
| 1136 visitor->trace(m_runningAnimations); | 1141 visitor->trace(m_runningAnimations); |
| 1137 } | 1142 } |
| 1138 | 1143 |
| 1139 } // namespace blink | 1144 } // namespace blink |
| OLD | NEW |