[encrypted-media] Define status of keyIds in specified in initData passed to generateRequest()

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

== Define status of keyIds in specified in initData passed to 
generateRequest() ==
We should define what MediaKeyStatus we assign to keyIds which are 
specified in initData for the period from which they are known to the 
CDM until they become usable.

For example, say I go:

    navigator.requestMediaKeySystemAccess('org.w3.clearkey', 
[{initDataTypes: ['keyids']}]).then(
      (access) => access.createMediaKeys()
      ).then(
        (mediaKeys) => {
          var session = mediaKeys.createSession("temporary");
          var te = new TextEncoder();
          var initData = 
te.encode('{"kids":["LwVHf8JLtPrv2GUXFW2v_A"]}');
          return session.generateRequest('keyids', initData);
        }
      ));

What is the MediaKeyStatus of key specified in the "keyids" initData 
at the time when the generateRequest() promise has been resolved, but 
before the license has been passed to the CDM?

I propose:
* that we should assign MediaKeyStatus "status-pending" to keyIds 
specified in the initData passed to generateRequest().
* that we should run the "Update Key Statuses" algorithm at the end of
 generateRequest(). Note that this may cause "keystatuseschange" to 
fire.

For a text change, I propose we inject similar text to what's in the 
load() and update() algorithms into generateRequest() that is. I 
propose we insert after step 9 substep 10 in the generateRequest() 
definition:

>If the loaded session contains information about any keys (there are 
known keys), run the Update Key Statuses algorithm on the session, 
providing each key's key ID along with the appropriate MediaKeyStatus.

>Should additional processing be necessary to determine with certainty
 the status of a key, for example the key's ID was specified in the 
initData and a license must first be acquired for it to be usable, use
 "status-pending".






Please view or discuss this issue at 
https://github.com/w3c/encrypted-media/issues/130 using your GitHub 
account

Received on Friday, 27 November 2015 00:21:22 UTC