- From: <bugzilla@jessica.w3.org>
- Date: Mon, 31 Mar 2014 20:48:30 +0000
- To: public-html-media@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25218 Bug ID: 25218 Summary: Allow license management directly via MediaKeys Product: HTML WG Version: unspecified Hardware: PC OS: All Status: NEW Severity: normal Priority: P2 Component: Encrypted Media Extensions Assignee: adrianba@microsoft.com Reporter: steele@adobe.com QA Contact: public-html-bugzilla@w3.org CC: mike@w3.org, public-html-media@w3.org We have been having a lot of discussion about how key lifecycle should be managed. I will throw another proposal out there which can meet all the needs I have heard expressed so far. Here are the problems I see: 1) A session may contain more than just a single license. 2) A license may be shared between content streams (e.g. domain licenses) 3) A license may or may NOT be allowed to be persisted on the device 4) The application may want to manage licenses directly to the extent possible 5) The application may require a license release notification Items 1 & 2 mean that managing the session itself is not good enough. The application cannot know what is in the "session" without key system specific logic that we are trying to avoid. Item 3 means that we must throw an error when the CDM does not support the behavior - either because it is incapable or because policy does not allow it. Item 4 means we must have a way of identifying individual licenses in the session. Item 5 means we would like a way of identifying licenses as they are released. I propose we add a license specific set of methods to the MediaKeySession: void MediaKeySession::removeKey(DomString keyID); This would remove the key identified by the keyID if present and send any required key notifications. It would return an error if the key is not present. void MediaKeySession::loadKey(DomString keyID); This would remove the key identified by the keyID if present into the current MediaKeySession. It would return an error if the key is not present. void MediaKeySession::queryKey(DomString keyID); This would create an opaque blob containing the key identified by the keyID if present. The blob would be returned as a message or an error would be returned if the key was not present. This would remove the need for the MediaKeySession.release() method. It would not remove the need for the "persistent/ephemeral" license type flag to be passed to createSession() since that would provide a useful error message. I also think we should change Section 1.1.3. Key Session to reflect that license/key lifetime can now be managed directly. -- You are receiving this mail because: You are on the CC list for the bug.
Received on Monday, 31 March 2014 20:48:32 UTC