Bug 1298742 - Part 1: Factor out MarkCascadeUpdate(). r=hiro

We mark the cascade update many times, so it's better to factor it out.

MozReview-Commit-ID: HbE980gOJ9M

--HG--
extra : rebase_source : a76dfc489f378c5bd7e711f296d0599ecf2322c5
This commit is contained in:
Boris Chiou 2016-08-29 18:46:07 +08:00
Родитель ad60fcbdf9
Коммит 8bb94c4499
2 изменённых файлов: 23 добавлений и 22 удалений

Просмотреть файл

@ -104,13 +104,7 @@ KeyframeEffectReadOnly::NotifyAnimationTimingUpdated()
// animation cascade for this element whenever that changes.
bool inEffect = IsInEffect();
if (inEffect != mInEffectOnLastAnimationTimingUpdate) {
if (mTarget) {
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
mTarget->mPseudoType);
if (effectSet) {
effectSet->MarkCascadeNeedsUpdate();
}
}
MarkCascadeNeedsUpdate();
mInEffectOnLastAnimationTimingUpdate = inEffect;
}
@ -305,15 +299,9 @@ KeyframeEffectReadOnly::UpdateProperties(nsStyleContext* aStyleContext)
CalculateCumulativeChangeHint(aStyleContext);
if (mTarget) {
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
mTarget->mPseudoType);
if (effectSet) {
effectSet->MarkCascadeNeedsUpdate();
}
MarkCascadeNeedsUpdate();
RequestRestyle(EffectCompositor::RestyleType::Layer);
}
}
void
@ -1229,13 +1217,7 @@ KeyframeEffectReadOnly::SetAnimation(Animation* aAnimation)
// Restyle for the new animation.
RequestRestyle(EffectCompositor::RestyleType::Layer);
if (mTarget) {
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
mTarget->mPseudoType);
if (effectSet) {
effectSet->MarkCascadeNeedsUpdate();
}
}
MarkCascadeNeedsUpdate();
NotifyAnimationTimingUpdated();
}
@ -1275,6 +1257,21 @@ KeyframeEffectReadOnly::MaybeUpdateFrameForCompositor()
}
}
void
KeyframeEffectReadOnly::MarkCascadeNeedsUpdate()
{
if (!mTarget) {
return;
}
EffectSet* effectSet = EffectSet::GetEffectSet(mTarget->mElement,
mTarget->mPseudoType);
if (!effectSet) {
return;
}
effectSet->MarkCascadeNeedsUpdate();
}
//---------------------------------------------------------------------
//
// KeyframeEffect

Просмотреть файл

@ -349,6 +349,10 @@ protected:
already_AddRefed<nsStyleContext>
GetTargetStyleContext();
// A wrapper for marking cascade update according to the current
// target and its effectSet.
void MarkCascadeNeedsUpdate();
Maybe<OwningAnimationTarget> mTarget;
KeyframeEffectParams mEffectOptions;