- From: <bugzilla@jessica.w3.org>
- Date: Tue, 01 Apr 2014 13:45:26 +0000
- To: public-html-bugzilla@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=25200 Shinya Maruyama <Shinya.Maruyama@jp.sony.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |Shinya.Maruyama@jp.sony.com --- Comment #2 from Shinya Maruyama <Shinya.Maruyama@jp.sony.com> --- I think this proposal does not meet following two requirements: 1) license persisted in a CDM is shared among multiple applications 2) CDM returns license(s) associated with a MediaKeySession so that application can store it in application specific way; e.g. web storage, UltraViolet DMP etc As to #1, the following is envisioned use cases. - A store web app downloads a packaged web app with media files (e.g. UltraViolet DMP) - A store web app acquires license(s) using EME and store it in CDM; e.g. by using new store() method - A store web app stores the sessionId associated with the persisted license in localStorage - The packaged web app playbacks the media files in the package offline If we use existing loadSession, sessionId stored by 'store web app' needs to be accessible to 'packaged web app' but it's impossible because of cross-origin. As to #2, you just mention that update() method would be called when license in the app is used but no means of returning acquired license(s) from CDM is mentioned. Following is an just idea for the comprehensive set of methods to realize the use cases above(based on your proposal including Promise pattern). - createSession(type, initData, licenseType={'ephemeral'|'persisted'|'application'}) - 'ephemeral' acquires license(s) // force online - 'persisted' loads license(s) persisted in CDM // force offline - 'application' expects license is supplied by web application using load() method - store() - This can be used after license becomes available (IOW, after 'ready' event is received) to store license(s) in CDM - This is rejected if storing license is not permitted - Maybe better to have a standard way to notify application whether acquired license(s) is persistable. This way application can decide whether to call store() method for each. e.g. licenseType='persistable' is passed through Promise returned by update() method - Note that if CDM is obligated to persist acquired license(s) then it is persisted in update() instead of store() - get() - This can be used after license becomes available to get license(s) from CDM - license(s) are passed through Promise handler - load(optional licenses) - This can be used when licenseType is 'persisted' or 'application' in order to load license(s) in current session - In case of 'persisted', parameter 'licenses' must be omitted. The license(s) identified by initData is loaded. - In case of 'application', parameter 'licenses' must contain valid license(s). The supplied license(s) is loaded. Furthermore, I prefer to add acquire() method without adding licenseType into createSession. The acquire() is an explicit method to initiate license acquisition. As a result, createSession becomes a method just to create a MediaKeySession object. -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Tuesday, 1 April 2014 13:45:27 UTC