Bug 1765116. Don't ignore any potential invalidation rect from calling UpdateState in FrameAnimator::ResetAnimation. r=aosmond

I added this in bug 1676990, I'm not sure why I ignored the rect return value, probably should have either asserted it was empty if I thought that or dealt with the return value.

Depends on D143894

Differential Revision: https://phabricator.services.mozilla.com/D143895
This commit is contained in:
Timothy Nikkel 2022-04-22 09:00:42 +00:00
parent 6755393273
commit 5702c6bb2c

View file

@ -338,7 +338,17 @@ void FrameAnimator::ResetAnimation(AnimationState& aState) {
// Calling Reset on the surface of the animation can cause discarding surface
// providers to throw out all their frames so refresh our state.
aState.UpdateState(mImage, mSize);
OrientedIntRect rect =
OrientedIntRect::FromUnknownRect(aState.UpdateState(mImage, mSize));
if (!rect.IsEmpty()) {
nsCOMPtr<nsIEventTarget> eventTarget = do_GetMainThread();
RefPtr<RasterImage> image = mImage;
nsCOMPtr<nsIRunnable> ev = NS_NewRunnableFunction(
"FrameAnimator::ResetAnimation",
[=]() -> void { image->NotifyProgress(NoProgress, rect); });
eventTarget->Dispatch(ev.forget(), NS_DISPATCH_NORMAL);
}
}
RefreshResult FrameAnimator::RequestRefresh(AnimationState& aState,