| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/media/crypto/ppapi_decryptor.h" | 5 #include "content/renderer/media/crypto/ppapi_decryptor.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 | 48 |
| 49 if (!pepper_cdm_wrapper) { | 49 if (!pepper_cdm_wrapper) { |
| 50 std::string message = | 50 std::string message = |
| 51 "Unable to create the CDM for the key system " + key_system + "."; | 51 "Unable to create the CDM for the key system " + key_system + "."; |
| 52 DLOG(ERROR) << message; | 52 DLOG(ERROR) << message; |
| 53 base::ThreadTaskRunnerHandle::Get()->PostTask( | 53 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 54 FROM_HERE, base::Bind(cdm_created_cb, nullptr, message)); | 54 FROM_HERE, base::Bind(cdm_created_cb, nullptr, message)); |
| 55 return; | 55 return; |
| 56 } | 56 } |
| 57 | 57 |
| 58 scoped_ptr<PpapiDecryptor> ppapi_decryptor( | 58 scoped_refptr<PpapiDecryptor> ppapi_decryptor( |
| 59 new PpapiDecryptor(pepper_cdm_wrapper.Pass(), session_message_cb, | 59 new PpapiDecryptor(pepper_cdm_wrapper.Pass(), session_message_cb, |
| 60 session_closed_cb, legacy_session_error_cb, | 60 session_closed_cb, legacy_session_error_cb, |
| 61 session_keys_change_cb, session_expiration_update_cb)); | 61 session_keys_change_cb, session_expiration_update_cb)); |
| 62 | 62 |
| 63 // PpapiDecryptor ownership passed to the promise, but keep a copy in order | 63 // |ppapi_decryptor| ownership is passed to the promise. |
| 64 // to call InitializeCdm(). | |
| 65 PpapiDecryptor* ppapi_decryptor_copy = ppapi_decryptor.get(); | |
| 66 scoped_ptr<media::CdmInitializedPromise> promise( | 64 scoped_ptr<media::CdmInitializedPromise> promise( |
| 67 new media::CdmInitializedPromise(cdm_created_cb, ppapi_decryptor.Pass())); | 65 new media::CdmInitializedPromise(cdm_created_cb, ppapi_decryptor)); |
| 68 ppapi_decryptor_copy->InitializeCdm(key_system, allow_distinctive_identifier, | 66 |
| 69 allow_persistent_state, promise.Pass()); | 67 ppapi_decryptor->InitializeCdm(key_system, allow_distinctive_identifier, |
| 68 allow_persistent_state, promise.Pass()); |
| 70 } | 69 } |
| 71 | 70 |
| 72 PpapiDecryptor::PpapiDecryptor( | 71 PpapiDecryptor::PpapiDecryptor( |
| 73 scoped_ptr<PepperCdmWrapper> pepper_cdm_wrapper, | 72 scoped_ptr<PepperCdmWrapper> pepper_cdm_wrapper, |
| 74 const media::SessionMessageCB& session_message_cb, | 73 const media::SessionMessageCB& session_message_cb, |
| 75 const media::SessionClosedCB& session_closed_cb, | 74 const media::SessionClosedCB& session_closed_cb, |
| 76 const media::LegacySessionErrorCB& legacy_session_error_cb, | 75 const media::LegacySessionErrorCB& legacy_session_error_cb, |
| 77 const media::SessionKeysChangeCB& session_keys_change_cb, | 76 const media::SessionKeysChangeCB& session_keys_change_cb, |
| 78 const media::SessionExpirationUpdateCB& session_expiration_update_cb) | 77 const media::SessionExpirationUpdateCB& session_expiration_update_cb) |
| 79 : pepper_cdm_wrapper_(pepper_cdm_wrapper.Pass()), | 78 : pepper_cdm_wrapper_(pepper_cdm_wrapper.Pass()), |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 DCHECK(render_task_runner_->BelongsToCurrentThread()); | 448 DCHECK(render_task_runner_->BelongsToCurrentThread()); |
| 450 pepper_cdm_wrapper_.reset(); | 449 pepper_cdm_wrapper_.reset(); |
| 451 } | 450 } |
| 452 | 451 |
| 453 ContentDecryptorDelegate* PpapiDecryptor::CdmDelegate() { | 452 ContentDecryptorDelegate* PpapiDecryptor::CdmDelegate() { |
| 454 DCHECK(render_task_runner_->BelongsToCurrentThread()); | 453 DCHECK(render_task_runner_->BelongsToCurrentThread()); |
| 455 return (pepper_cdm_wrapper_) ? pepper_cdm_wrapper_->GetCdmDelegate() : NULL; | 454 return (pepper_cdm_wrapper_) ? pepper_cdm_wrapper_->GetCdmDelegate() : NULL; |
| 456 } | 455 } |
| 457 | 456 |
| 458 } // namespace content | 457 } // namespace content |
| OLD | NEW |