Also, we have to make sure we resolve or reject the finished promise in
`SkipTransition()` because `mPhase` may not be Done in
`CallUpdateCallback()`.
Besides, we have to update tests to wait for the load event of the popup
window because the original document of this popup window may get replaced
by a new blank one. In order to make sure we start view transitions in the
correct document, we have to wait until the popup window is loaded.
If we don't wait the load event, it may cause timeout because we destroy
the original document (which runs view tranistions) after some animation
frames, and so we keep waiting the new animation frames or any promises
of the view transitions (but they are skipped because the original
doucment has been destroy).
Note that the `resizeTo()` API may not work on mobile, e.g. Android, so
we may get timeout when waiting for `resize` event. That's why we expect
TIMEOUT in window-resize-aborts-transition.html and expect FAIL in
window-resize-aborts-transition-before-ready.html for android.
Differential Revision: https://phabricator.services.mozilla.com/D237995