Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1022)

Unified Diff: media/cdm/aes_decryptor.cc

Issue 833963003: Pass key_information on SessionKeysChange message (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ScopedVector Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/cdm/aes_decryptor.cc
diff --git a/media/cdm/aes_decryptor.cc b/media/cdm/aes_decryptor.cc
index 9938bae2c8df544ffde76f1169697986d9d3e8cf..e13b068a86352fca53db85739d650d7c6101b740 100644
--- a/media/cdm/aes_decryptor.cc
+++ b/media/cdm/aes_decryptor.cc
@@ -13,6 +13,7 @@
#include "crypto/encryptor.h"
#include "crypto/symmetric_key.h"
#include "media/base/audio_decoder_config.h"
+#include "media/base/cdm_key_information.h"
#include "media/base/cdm_promise.h"
#include "media/base/decoder_buffer.h"
#include "media/base/decrypt_config.h"
@@ -329,9 +330,23 @@ void AesDecryptor::UpdateSession(const std::string& web_session_id,
promise->resolve();
+ // Create the list of all available keys for this session.
+ CdmKeysInfo keys_info;
+ base::AutoLock auto_lock(key_map_lock_);
+ for (const auto& item : key_map_) {
+ if (item.second->Contains(web_session_id)) {
+ scoped_ptr<CdmKeyInformation> key_info(new CdmKeyInformation);
+ std::vector<uint8_t> key_id_vector(item.first.begin(), item.first.end());
+ key_info->key_id = key_id_vector;
xhwang 2015/01/05 22:53:15 You can avoid the extra copy here by using key_i
jrummell 2015/01/06 02:36:25 Done.
+ key_info->status = CdmKeyInformation::USABLE;
+ key_info->system_code = 0;
+ keys_info.push_back(key_info.release());
+ }
+ }
+
// Assume that at least 1 new key has been successfully added and thus
- // sending true.
- session_keys_change_cb_.Run(web_session_id, true);
+ // sending true for |has_additional_usable_key|.
+ session_keys_change_cb_.Run(web_session_id, true, keys_info);
}
void AesDecryptor::CloseSession(const std::string& web_session_id,

Powered by Google App Engine
This is Rietveld 408576698