| Index: content/renderer/media/crypto/proxy_decryptor.h
|
| diff --git a/content/renderer/media/crypto/proxy_decryptor.h b/content/renderer/media/crypto/proxy_decryptor.h
|
| index 2919ef7c71a6c40aa5ead019974f6279af9f5f89..c104bcf7f23a8781429ac6c527355995d1060e9e 100644
|
| --- a/content/renderer/media/crypto/proxy_decryptor.h
|
| +++ b/content/renderer/media/crypto/proxy_decryptor.h
|
| @@ -5,7 +5,6 @@
|
| #ifndef CONTENT_RENDERER_MEDIA_CRYPTO_PROXY_DECRYPTOR_H_
|
| #define CONTENT_RENDERER_MEDIA_CRYPTO_PROXY_DECRYPTOR_H_
|
|
|
| -#include <map>
|
| #include <set>
|
| #include <string>
|
| #include <vector>
|
| @@ -33,12 +32,6 @@ class RendererMediaPlayerManager;
|
| // A decryptor proxy that creates a real decryptor object on demand and
|
| // forwards decryptor calls to it.
|
| //
|
| -// Now that the Pepper API calls use session ID to match responses with
|
| -// requests, this class maintains a mapping between session ID and web session
|
| -// ID. Callers of this class expect web session IDs in the responses.
|
| -// Session IDs are internal unique references to the session. Web session IDs
|
| -// are the CDM generated ID for the session, and are what are visible to users.
|
| -//
|
| // TODO(xhwang): Currently we don't support run-time switching among decryptor
|
| // objects. Fix this when needed.
|
| // TODO(xhwang): The ProxyDecryptor is not a Decryptor. Find a better name!
|
| @@ -89,31 +82,23 @@ class ProxyDecryptor {
|
| void CancelKeyRequest(const std::string& session_id);
|
|
|
| private:
|
| - // Session_id <-> web_session_id map.
|
| - typedef std::map<uint32, std::string> SessionIdMap;
|
| -
|
| // Helper function to create MediaKeys to handle the given |key_system|.
|
| scoped_ptr<media::MediaKeys> CreateMediaKeys(const std::string& key_system,
|
| const GURL& security_origin);
|
|
|
| // Callbacks for firing session events.
|
| - void OnSessionCreated(uint32 session_id, const std::string& web_session_id);
|
| - void OnSessionMessage(uint32 session_id,
|
| + void OnSessionMessage(const std::string& web_session_id,
|
| const std::vector<uint8>& message,
|
| const std::string& default_url);
|
| - void OnSessionReady(uint32 session_id);
|
| - void OnSessionClosed(uint32 session_id);
|
| - void OnSessionError(uint32 session_id,
|
| - media::MediaKeys::KeyError error_code,
|
| - uint32 system_code);
|
| -
|
| - // Helper function to determine session_id for the provided |web_session_id|.
|
| - uint32 LookupSessionId(const std::string& web_session_id) const;
|
| + void OnSessionReady(const std::string& web_session_id);
|
| + void OnSessionClosed(const std::string& web_session_id);
|
| + void OnSessionError(const std::string& web_session_id,
|
| + media::MediaKeys::MediaKeysException exception_code,
|
| + uint32 system_code,
|
| + const std::string& error_message);
|
|
|
| - // Helper function to determine web_session_id for the provided |session_id|.
|
| - // The returned web_session_id is only valid on the main thread, and should be
|
| - // stored by copy.
|
| - const std::string& LookupWebSessionId(uint32 session_id) const;
|
| + // Called when a session is actually created or loaded.
|
| + void SetSessionId(bool persistent, const std::string& web_session_id);
|
|
|
| #if defined(ENABLE_PEPPER_CDMS)
|
| // Callback to create the Pepper plugin.
|
| @@ -131,14 +116,8 @@ class ProxyDecryptor {
|
| KeyErrorCB key_error_cb_;
|
| KeyMessageCB key_message_cb_;
|
|
|
| - // Session IDs are used to uniquely track sessions so that CDM callbacks
|
| - // can get mapped to the correct session ID. Session ID should be unique
|
| - // per renderer process for debugging purposes.
|
| - static uint32 next_session_id_;
|
| -
|
| - SessionIdMap sessions_;
|
| -
|
| - std::set<uint32> persistent_sessions_;
|
| + std::set<std::string> active_sessions_;
|
| + std::set<std::string> persistent_sessions_;
|
|
|
| bool is_clear_key_;
|
|
|
|
|