Index: content/renderer/media/crypto/ppapi_decryptor.h |
diff --git a/content/renderer/media/crypto/ppapi_decryptor.h b/content/renderer/media/crypto/ppapi_decryptor.h |
index 430c3613dea7aeb7ce10b0ca236e83b98ca85d35..f8e2666dc2a6f731cb77be974e7a74fce88a440a 100644 |
--- a/content/renderer/media/crypto/ppapi_decryptor.h |
+++ b/content/renderer/media/crypto/ppapi_decryptor.h |
@@ -14,6 +14,7 @@ |
#include "content/renderer/media/crypto/pepper_cdm_wrapper.h" |
#include "media/base/decryptor.h" |
#include "media/base/media_keys.h" |
+#include "media/base/media_keys_session_promise.h" |
#include "media/base/video_decoder_config.h" |
class GURL; |
@@ -35,7 +36,6 @@ class PpapiDecryptor : public media::MediaKeys, public media::Decryptor { |
const std::string& key_system, |
const GURL& security_origin, |
const CreatePepperCdmCB& create_pepper_cdm_cb, |
- const media::SessionCreatedCB& session_created_cb, |
const media::SessionMessageCB& session_message_cb, |
const media::SessionReadyCB& session_ready_cb, |
const media::SessionClosedCB& session_closed_cb, |
@@ -44,16 +44,23 @@ class PpapiDecryptor : public media::MediaKeys, public media::Decryptor { |
virtual ~PpapiDecryptor(); |
// media::MediaKeys implementation. |
- virtual bool CreateSession(uint32 session_id, |
- const std::string& content_type, |
- const uint8* init_data, |
- int init_data_length) OVERRIDE; |
- virtual void LoadSession(uint32 session_id, |
- const std::string& web_session_id) OVERRIDE; |
- virtual void UpdateSession(uint32 session_id, |
- const uint8* response, |
- int response_length) OVERRIDE; |
- virtual void ReleaseSession(uint32 session_id) OVERRIDE; |
+ virtual void CreateSession( |
+ const std::string& init_data_type, |
+ const uint8* init_data, |
+ int init_data_length, |
+ SessionType session_type, |
+ scoped_ptr<media::MediaKeysSessionPromise> promise) OVERRIDE; |
+ virtual void LoadSession( |
+ const std::string& web_session_id, |
+ scoped_ptr<media::MediaKeysSessionPromise> promise) OVERRIDE; |
+ virtual void UpdateSession( |
+ const std::string& web_session_id, |
+ const uint8* response, |
+ int response_length, |
+ scoped_ptr<media::MediaKeysSessionPromise> promise) OVERRIDE; |
+ virtual void ReleaseSession( |
+ const std::string& web_session_id, |
+ scoped_ptr<media::MediaKeysSessionPromise> promise) OVERRIDE; |
virtual Decryptor* GetDecryptor() OVERRIDE; |
// media::Decryptor implementation. |
@@ -79,26 +86,26 @@ class PpapiDecryptor : public media::MediaKeys, public media::Decryptor { |
private: |
PpapiDecryptor(const std::string& key_system, |
scoped_ptr<PepperCdmWrapper> pepper_cdm_wrapper, |
- const media::SessionCreatedCB& session_created_cb, |
const media::SessionMessageCB& session_message_cb, |
const media::SessionReadyCB& session_ready_cb, |
const media::SessionClosedCB& session_closed_cb, |
const media::SessionErrorCB& session_error_cb); |
- void ReportFailureToCallPlugin(uint32 session_id); |
- |
void OnDecoderInitialized(StreamType stream_type, bool success); |
// Callbacks for |plugin_cdm_delegate_| to fire session events. |
- void OnSessionCreated(uint32 session_id, const std::string& web_session_id); |
- void OnSessionMessage(uint32 session_id, |
+ void OnSessionMessage(const std::string& web_session_id, |
const std::vector<uint8>& message, |
const std::string& destination_url); |
- void OnSessionReady(uint32 session_id); |
- void OnSessionClosed(uint32 session_id); |
- void OnSessionError(uint32 session_id, |
- media::MediaKeys::KeyError error_code, |
- uint32 system_code); |
+ void OnSessionReady(const std::string& web_session_id); |
+ void OnSessionClosed(const std::string& web_session_id); |
+ void OnSessionError(const std::string& web_session_id, |
+ const std::string& error_name, |
+ uint32 system_code, |
+ const std::string& error_description); |
+ |
+ // On a successful Update() or SessionReady event, trigger playback to resume. |
+ void ResumePlayback(); |
// Callback to notify that a fatal error happened in |plugin_cdm_delegate_|. |
// The error is terminal and |plugin_cdm_delegate_| should not be used after |
@@ -112,7 +119,6 @@ class PpapiDecryptor : public media::MediaKeys, public media::Decryptor { |
scoped_ptr<PepperCdmWrapper> pepper_cdm_wrapper_; |
// Callbacks for firing session events. |
- media::SessionCreatedCB session_created_cb_; |
media::SessionMessageCB session_message_cb_; |
media::SessionReadyCB session_ready_cb_; |
media::SessionClosedCB session_closed_cb_; |