Chromium Code Reviews| Index: media/cdm/default_cdm_factory.cc |
| diff --git a/media/cdm/default_cdm_factory.cc b/media/cdm/default_cdm_factory.cc |
| index a87760c1284ee777045d08c1ae053bf713948935..71c9836afed0a1a7a9171f5389a95b59451dff29 100644 |
| --- a/media/cdm/default_cdm_factory.cc |
| +++ b/media/cdm/default_cdm_factory.cc |
| @@ -4,6 +4,10 @@ |
| #include "media/cdm/default_cdm_factory.h" |
| +#include "base/bind.h" |
| +#include "base/bind_helpers.h" |
| +#include "base/location.h" |
| +#include "base/message_loop/message_loop_proxy.h" |
| #include "media/base/key_systems.h" |
| #include "media/cdm/aes_decryptor.h" |
| #include "url/gurl.h" |
| @@ -16,7 +20,7 @@ DefaultCdmFactory::DefaultCdmFactory() { |
| DefaultCdmFactory::~DefaultCdmFactory() { |
| } |
| -scoped_ptr<MediaKeys> DefaultCdmFactory::Create( |
| +void DefaultCdmFactory::Create( |
| const std::string& key_system, |
| bool allow_distinctive_identifier, |
| bool allow_persistent_state, |
| @@ -25,17 +29,15 @@ scoped_ptr<MediaKeys> DefaultCdmFactory::Create( |
| const SessionClosedCB& session_closed_cb, |
| const LegacySessionErrorCB& legacy_session_error_cb, |
| const SessionKeysChangeCB& session_keys_change_cb, |
| - const SessionExpirationUpdateCB& session_expiration_update_cb) { |
| - if (!security_origin.is_valid()) |
| - return nullptr; |
| - |
| - if (CanUseAesDecryptor(key_system)) { |
| - return make_scoped_ptr(new AesDecryptor(security_origin, session_message_cb, |
| - session_closed_cb, |
| - session_keys_change_cb)); |
| + const SessionExpirationUpdateCB& session_expiration_update_cb, |
| + const CdmCreatedCB& cdm_created_cb) { |
| + scoped_ptr<MediaKeys> cdm; |
| + if (security_origin.is_valid() && CanUseAesDecryptor(key_system)) { |
| + cdm.reset(new AesDecryptor(security_origin, session_message_cb, |
| + session_closed_cb, session_keys_change_cb)); |
| } |
| - |
| - return nullptr; |
| + base::MessageLoopProxy::current()->PostTask( |
| + FROM_HERE, base::Bind(cdm_created_cb, base::Passed(&cdm))); |
|
ddorwin
2015/04/10 00:59:43
ditto on |cdm|.
Also, perhaps fail at line 36 (an
xhwang
2015/04/10 17:41:17
Done.
|
| } |
| } // namespace media |