Re: [presentation-api] Specify behavior when multiple controlling pages are connected to the session

@avayvod Regarding the API proposal:

During the F2F we proposed the following API, in part to ensure that 
the common use case is simple, and to follow the example of 
ServiceWorker getRegistration/getRegistrations [1].  Something like 
the following:

```
interface NavigatorPresentation : EventTarget {
  // Returns the PresentationSession that was created when the 
presentation was started.
  Promise<PresentationSession> getSession();
  // Returns all PresentationSessions that have been connected to this
 presentation.
  Promise<PresentationSession[]> getSessions();
  // Fired when a new controller has connected to this presentation.
  EventHandler onsessionavailable;
}
```

In your example I had the following questions:

- What happens if the page calls `requestController` repeatedly?  It 
seems like when the Promises are all resolved then the client has to 
deduplicate the values.  The advantage of the proposal above is that 
each Promise should return the same value according to the current set
 of PresentationSessions.
- What is the initial state of the PresentationSession when a Promise 
returned by `requestController` resolves?  In the example it seems 
like the initial state value is not examined?
- What does it mean for "a page not ready to become a presentation 
yet"?  Does that mean it has not yet called `requestController`? 
- In your point #3, it sounds like the presentation can put itself 
into a mode where it rejects additional controllers, and this is 
controlled by the number of outstanding Promises for 
`requestController`.  Perhaps this could be an explicit boolean 
property like `acceptsSessions`?
 
[1] 
https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#navigator-service-worker-getRegistration


-- 
GitHub Notif of comment by mfoltzgoogle
See 
https://github.com/w3c/presentation-api/issues/19#issuecomment-109814045

Received on Sunday, 7 June 2015 23:35:13 UTC