I encounter a strange behaviour with a css transition for which transitionend is not received by a callback inside javascript.
Version : content_shell stable_1.0.36.0.1985.25 + specific ozone layer for our SetTopBox platform.
I could not reproduce it on chrome same stable version on linux
It was reproduced on chromium lkgr branch from May 24th, but not on a older version from January 8th (revision r243541)
The issue appears with a script called FPSMeter.js.
This script launches webkitRequestAnimationframe to count the frames. At the same time, a transparent 1 pixel css transition moves horizontally on the screen. On webkitRequestAnimationFrame callback, the pixel position is registered. On each end of the css transition (transitionend received), the FPS average is calculated, and the duplicates removed (duplicate = same position of the pixel ).
On some of the tests inside the suite, sometimes (more frequently on lkgr), transitionend event is not received.
Some more details :
- the pixel is first at position <left 0,bottom 0>, then moved to <left 0,bottom bodywidth >, On “transitionend” received, it is moved back <left 0,bottom 0>, then to <left 0,bottom bodywidth > on next transitionend etc…
- the first transition is done , we can see the pixel on to <left 0,bottom bodywidth >, but the first transitionend is not received.
- Before beginning the transition, the script waits for the readyState of the document to be “complete”.
- The window.onloaded callback is called before we launch the transition
Are there any known issues on css transition that could explain such behavior?
Would the fact that we are using ozone introduce a discrepancy in the behavior?
How can I tackle the issue and try to fix it?
Thanks for your help,
Regards,
Lidwine