[encrypted-media] MediaKeySystemConfiguration.sessionTypes should be sequence<DOMString> for forwards compatibility.

ddorwin has just created a new issue for 
https://github.com/w3c/encrypted-media:

== MediaKeySystemConfiguration.sessionTypes should be 
sequence<DOMString> for forwards compatibility. ==
`MediaKeySystemConfiguration.sessionTypes` is currently of type 
`sequence<MediaKeySessionType>`. Because JS dictionaries don't 
actually have a specific Web IDL type, the dictionary member types are
 not checked until passed to a Web IDL object that expects a specific 
type. Thus, enum values in the `sessionTypes` sequence will not be 
checked until `requestMediaKeySystemAccess()` is called.

`requestMediaKeySystemAccess()` takes a sequence of 
`MediaKeySystemConfiguration` values and **only one must be 
supported** for success. However, an unsupported value in the 
`sessionTypes` member of _any_ configuration would cause an exception,
 preventing a supported configuration in the sequence from succeeding.
 Thus, an application would not be able to use a new 
`MediaKeySessionType` value with the expectation that older 
implementations would ignore the configuration and try subsequent 
configurations.

To allow values to be added to `MediaKeySessionType` in the future, we
 should change the `sessionTypes` member to be of type 
`sequence<DOMString>`. This will allow the implementations to reject 
individual configurations with unrecognized session types.

**Example**

The first line does not throw, so the application cannot detect 
whether the enum is supported:
>`configurations[0].sessionTypes = [ "temporary", "future-type" ];`
>`configurations[1].sessionTypes = [ "temporary" ];`

This line will result in a type error rather than processing the 
configurations and ignoring the first one.
>`navigator.requestMediaKeySystemAccess("org.w3.clearkey", 
configurations).`

See https://github.com/w3c/encrypted-media/issues/47

Received on Friday, 10 April 2015 22:44:25 UTC