| 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..84a6a3142659406e74136aee267a97720d99d29d 100644
|
| --- a/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
|
| +++ b/media/cdm/ppapi/external_clear_key/clear_key_cdm.cc
|
| @@ -14,7 +14,7 @@
|
| #include "base/debug/trace_event.h"
|
| #include "base/logging.h"
|
| #include "base/time/time.h"
|
| -#include "media/base/cdm_promise.h"
|
| +#include "media/base/cdm_callback_promise.h"
|
| #include "media/base/decoder_buffer.h"
|
| #include "media/base/decrypt_config.h"
|
| #include "media/cdm/json_web_key.h"
|
| @@ -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,7 +308,7 @@ 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(
|
| + scoped_ptr<media::SimpleCdmPromise> promise(new media::CdmCallbackPromise<>(
|
| base::Bind(&ClearKeyCdm::OnSessionUpdated,
|
| base::Unretained(this),
|
| promise_id,
|
| @@ -328,7 +330,7 @@ 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<>(
|
| base::Bind(
|
| &ClearKeyCdm::OnPromiseResolved, base::Unretained(this), promise_id),
|
| base::Bind(
|
| @@ -347,13 +349,13 @@ void ClearKeyCdm::RemoveSession(uint32 promise_id,
|
| if (is_persistent_session) {
|
| 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)));
|
| + scoped_ptr<media::SimpleCdmPromise> promise(new media::CdmCallbackPromise<>(
|
| + 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 +380,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,7 +664,7 @@ 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(
|
| + scoped_ptr<media::SimpleCdmPromise> promise(new media::CdmCallbackPromise<>(
|
| base::Bind(&ClearKeyCdm::OnSessionUpdated,
|
| base::Unretained(this),
|
| promise_id_for_emulated_loadsession_,
|
|
|