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

Unified Diff: content/renderer/media/crypto/proxy_decryptor.cc

Issue 448893002: Update ClearKey to support CDM_6 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cdm6
Patch Set: Changes Created 6 years, 4 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: content/renderer/media/crypto/proxy_decryptor.cc
diff --git a/content/renderer/media/crypto/proxy_decryptor.cc b/content/renderer/media/crypto/proxy_decryptor.cc
index 28cd421e85ff099858007c541c025fd594b92bc0..b4e65e4ce759ea3ec4bd7f9e423925382b8055a1 100644
--- a/content/renderer/media/crypto/proxy_decryptor.cc
+++ b/content/renderer/media/crypto/proxy_decryptor.cc
@@ -102,21 +102,22 @@ bool ProxyDecryptor::GenerateKeyRequest(const std::string& content_type,
const char kPrefixedApiPersistentSessionHeader[] = "PERSISTENT|";
const char kPrefixedApiLoadSessionHeader[] = "LOAD_SESSION|";
- bool loadSession =
+ bool is_load_session =
HasHeader(init_data, init_data_length, kPrefixedApiLoadSessionHeader);
- bool persistent = HasHeader(
+ bool is_create_persistent = HasHeader(
init_data, init_data_length, kPrefixedApiPersistentSessionHeader);
scoped_ptr<media::NewSessionCdmPromise> promise(
new media::NewSessionCdmPromise(
base::Bind(&ProxyDecryptor::SetSessionId,
weak_ptr_factory_.GetWeakPtr(),
- persistent || loadSession),
+ is_create_persistent,
+ is_load_session),
base::Bind(&ProxyDecryptor::OnSessionError,
weak_ptr_factory_.GetWeakPtr(),
std::string()))); // No session id until created.
- if (loadSession) {
+ if (is_load_session) {
media_keys_->LoadSession(
std::string(reinterpret_cast<const char*>(
init_data + strlen(kPrefixedApiLoadSessionHeader)),
@@ -126,8 +127,8 @@ bool ProxyDecryptor::GenerateKeyRequest(const std::string& content_type,
}
media::MediaKeys::SessionType session_type =
- persistent ? media::MediaKeys::PERSISTENT_SESSION
- : media::MediaKeys::TEMPORARY_SESSION;
+ is_create_persistent ? media::MediaKeys::PERSISTENT_SESSION
+ : media::MediaKeys::TEMPORARY_SESSION;
media_keys_->CreateSession(
content_type, init_data, init_data_length, session_type, promise.Pass());
return true;
@@ -286,9 +287,16 @@ void ProxyDecryptor::OnSessionError(const std::string& web_session_id,
key_error_cb_.Run(web_session_id, error_code, system_code);
}
-void ProxyDecryptor::SetSessionId(bool persistent,
+void ProxyDecryptor::SetSessionId(bool is_new_persistent_session,
+ bool is_loaded_session,
const std::string& web_session_id) {
+ // Loaded sessions are considered persistent.
+ bool persistent = is_new_persistent_session || is_loaded_session;
ddorwin 2014/08/11 20:34:15 is_
jrummell 2014/08/13 21:18:06 Done.
active_sessions_.insert(std::make_pair(web_session_id, persistent));
+
+ // For LoadSession(), generate the SessionReady event.
+ if (is_loaded_session)
+ OnSessionReady(web_session_id);
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698