- From: Oleg Beletski via GitHub <sysbot+gh@w3.org>
- Date: Mon, 27 Apr 2015 15:28:47 +0000
- To: public-secondscreen@w3.org
Hi All, First of all, I agree with Anssi, that availability monitoring could be improved and because of multiple reasons. One of the reasons is that current API design makes it very simple for web developers to start continuous monitoring and then to forget stopping it. Discovery is expensive process that could prevent device from entering power saving/efficient mode. I also agree that it is good to optimize the most common one "Find out whether there are available display(s), and if yes, show content on the display chosen by the user." I would like to make an addition to that description - "if external device is not found then stop monitoring and forget that we ever wanted to use the second screen". Then there is a less common case that we still need to support - "Find out whether there are available display(s), and if yes, show content on the display chosen by the user." + keep monitoring for new devices because there could be better presentation destination appearing in the future. We should keep discovery process running in that case. Additionally, we need to provide for developers an explicit mechanism for stopping discovery then. After listing those cases side by side I realized that I have already seen that approach implemented in Geolocation API [1]. There are three methods: to acquire position once, to start continuous watching and stopping the watch. We can follow the same pattern here: ``` partial interface NavigatorPresentation { Promise checkForAvailability(/*DOMString presentationUrl, params*/); Long watchForAvailability(/*DOMString presentationUrl, params*/); clearAvailabilityWatch( long watchId); } ``` Method checkForAvailability runs discovery one time and stops after that. Last two methods would provide exactly the same functionality that is available in current design with callback attribute onavailablechange and corresponding event. New approach makes developers aware that browser starts doing extra work when monitoring in active. All that clarity comes with the price of adding new methods to proposed API. The other thing is that proposal mixes promises and callbacks together. I am sure, there might be a better way to design it. [1] http://dev.w3.org/geo/api/spec-source.html#geolocation_interface -- GitHub Notif of comment by obeletski See https://github.com/w3c/presentation-api/issues/81#issuecomment-96709089
Received on Monday, 27 April 2015 15:28:48 UTC