Skip to content

Filling out the list of available presentation displays for start #387

Closed
@tidoust

Description

@tidoust

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:

  1. 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:
    1. false if the list of available presentation displays is empty.
    2. 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.
    3. false otherwise.
  • Create a tuple (A, presentationUrls) and add it to the set of presentation availability objects.
  1. 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...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions