OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/pepper/content_decryptor_delegate.h" | 5 #include "content/renderer/pepper/content_decryptor_delegate.h" |
6 | 6 |
7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
8 #include "base/message_loop/message_loop_proxy.h" | 8 #include "base/message_loop/message_loop_proxy.h" |
9 #include "base/metrics/sparse_histogram.h" | 9 #include "base/metrics/sparse_histogram.h" |
10 #include "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 | 375 |
376 void ContentDecryptorDelegate::Initialize( | 376 void ContentDecryptorDelegate::Initialize( |
377 const std::string& key_system, | 377 const std::string& key_system, |
378 bool allow_distinctive_identifier, | 378 bool allow_distinctive_identifier, |
379 bool allow_persistent_state, | 379 bool allow_persistent_state, |
380 const media::SessionMessageCB& session_message_cb, | 380 const media::SessionMessageCB& session_message_cb, |
381 const media::SessionClosedCB& session_closed_cb, | 381 const media::SessionClosedCB& session_closed_cb, |
382 const media::LegacySessionErrorCB& legacy_session_error_cb, | 382 const media::LegacySessionErrorCB& legacy_session_error_cb, |
383 const media::SessionKeysChangeCB& session_keys_change_cb, | 383 const media::SessionKeysChangeCB& session_keys_change_cb, |
384 const media::SessionExpirationUpdateCB& session_expiration_update_cb, | 384 const media::SessionExpirationUpdateCB& session_expiration_update_cb, |
385 const base::Closure& fatal_plugin_error_cb) { | 385 const base::Closure& fatal_plugin_error_cb, |
| 386 scoped_ptr<media::SimpleCdmPromise> promise) { |
386 DCHECK(!key_system.empty()); | 387 DCHECK(!key_system.empty()); |
387 DCHECK(key_system_.empty()); | 388 DCHECK(key_system_.empty()); |
388 key_system_ = key_system; | 389 key_system_ = key_system; |
389 | 390 |
390 session_message_cb_ = session_message_cb; | 391 session_message_cb_ = session_message_cb; |
391 session_closed_cb_ = session_closed_cb; | 392 session_closed_cb_ = session_closed_cb; |
392 legacy_session_error_cb_ = legacy_session_error_cb; | 393 legacy_session_error_cb_ = legacy_session_error_cb; |
393 session_keys_change_cb_ = session_keys_change_cb; | 394 session_keys_change_cb_ = session_keys_change_cb; |
394 session_expiration_update_cb_ = session_expiration_update_cb; | 395 session_expiration_update_cb_ = session_expiration_update_cb; |
395 fatal_plugin_error_cb_ = fatal_plugin_error_cb; | 396 fatal_plugin_error_cb_ = fatal_plugin_error_cb; |
396 | 397 |
| 398 uint32_t promise_id = cdm_promise_adapter_.SavePromise(promise.Pass()); |
397 plugin_decryption_interface_->Initialize( | 399 plugin_decryption_interface_->Initialize( |
398 pp_instance_, StringVar::StringToPPVar(key_system_), | 400 pp_instance_, promise_id, StringVar::StringToPPVar(key_system_), |
399 PP_FromBool(allow_distinctive_identifier), | 401 PP_FromBool(allow_distinctive_identifier), |
400 PP_FromBool(allow_persistent_state)); | 402 PP_FromBool(allow_persistent_state)); |
401 } | 403 } |
402 | 404 |
403 void ContentDecryptorDelegate::InstanceCrashed() { | 405 void ContentDecryptorDelegate::InstanceCrashed() { |
404 fatal_plugin_error_cb_.Run(); | 406 fatal_plugin_error_cb_.Run(); |
405 SatisfyAllPendingCallbacksOnError(); | 407 SatisfyAllPendingCallbacksOnError(); |
406 } | 408 } |
407 | 409 |
408 void ContentDecryptorDelegate::SetServerCertificate( | 410 void ContentDecryptorDelegate::SetServerCertificate( |
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1288 empty_frames); | 1290 empty_frames); |
1289 } | 1291 } |
1290 | 1292 |
1291 if (!video_decode_cb_.is_null()) | 1293 if (!video_decode_cb_.is_null()) |
1292 video_decode_cb_.ResetAndReturn().Run(media::Decryptor::kError, NULL); | 1294 video_decode_cb_.ResetAndReturn().Run(media::Decryptor::kError, NULL); |
1293 | 1295 |
1294 cdm_promise_adapter_.Clear(); | 1296 cdm_promise_adapter_.Clear(); |
1295 } | 1297 } |
1296 | 1298 |
1297 } // namespace content | 1299 } // namespace content |
OLD | NEW |