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

Unified Diff: media/cdm/aes_decryptor.cc

Issue 1920433003: EME: Address TODOs related to the removal of prefixed EME (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 6 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 bb5baa48c93c48efa9a5f02b4e7717d3121676a9..6f867e0b675f925a227c6d6875c7c1d71b6e5d52 100644
--- a/media/cdm/aes_decryptor.cc
+++ b/media/cdm/aes_decryptor.cc
@@ -268,47 +268,41 @@ void AesDecryptor::CreateSessionAndGenerateRequest(
// TODO(jrummell): Validate |session_type|.
std::vector<uint8_t> message;
- // TODO(jrummell): Since unprefixed will never send NULL, remove this check
ddorwin 2016/06/23 01:06:47 I think we could have removed this before when we
- // when prefixed EME is removed (http://crbug.com/249976).
- if (!init_data.empty()) {
- std::vector<std::vector<uint8_t>> keys;
- switch (init_data_type) {
- case EmeInitDataType::WEBM:
- // |init_data| is simply the key needed.
- keys.push_back(init_data);
- break;
- case EmeInitDataType::CENC:
+ std::vector<std::vector<uint8_t>> keys;
+ switch (init_data_type) {
+ case EmeInitDataType::WEBM:
+ // |init_data| is simply the key needed.
+ keys.push_back(init_data);
+ break;
+ case EmeInitDataType::CENC:
#if defined(USE_PROPRIETARY_CODECS)
- // |init_data| is a set of 0 or more concatenated 'pssh' boxes.
- if (!GetKeyIdsForCommonSystemId(init_data, &keys)) {
- promise->reject(NOT_SUPPORTED_ERROR, 0,
- "No supported PSSH box found.");
- return;
- }
- break;
-#else
- promise->reject(NOT_SUPPORTED_ERROR, 0,
- "Initialization data type CENC is not supported.");
+ // |init_data| is a set of 0 or more concatenated 'pssh' boxes.
+ if (!GetKeyIdsForCommonSystemId(init_data, &keys)) {
+ promise->reject(NOT_SUPPORTED_ERROR, 0, "No supported PSSH box found.");
return;
-#endif
- case EmeInitDataType::KEYIDS: {
- std::string init_data_string(init_data.begin(), init_data.end());
- std::string error_message;
- if (!ExtractKeyIdsFromKeyIdsInitData(init_data_string, &keys,
- &error_message)) {
- promise->reject(NOT_SUPPORTED_ERROR, 0, error_message);
- return;
- }
- break;
}
- default:
- NOTREACHED();
- promise->reject(NOT_SUPPORTED_ERROR, 0,
- "init_data_type not supported.");
+ break;
+#else
+ promise->reject(NOT_SUPPORTED_ERROR, 0,
+ "Initialization data type CENC is not supported.");
+ return;
+#endif
+ case EmeInitDataType::KEYIDS: {
+ std::string init_data_string(init_data.begin(), init_data.end());
+ std::string error_message;
+ if (!ExtractKeyIdsFromKeyIdsInitData(init_data_string, &keys,
+ &error_message)) {
+ promise->reject(NOT_SUPPORTED_ERROR, 0, error_message);
return;
+ }
+ break;
}
- CreateLicenseRequest(keys, session_type, &message);
+ default:
+ NOTREACHED();
+ promise->reject(NOT_SUPPORTED_ERROR, 0, "init_data_type not supported.");
+ return;
}
+ CreateLicenseRequest(keys, session_type, &message);
promise->resolve(session_id);
@@ -416,20 +410,7 @@ void AesDecryptor::CloseSession(const std::string& session_id,
void AesDecryptor::RemoveSession(const std::string& session_id,
std::unique_ptr<SimpleCdmPromise> promise) {
- // AesDecryptor doesn't keep any persistent data, so this should be
- // NOT_REACHED().
- // TODO(jrummell): Make sure persistent session types are rejected.
- // http://crbug.com/384152.
- //
- // However, v0.1b calls to CancelKeyRequest() will call this, so close the
- // session, if it exists.
- // TODO(jrummell): Remove the close() call when prefixed EME is removed.
- // http://crbug.com/249976.
- if (valid_sessions_.find(session_id) != valid_sessions_.end()) {
- CloseSession(session_id, std::move(promise));
- return;
- }
-
+ NOTREACHED() << "AesDecryptor doesn't support persistent sessions.";
promise->reject(INVALID_ACCESS_ERROR, 0, "Session does not exist.");
}

Powered by Google App Engine
This is Rietveld 408576698