On Thu, 14 Aug 2014, at 11:00, Jonas Sicking wrote: > I am however more worried about that only having a request() and a > release() function means that pages that contain multiple independent > subsystems will have to make sure that they don't stomp on each > other's locks. Simply counting request() calls vs. release() calls > helps, but doesn't fully solve the problem. It's very easy to > accidentally call release too many times, in response to some UI > action for example. > > An alternative design would be something like > > x = new WakeLock("display"); > x.request(); > x.release(); > > Extra calls of either request() or release() are ignored, but pages > can create any number of WakeLocks of the same type.
It seems that we already discussed using an object and this solution was dismissed because of this model being error-prone. It's also not clear how this solution is superior than the current solution [1] with regards to multiple releases or requests. In [1], if you call .request() or .release() multiple time, the promise reacts appropriately. Typically, if you try to release() an un-hold lock, it will reject the promise. Is that something you are not satisfied with? [1] http://w3c.github.io/wake-lock/ ? -- Mounir