Description
Step 7. of the select a presentation display algorithm tells the user agent to monitor the list of available presentation displays. This is meant to fill out the list of available presentation displays, which needs to be non empty for the display selection to do something.
The monitoring algorithm fills out that list based on the contents of the set of presentation availability objects. Problem is that set is only filled out by the getAvailability
algorithm.
In short, if an app calls start
without first calling getAvailability
, the monitoring algorithm will simply create an empty list of available presentation displays which would make start
end up with a NotFoundError
exception.
I guess the easiest way to fix that would be to have the selection algorithm set the presentation display availability right before current step 7, as done in getAvailability
. Something like:
- If the presentation display availability for presentationRequest is null, then:
- Set the presentation display availability for presentationRequest to a newly created PresentationAvailability object, and let A be that object.
- Set the value property of A as follows:
- false if the list of available presentation displays is empty.
- true if there is at least one available presentation display for some member of presentationUrls. That is, there is an entry (presentationUrl, display) in the list of available presentation displays for some presentationUrl in presentationUrls.
- false otherwise.
- Create a tuple (A, presentationUrls) and add it to the set of presentation availability objects.
- If the user agent is not monitoring the list of available presentation displays, run the steps to monitor the list of available presentation displays in parallel.
Now, in theory, there should be no reason to introduce PresentationAvailability
objects in start
. Oh well...