RE: Do we need loadSession?

It's not obvious how loadSession would help clean up when sessions are not closed properly.  Can anyone confirm this is an intended purpose and explain it further?

I believe loadSession was added as part of the persisted licensing model in EME.  To persist a license, apps call createSession as persistent, session data is then stored, and loadSession exists to re-use stored sessions, including keys.  Apps need to have a way to track when session data is stored, and must request it be re-used.  There is also a method to remove the stored session data.  This approach gives apps control over when data is persisted, the type of license desired, and when that license gets re-used.

This model doesn't align well with DRM systems that have the license server control whether the license is persistent or not.  I believe it is also common for these to re-use persisted licenses automatically.  This suggests we should consider changes that allow persisted licenses to be re-used on createSession, and perhaps also support the proposal you make to add an attribute to createSession to control whether this is done or not.

Jerry

From: Joe Steele [mailto:steele@adobe.com]
Sent: Thursday, July 24, 2014 10:25 AM
To: <public-html-media@w3.org>
Subject: Do we need loadSession?

Before the last telco, Mark Watson raised an issue with the Key Release use case described on our wiki (https://www.w3.org/wiki/HTML/Media_Task_Force/EME_Use_Cases#Limited_Concurrent_Streams_via_Key_Release). He called out the confusion between the idea of a session and the idea of persistent licenses. Per our discussion in the telco - I have since updated the wiki to reflect this.

The loadSession() method appears (based on comments from the editors) to have been added primarily to support the key release use case by allowing the CDM to "clean up" when a session was not closed properly. However I am concerned that as defined it is too general and impacts key usage as well.

Here are my questions:

Is there any use case in which applications would NOT want "cleanup" messages to be sent?
If this answer is NO (I believe it is), then I suggest we remove loadSession and simply require CDMs to send any outstanding "cleanup" messages for this application when the next createSession is called.

Is there any use case in which applications would NOT want cached licenses to be loaded?
If this answer is YES (I believe it is), then I suggest we allow that to be specified when createSession is called. This would be complementary to the current "persist" flag that indicates whether the application wants to allow license caching. This is something that others have expressed a need for as well (http://lists.w3.org/Archives/Public/public-html-media/2014Mar/0020.html).

These two changes would simplify application development by removing the need to track the sessionID (which should be a temporary value) and simplify CDM implementation by allowing them to manage cached licenses in the way most appropriate for their licensing models.

Joe Steele

Received on Thursday, 24 July 2014 17:48:46 UTC