Index: media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
diff --git a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
index a49b6c24595348f9c6a5f3771baa472cf3d7b440..0a12debb1e0f2bb4738d809b18da2f814ef47c8a 100644 |
--- a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
+++ b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc |
@@ -248,12 +248,13 @@ void ClearKeyCdm::CreateSession(uint32 promise_id, |
DVLOG(1) << __FUNCTION__; |
scoped_ptr<media::NewSessionCdmPromise> promise( |
- new media::NewSessionCdmPromise(base::Bind(&ClearKeyCdm::OnSessionCreated, |
- base::Unretained(this), |
- promise_id), |
- base::Bind(&ClearKeyCdm::OnPromiseFailed, |
- base::Unretained(this), |
- promise_id))); |
+ new media::CdmCallbackPromise<std::string>( |
+ base::Bind(&ClearKeyCdm::OnSessionCreated, |
+ base::Unretained(this), |
+ promise_id), |
+ base::Bind(&ClearKeyCdm::OnPromiseFailed, |
+ base::Unretained(this), |
+ promise_id))); |
decryptor_.CreateSession(std::string(init_data_type, init_data_type_size), |
init_data, |
init_data_size, |
@@ -285,12 +286,13 @@ void ClearKeyCdm::LoadSession(uint32 promise_id, |
} |
scoped_ptr<media::NewSessionCdmPromise> promise( |
- new media::NewSessionCdmPromise(base::Bind(&ClearKeyCdm::OnSessionLoaded, |
- base::Unretained(this), |
- promise_id), |
- base::Bind(&ClearKeyCdm::OnPromiseFailed, |
- base::Unretained(this), |
- promise_id))); |
+ new media::CdmCallbackPromise<std::string>( |
+ base::Bind(&ClearKeyCdm::OnSessionLoaded, |
+ base::Unretained(this), |
+ promise_id), |
+ base::Bind(&ClearKeyCdm::OnPromiseFailed, |
+ base::Unretained(this), |
+ promise_id))); |
decryptor_.CreateSession(std::string(kLoadableSessionContentType), |
NULL, |
0, |
@@ -306,13 +308,15 @@ void ClearKeyCdm::UpdateSession(uint32 promise_id, |
DVLOG(1) << __FUNCTION__; |
std::string web_session_str(web_session_id, web_session_id_length); |
- scoped_ptr<media::SimpleCdmPromise> promise(new media::SimpleCdmPromise( |
- base::Bind(&ClearKeyCdm::OnSessionUpdated, |
- base::Unretained(this), |
- promise_id, |
- web_session_str), |
- base::Bind( |
- &ClearKeyCdm::OnPromiseFailed, base::Unretained(this), promise_id))); |
+ scoped_ptr<media::SimpleCdmPromise> promise( |
+ new media::CdmCallbackPromise<void>( |
+ base::Bind(&ClearKeyCdm::OnSessionUpdated, |
+ base::Unretained(this), |
+ promise_id, |
+ web_session_str), |
+ base::Bind(&ClearKeyCdm::OnPromiseFailed, |
+ base::Unretained(this), |
+ promise_id))); |
decryptor_.UpdateSession( |
web_session_str, response, response_size, promise.Pass()); |
@@ -328,7 +332,8 @@ void ClearKeyCdm::CloseSession(uint32 promise_id, |
DVLOG(1) << __FUNCTION__; |
std::string web_session_str(web_session_id, web_session_id_length); |
- scoped_ptr<media::SimpleCdmPromise> promise(new media::SimpleCdmPromise( |
+ scoped_ptr<media::SimpleCdmPromise> |
+ promise(new media::CdmCallbackPromise<void>( |
base::Bind( |
&ClearKeyCdm::OnPromiseResolved, base::Unretained(this), promise_id), |
base::Bind( |
@@ -348,12 +353,13 @@ void ClearKeyCdm::RemoveSession(uint32 promise_id, |
std::string web_session_str(web_session_id, web_session_id_length); |
scoped_ptr<media::SimpleCdmPromise> promise( |
- new media::SimpleCdmPromise(base::Bind(&ClearKeyCdm::OnPromiseResolved, |
- base::Unretained(this), |
- promise_id), |
- base::Bind(&ClearKeyCdm::OnPromiseFailed, |
- base::Unretained(this), |
- promise_id))); |
+ new media::CdmCallbackPromise<void>( |
+ base::Bind(&ClearKeyCdm::OnPromiseResolved, |
+ base::Unretained(this), |
+ promise_id), |
+ base::Bind(&ClearKeyCdm::OnPromiseFailed, |
+ base::Unretained(this), |
+ promise_id))); |
decryptor_.RemoveSession(web_session_str, promise.Pass()); |
} else { |
// TODO(jrummell): This should be a DCHECK once blink does the proper |
@@ -378,12 +384,14 @@ void ClearKeyCdm::GetUsableKeyIds(uint32_t promise_id, |
const char* web_session_id, |
uint32_t web_session_id_length) { |
std::string web_session_str(web_session_id, web_session_id_length); |
- scoped_ptr<media::KeyIdsPromise> promise(new media::KeyIdsPromise( |
- base::Bind(&ClearKeyCdm::OnUsableKeyIdsObtained, |
- base::Unretained(this), |
- promise_id), |
- base::Bind( |
- &ClearKeyCdm::OnPromiseFailed, base::Unretained(this), promise_id))); |
+ scoped_ptr<media::KeyIdsPromise> promise( |
+ new media::CdmCallbackPromise<KeyIdsVector>( |
+ base::Bind(&ClearKeyCdm::OnUsableKeyIdsObtained, |
+ base::Unretained(this), |
+ promise_id), |
+ base::Bind(&ClearKeyCdm::OnPromiseFailed, |
+ base::Unretained(this), |
+ promise_id))); |
decryptor_.GetUsableKeyIds(web_session_str, promise.Pass()); |
} |
@@ -660,14 +668,15 @@ void ClearKeyCdm::LoadLoadableSession() { |
sizeof(kLoadableSessionKeyId) - 1); |
// TODO(xhwang): This triggers OnSessionUpdated(). For prefixed EME support, |
// this is okay. Check WD EME support. |
- scoped_ptr<media::SimpleCdmPromise> promise(new media::SimpleCdmPromise( |
- base::Bind(&ClearKeyCdm::OnSessionUpdated, |
- base::Unretained(this), |
- promise_id_for_emulated_loadsession_, |
- session_id_for_emulated_loadsession_), |
- base::Bind(&ClearKeyCdm::OnPromiseFailed, |
- base::Unretained(this), |
- promise_id_for_emulated_loadsession_))); |
+ scoped_ptr<media::SimpleCdmPromise> promise( |
+ new media::CdmCallbackPromise<void>( |
+ base::Bind(&ClearKeyCdm::OnSessionUpdated, |
+ base::Unretained(this), |
+ promise_id_for_emulated_loadsession_, |
+ session_id_for_emulated_loadsession_), |
+ base::Bind(&ClearKeyCdm::OnPromiseFailed, |
+ base::Unretained(this), |
+ promise_id_for_emulated_loadsession_))); |
decryptor_.UpdateSession(session_id_for_emulated_loadsession_, |
reinterpret_cast<const uint8*>(jwk_set.data()), |
jwk_set.size(), |