Re: Provide capability in user timing API to mark for user agent events

On 3/12/15 2:29 AM, Philippe Le Hegaret wrote:
> On 03/11/2015 06:04 AM, Chih-Kai (Patrick) Wang wrote:
>> Hi all,
>>
>> I am thinking of adding an API in navigator.performance to "ask
>> browser to mark when something happens". Currently, user timing API
>> provides us with methods to mark in web apps. However, to get more
>> accurate mark of specific event, we may need supports from user agent.
>> For example, we might care about when is the DOM modification we made in
>> Javascript drawn onto screen. Calling to performance.mark() in the
>> script is not able to mark when the composition happens. Another way is
>> to listen to specific event of the operation, but the event itself takes
>> time to propagate to content. For instance, under current multi-process
>> architecture Firefox OS, the MozAfterPaint event in content process can
>> be fired in up to 80ms after the corresponding composition done in
>> parent process.
>>
>> The API I'd like to expose might look like:
>>
>>    performance.delayedMark('composite', 'done-visually-update');
>>
>> which means "set a 'done-visually-update' mark when next composition
>> happens".
>>
>> Do you have any thought or comment?
>>
> My understanding is that the ability to figure out a DOM modification is
> actually being displayed on the screen is tricky and varies greatly
> between the browser engines. Did you look into Frame Timing?
>  http://w3c.github.io/frame-timing/

Frame timing API enables us to log the compositions, but my
understanding to frame timing API is that it provides a series of marks
for each composition, so we can't get the timing data of when a specific
event happens. Like we might be interested in when is something be drawn
onto the screen, instead of an average of fps in a specific period.

Patrick

Received on Thursday, 12 March 2015 03:03:13 UTC