Chromium Code Reviews| Index: webkit/plugins/ppapi/content_decryptor_delegate.cc |
| diff --git a/webkit/plugins/ppapi/content_decryptor_delegate.cc b/webkit/plugins/ppapi/content_decryptor_delegate.cc |
| index 7db28f721c211ed9999a48ed1c6a3b290a8fa29c..f0486f614259be5aa9c43d5a072352510f3a8ff1 100644 |
| --- a/webkit/plugins/ppapi/content_decryptor_delegate.cc |
| +++ b/webkit/plugins/ppapi/content_decryptor_delegate.cc |
| @@ -12,7 +12,6 @@ |
| #include "media/base/channel_layout.h" |
| #include "media/base/data_buffer.h" |
| #include "media/base/decoder_buffer.h" |
| -#include "media/base/decryptor_client.h" |
| #include "media/base/video_decoder_config.h" |
| #include "media/base/video_frame.h" |
| #include "media/base/video_util.h" |
| @@ -272,7 +271,6 @@ ContentDecryptorDelegate::ContentDecryptorDelegate( |
| const PPP_ContentDecryptor_Private* plugin_decryption_interface) |
| : pp_instance_(pp_instance), |
| plugin_decryption_interface_(plugin_decryption_interface), |
| - decryptor_client_(NULL), |
| next_decryption_request_id_(1), |
| pending_audio_decrypt_request_id_(0), |
| pending_video_decrypt_request_id_(0), |
| @@ -284,9 +282,15 @@ ContentDecryptorDelegate::ContentDecryptorDelegate( |
| weak_this_(weak_ptr_factory_.GetWeakPtr()) { |
| } |
| -void ContentDecryptorDelegate::set_decrypt_client( |
| - media::DecryptorClient* decryptor_client) { |
| - decryptor_client_ = decryptor_client; |
| +void ContentDecryptorDelegate::SetKeyEventCallbacks( |
| + const media::KeyAddedCB& key_added_cb, |
| + const media::KeyErrorCB& key_error_cb, |
| + const media::KeyMessageCB& key_message_cb, |
| + const media::NeedKeyCB& need_key_cb) { |
| + key_added_cb_ = key_added_cb; |
| + key_error_cb_ = key_error_cb; |
| + key_message_cb_ = key_message_cb; |
| + need_key_cb_ = need_key_cb; |
| } |
| bool ContentDecryptorDelegate::GenerateKeyRequest(const std::string& key_system, |
| @@ -629,25 +633,24 @@ void ContentDecryptorDelegate::NeedKey(PP_Var key_system_var, |
| void ContentDecryptorDelegate::KeyAdded(PP_Var key_system_var, |
| PP_Var session_id_var) { |
| - if (!decryptor_client_) |
| + if (key_added_cb_.is_null()) |
|
ddorwin
2012/12/21 04:19:06
In what scenarios can this occur? Should there be
xhwang
2012/12/21 05:50:07
hmm, I guess this comes from my paranoid about not
|
| return; |
| StringVar* key_system_string = StringVar::FromPPVar(key_system_var); |
| StringVar* session_id_string = StringVar::FromPPVar(session_id_var); |
| if (!key_system_string || !session_id_string) { |
| - decryptor_client_->KeyError("", "", media::Decryptor::kUnknownError, 0); |
| + key_error_cb_.Run("", "", media::Decryptor::kUnknownError, 0); |
| return; |
| } |
| - decryptor_client_->KeyAdded(key_system_string->value(), |
| - session_id_string->value()); |
| + key_added_cb_.Run(key_system_string->value(), session_id_string->value()); |
| } |
| void ContentDecryptorDelegate::KeyMessage(PP_Var key_system_var, |
| PP_Var session_id_var, |
| PP_Var message_var, |
| PP_Var default_url_var) { |
| - if (!decryptor_client_) |
| + if (key_message_cb_.is_null()) |
| return; |
| StringVar* key_system_string = StringVar::FromPPVar(key_system_var); |
| @@ -665,31 +668,31 @@ void ContentDecryptorDelegate::KeyMessage(PP_Var key_system_var, |
| StringVar* default_url_string = StringVar::FromPPVar(default_url_var); |
| if (!key_system_string || !session_id_string || !default_url_string) { |
| - decryptor_client_->KeyError("", "", media::Decryptor::kUnknownError, 0); |
| + key_error_cb_.Run("", "", media::Decryptor::kUnknownError, 0); |
| return; |
| } |
| - decryptor_client_->KeyMessage(key_system_string->value(), |
| - session_id_string->value(), |
| - message, |
| - default_url_string->value()); |
| + key_message_cb_.Run(key_system_string->value(), |
| + session_id_string->value(), |
| + message, |
| + default_url_string->value()); |
| } |
| void ContentDecryptorDelegate::KeyError(PP_Var key_system_var, |
| PP_Var session_id_var, |
| int32_t media_error, |
| int32_t system_code) { |
| - if (!decryptor_client_) |
| + if (key_error_cb_.is_null()) |
| return; |
| StringVar* key_system_string = StringVar::FromPPVar(key_system_var); |
| StringVar* session_id_string = StringVar::FromPPVar(session_id_var); |
| if (!key_system_string || !session_id_string) { |
| - decryptor_client_->KeyError("", "", media::Decryptor::kUnknownError, 0); |
| + key_error_cb_.Run("", "", media::Decryptor::kUnknownError, 0); |
| return; |
| } |
| - decryptor_client_->KeyError( |
| + key_error_cb_.Run( |
| key_system_string->value(), |
| session_id_string->value(), |
| static_cast<media::Decryptor::KeyError>(media_error), |