| Index: media/cdm/aes_decryptor.cc
|
| diff --git a/media/cdm/aes_decryptor.cc b/media/cdm/aes_decryptor.cc
|
| index 0ecaa0b690a8d243114ec1e8e58cbb8534832731..932258b3948635157000ea5851f7b39096b3e053 100644
|
| --- a/media/cdm/aes_decryptor.cc
|
| +++ b/media/cdm/aes_decryptor.cc
|
| @@ -396,20 +396,24 @@ void AesDecryptor::UpdateSession(const std::string& session_id,
|
| session_keys_change_cb_.Run(session_id, key_added, std::move(keys_info));
|
| }
|
|
|
| +// Runs the parallel steps from https://w3c.github.io/encrypted-media/#close.
|
| void AesDecryptor::CloseSession(const std::string& session_id,
|
| std::unique_ptr<SimpleCdmPromise> promise) {
|
| // Validate that this is a reference to an active session and then forget it.
|
| std::set<std::string>::iterator it = valid_sessions_.find(session_id);
|
| DCHECK(it != valid_sessions_.end());
|
|
|
| + // 5.1. Let cdm be the CDM instance represented by session's cdm instance
|
| + // value.
|
| + // 5.2. Use cdm to close the session associated with session.
|
| valid_sessions_.erase(it);
|
| -
|
| - // Close the session.
|
| DeleteKeysForSession(session_id);
|
| - promise->resolve();
|
|
|
| - // Resolve the closed attribute.
|
| + // 5.3. Queue a task to run the following steps:
|
| + // 5.3.1. Run the Session Closed algorithm on the session.
|
| session_closed_cb_.Run(session_id);
|
| + // 5.3.2. Resolve promise.
|
| + promise->resolve();
|
| }
|
|
|
| void AesDecryptor::RemoveSession(const std::string& session_id,
|
|
|