| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "media/mojo/clients/mojo_cdm.h" | 5 #include "media/mojo/clients/mojo_cdm.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 void MojoCdm::InitializeCdm(const std::string& key_system, | 99 void MojoCdm::InitializeCdm(const std::string& key_system, |
| 100 const GURL& security_origin, | 100 const GURL& security_origin, |
| 101 const media::CdmConfig& cdm_config, | 101 const media::CdmConfig& cdm_config, |
| 102 std::unique_ptr<CdmInitializedPromise> promise) { | 102 std::unique_ptr<CdmInitializedPromise> promise) { |
| 103 DVLOG(1) << __FUNCTION__ << ": " << key_system; | 103 DVLOG(1) << __FUNCTION__ << ": " << key_system; |
| 104 DCHECK(thread_checker_.CalledOnValidThread()); | 104 DCHECK(thread_checker_.CalledOnValidThread()); |
| 105 | 105 |
| 106 // If connection error has happened, fail immediately. | 106 // If connection error has happened, fail immediately. |
| 107 if (remote_cdm_.encountered_error()) { | 107 if (remote_cdm_.encountered_error()) { |
| 108 LOG(ERROR) << "Remote CDM encountered error."; | 108 LOG(ERROR) << "Remote CDM encountered error."; |
| 109 promise->reject(NOT_SUPPORTED_ERROR, 0, "Mojo CDM creation failed."); | 109 promise->reject(CdmPromise::NOT_SUPPORTED_ERROR, 0, |
| 110 "Mojo CDM creation failed."); |
| 110 return; | 111 return; |
| 111 } | 112 } |
| 112 | 113 |
| 113 // Otherwise, set an error handler to catch the connection error. | 114 // Otherwise, set an error handler to catch the connection error. |
| 114 remote_cdm_.set_connection_error_handler( | 115 remote_cdm_.set_connection_error_handler( |
| 115 base::Bind(&MojoCdm::OnConnectionError, base::Unretained(this))); | 116 base::Bind(&MojoCdm::OnConnectionError, base::Unretained(this))); |
| 116 | 117 |
| 117 pending_init_promise_ = std::move(promise); | 118 pending_init_promise_ = std::move(promise); |
| 118 | 119 |
| 119 remote_cdm_->Initialize( | 120 remote_cdm_->Initialize( |
| 120 key_system, security_origin.spec(), mojom::CdmConfig::From(cdm_config), | 121 key_system, security_origin.spec(), mojom::CdmConfig::From(cdm_config), |
| 121 base::Bind(&MojoCdm::OnCdmInitialized, base::Unretained(this))); | 122 base::Bind(&MojoCdm::OnCdmInitialized, base::Unretained(this))); |
| 122 } | 123 } |
| 123 | 124 |
| 124 void MojoCdm::OnConnectionError() { | 125 void MojoCdm::OnConnectionError() { |
| 125 LOG(ERROR) << "Remote CDM connection error."; | 126 LOG(ERROR) << "Remote CDM connection error."; |
| 126 DCHECK(thread_checker_.CalledOnValidThread()); | 127 DCHECK(thread_checker_.CalledOnValidThread()); |
| 127 | 128 |
| 128 // We only handle initial connection error. | 129 // We only handle initial connection error. |
| 129 if (!pending_init_promise_) | 130 if (!pending_init_promise_) |
| 130 return; | 131 return; |
| 131 | 132 |
| 132 pending_init_promise_->reject(NOT_SUPPORTED_ERROR, 0, | 133 pending_init_promise_->reject(CdmPromise::NOT_SUPPORTED_ERROR, 0, |
| 133 "Mojo CDM creation failed."); | 134 "Mojo CDM creation failed."); |
| 134 pending_init_promise_.reset(); | 135 pending_init_promise_.reset(); |
| 135 } | 136 } |
| 136 | 137 |
| 137 void MojoCdm::SetServerCertificate(const std::vector<uint8_t>& certificate, | 138 void MojoCdm::SetServerCertificate(const std::vector<uint8_t>& certificate, |
| 138 std::unique_ptr<SimpleCdmPromise> promise) { | 139 std::unique_ptr<SimpleCdmPromise> promise) { |
| 139 DVLOG(2) << __FUNCTION__; | 140 DVLOG(2) << __FUNCTION__; |
| 140 DCHECK(thread_checker_.CalledOnValidThread()); | 141 DCHECK(thread_checker_.CalledOnValidThread()); |
| 141 | 142 |
| 142 remote_cdm_->SetServerCertificate( | 143 remote_cdm_->SetServerCertificate( |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 333 std::unique_ptr<NewSessionCdmPromise> promise, | 334 std::unique_ptr<NewSessionCdmPromise> promise, |
| 334 mojom::CdmPromiseResultPtr result, | 335 mojom::CdmPromiseResultPtr result, |
| 335 const std::string& session_id) { | 336 const std::string& session_id) { |
| 336 if (result->success) | 337 if (result->success) |
| 337 promise->resolve(session_id); | 338 promise->resolve(session_id); |
| 338 else | 339 else |
| 339 RejectPromise(std::move(promise), std::move(result)); | 340 RejectPromise(std::move(promise), std::move(result)); |
| 340 } | 341 } |
| 341 | 342 |
| 342 } // namespace media | 343 } // namespace media |
| OLD | NEW |