[timingobject] The query() method should enforce range restrictions on position

tidoust has just created a new issue for 
https://github.com/webtiming/timingobject:

== The query() method should enforce range restrictions on position ==
When a TimingObject specifies a range, the `query` method should 
enforce it and never return a position outside of that range, no 
matter whether the range is managed by the user agent or handled by 
some timing provider.

Even when the range is managed locally by the user agent, a call to 
`query` could occur right after the position crossed a range limit but
 still before the user agent had time to update the internal vector, 
so throwing an exception seems a wrong approach here.

Instead, the spec should rather mandate that the user agent return a 
vector whose position is at the range limit and whose velocity and 
acceleration are 0.

When the range is managed by the user agent, a `timeupdate` event will
 be fired shortly after. If the range is managed by a timing provider,
 it will depend on whether this timing provider does its job correctly
 or not. I don't think we should require the user agent to trigger the
 update and/or the `timeupdate` event on its own, since that would 
break the internal synchronization between the TimingObject and the 
TimingProvider object. If this creates weird situations in practice, 
we could perhaps say that the user agent may switch the TimingObject 
to an error state if the timing provider fails to enforce the range 
within a few seconds.

See https://github.com/webtiming/timingobject/issues/11

Received on Thursday, 23 July 2015 11:58:12 UTC