static PassRefPtr<TypeBuilder::Animation::KeyframesRule> buildObjectForAnimationKeyframes(const KeyframeEffect* effect) { if (!effect || !effect->model() || !effect->model()->isKeyframeEffectModel()) return nullptr; const KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect->model()); Vector<RefPtr<Keyframe>> normalizedKeyframes = KeyframeEffectModelBase::normalizedKeyframesForInspector(model->getFrames()); RefPtr<TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle> > keyframes = TypeBuilder::Array<TypeBuilder::Animation::KeyframeStyle>::create(); for (const auto& keyframe : normalizedKeyframes) { // Ignore CSS Transitions if (!keyframe.get()->isStringKeyframe()) continue; const StringKeyframe* stringKeyframe = toStringKeyframe(keyframe.get()); keyframes->addItem(buildObjectForStringKeyframe(stringKeyframe)); } RefPtr<TypeBuilder::Animation::KeyframesRule> keyframesObject = TypeBuilder::Animation::KeyframesRule::create() .setKeyframes(keyframes); return keyframesObject.release(); }
static std::unique_ptr<protocol::Animation::KeyframesRule> buildObjectForAnimationKeyframes(const KeyframeEffect* effect) { if (!effect || !effect->model() || !effect->model()->isKeyframeEffectModel()) return nullptr; const KeyframeEffectModelBase* model = toKeyframeEffectModelBase(effect->model()); Vector<RefPtr<Keyframe>> normalizedKeyframes = KeyframeEffectModelBase::normalizedKeyframesForInspector( model->getFrames()); std::unique_ptr<protocol::Array<protocol::Animation::KeyframeStyle>> keyframes = protocol::Array<protocol::Animation::KeyframeStyle>::create(); for (const auto& keyframe : normalizedKeyframes) { // Ignore CSS Transitions if (!keyframe.get()->isStringKeyframe()) continue; const StringKeyframe* stringKeyframe = toStringKeyframe(keyframe.get()); keyframes->addItem(buildObjectForStringKeyframe(stringKeyframe)); } return protocol::Animation::KeyframesRule::create() .setKeyframes(std::move(keyframes)) .build(); }