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 |