Set a proper schedule time for transitionrun.
See the testcase. If we replace a transition and flush it in the
meantime, after a timeout, we may fail to set a proper mPendingReadyTime
for the newly-created transition, because the refresh driver is not in
refresh when we call Animation::EnsurePaintIsScheduled()
in
Animation::PlayNoUpdate()
. So we don't have a pending ready time and
so we cannot trigger this transition at the current tick.
Therefore, this newly-created transition would be triggered at the next tick.
The means it doesn't have mStartTime
when we enqueued the transition event
i.e. transitionrun, at the current tick. zeroTimeStamp
would be null,
and we fail to sort the events.
In this patch, we just assign a proper schedule time for transitionrun
if zeroTimeStamp
is null.
Differential Revision: https://phabricator.services.mozilla.com/D226213
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1923208
gecko-commit: 73c19d1a0269856b4314cf39f4818cf8c46c8494
gecko-reviewers: layout-reviewers, emilio