- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Wed, 09 May 2012 13:40:15 -0400
- To: Nat Duca <nduca@chromium.org>
- CC: public-web-perf@w3.org
On 5/9/12 1:22 PM, Nat Duca wrote: > In a future rev of rAF, if we ever need to provide *both* begin and > present time, as CVDisplayLink I'm not familiar with CVDisplayLink. What do "begin" and "present" time actually mean in that context? > As a matter of education, what do other browsers provide for "time"? > Safari gives present time > All other webkit ports give begin time > What about FF/IE/Opera? What Firefox does right this second (and it's not quite correct and will change if/when we switch the argument to the rAF callback to using the monotonic clock) is the following, in order: 1) An internal "time to do a frame" notification fires for a tab. 2) The value that would be returned by JS Date.now() is recorded. 3) The value of the monotonic clock is recorded. And then in some order (spanning across documents in the tab), declarative animations are resampled based on the value recorded in step 3 and rAF callbacks are called with the value recorded in step 2. Moving to the monotonic clock for rAF would allow us to get rid of step 2 and just use the difference between navigation start and the monotonic clock value used to resample declarative animations as the argument to rAF callbacks. Note that we have considered trying to adjust the time recorded from the monotonic clock by some sort of "fudge factor" to make it better match when the result will be painted to the screen. We haven't done it so far because of the complexity involved in trying to guess how long updating declarative animations + calling rAF callbacks + whatever latency is in the painting pipeline will take... -Boris
Received on Wednesday, 9 May 2012 17:40:53 UTC