Index: media/base/media_keys.h |
diff --git a/media/base/media_keys.h b/media/base/media_keys.h |
deleted file mode 100644 |
index 1b0303c2d25e11fa7378992cc19d78570b93845b..0000000000000000000000000000000000000000 |
--- a/media/base/media_keys.h |
+++ /dev/null |
@@ -1,197 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef MEDIA_BASE_MEDIA_KEYS_H_ |
-#define MEDIA_BASE_MEDIA_KEYS_H_ |
- |
-#include <stdint.h> |
- |
-#include <memory> |
-#include <string> |
-#include <vector> |
- |
-#include "base/callback.h" |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_vector.h" |
-#include "media/base/eme_constants.h" |
-#include "media/base/media_export.h" |
-#include "url/gurl.h" |
- |
-namespace base { |
-class Time; |
-} |
- |
-namespace media { |
- |
-class CdmContext; |
-struct CdmKeyInformation; |
-struct MediaKeysTraits; |
- |
-template <typename... T> |
-class CdmPromiseTemplate; |
- |
-typedef CdmPromiseTemplate<std::string> NewSessionCdmPromise; |
-typedef CdmPromiseTemplate<> SimpleCdmPromise; |
-typedef ScopedVector<CdmKeyInformation> CdmKeysInfo; |
- |
-// An interface that represents the Content Decryption Module (CDM) in the |
-// Encrypted Media Extensions (EME) spec in Chromium. |
-// See http://w3c.github.io/encrypted-media/#cdm |
-// |
-// * Ownership |
-// |
-// This class is ref-counted. However, a ref-count should only be held by: |
-// - The owner of the CDM. This is usually some class in the EME stack, e.g. |
-// CdmSessionAdapter in the render process, or MojoCdmService in a non-render |
-// process. |
-// - The media player that uses the CDM, to prevent the CDM from being |
-// destructed while still being used by the media player. |
-// |
-// When binding class methods into callbacks, prefer WeakPtr to using |this| |
-// directly to avoid having a ref-count held by the callback. |
-// |
-// * Thread Safety |
-// |
-// Most CDM operations happen on one thread. However, it is not uncommon that |
-// the media player lives on a different thread and may call into the CDM from |
-// that thread. For example, if the CDM supports a Decryptor interface, the |
-// Decryptor methods could be called on a different thread. The CDM |
-// implementation should make sure it's thread safe for these situations. |
-// |
-// TODO(xhwang): Rename MediaKeys to ContentDecryptionModule. See |
-// http://crbug.com/309237 |
- |
-class MEDIA_EXPORT MediaKeys |
- : public base::RefCountedThreadSafe<MediaKeys, MediaKeysTraits> { |
- public: |
- // Type of license required when creating/loading a session. |
- // Must be consistent with the values specified in the spec: |
- // https://w3c.github.io/encrypted-media/#idl-def-MediaKeySessionType |
- enum SessionType { |
- TEMPORARY_SESSION, |
- PERSISTENT_LICENSE_SESSION, |
- PERSISTENT_RELEASE_MESSAGE_SESSION, |
- SESSION_TYPE_MAX = PERSISTENT_RELEASE_MESSAGE_SESSION |
- }; |
- |
- // Type of message being sent to the application. |
- // Must be consistent with the values specified in the spec: |
- // https://w3c.github.io/encrypted-media/#idl-def-MediaKeyMessageType |
- enum MessageType { |
- LICENSE_REQUEST, |
- LICENSE_RENEWAL, |
- LICENSE_RELEASE, |
- MESSAGE_TYPE_MAX = LICENSE_RELEASE |
- }; |
- |
- // Provides a server certificate to be used to encrypt messages to the |
- // license server. |
- virtual void SetServerCertificate( |
- const std::vector<uint8_t>& certificate, |
- std::unique_ptr<SimpleCdmPromise> promise) = 0; |
- |
- // Creates a session with |session_type|. Then generates a request with the |
- // |init_data_type| and |init_data|. |
- // Note: |
- // 1. The session ID will be provided when the |promise| is resolved. |
- // 2. The generated request should be returned through a SessionMessageCB, |
- // which must be AFTER the |promise| is resolved. Otherwise, the session ID |
- // in the callback will not be recognized. |
- // 3. UpdateSession(), CloseSession() and RemoveSession() should only be |
- // called after the |promise| is resolved. |
- virtual void CreateSessionAndGenerateRequest( |
- SessionType session_type, |
- EmeInitDataType init_data_type, |
- const std::vector<uint8_t>& init_data, |
- std::unique_ptr<NewSessionCdmPromise> promise) = 0; |
- |
- // Loads a session with the |session_id| provided. Resolves the |promise| with |
- // |session_id| if the session is successfully loaded. Resolves the |promise| |
- // with an empty session ID if the session cannot be found. Rejects the |
- // |promise| if session loading is not supported, or other unexpected failure |
- // happened. |
- // Note: UpdateSession(), CloseSession() and RemoveSession() should only be |
- // called after the |promise| is resolved. |
- virtual void LoadSession(SessionType session_type, |
- const std::string& session_id, |
- std::unique_ptr<NewSessionCdmPromise> promise) = 0; |
- |
- // Updates a session specified by |session_id| with |response|. |
- virtual void UpdateSession(const std::string& session_id, |
- const std::vector<uint8_t>& response, |
- std::unique_ptr<SimpleCdmPromise> promise) = 0; |
- |
- // Closes the session specified by |session_id|. The CDM should resolve or |
- // reject the |promise| when the call has been processed. This may be before |
- // the session is closed. Once the session is closed, a SessionClosedCB must |
- // also be called. |
- virtual void CloseSession(const std::string& session_id, |
- std::unique_ptr<SimpleCdmPromise> promise) = 0; |
- |
- // Removes stored session data associated with the session specified by |
- // |session_id|. |
- virtual void RemoveSession(const std::string& session_id, |
- std::unique_ptr<SimpleCdmPromise> promise) = 0; |
- |
- // Returns the CdmContext associated with |this|. The returned CdmContext is |
- // owned by |this| and the caller needs to make sure it is not used after |
- // |this| is destructed. |
- // Returns null if CdmContext is not supported. Instead the media player may |
- // use the CDM via some platform specific method. |
- // By default this method returns null. |
- // TODO(xhwang): Convert all SetCdm() implementations to use CdmContext so |
- // that this function should never return nullptr. |
- virtual CdmContext* GetCdmContext(); |
- |
- // Deletes |this| on the correct thread. By default |this| is deleted |
- // immediately. Override this method if |this| needs to be deleted on a |
- // specific thread. |
- virtual void DeleteOnCorrectThread() const; |
- |
- protected: |
- friend class base::RefCountedThreadSafe<MediaKeys, MediaKeysTraits>; |
- |
- MediaKeys(); |
- virtual ~MediaKeys(); |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(MediaKeys); |
-}; |
- |
-struct MEDIA_EXPORT MediaKeysTraits { |
- // Destroys |media_keys| on the correct thread. |
- static void Destruct(const MediaKeys* media_keys); |
-}; |
- |
-// CDM session event callbacks. |
- |
-// Called when the CDM needs to queue a message event to the session object. |
-// See http://w3c.github.io/encrypted-media/#dom-evt-message |
-typedef base::Callback<void(const std::string& session_id, |
- MediaKeys::MessageType message_type, |
- const std::vector<uint8_t>& message)> |
- SessionMessageCB; |
- |
-// Called when the session specified by |session_id| is closed. Note that the |
-// CDM may close a session at any point, such as in response to a CloseSession() |
-// call, when the session is no longer needed, or when system resources are |
-// lost. See http://w3c.github.io/encrypted-media/#session-close |
-typedef base::Callback<void(const std::string& session_id)> SessionClosedCB; |
- |
-// Called when there has been a change in the keys in the session or their |
-// status. See http://w3c.github.io/encrypted-media/#dom-evt-keystatuseschange |
-typedef base::Callback<void(const std::string& session_id, |
- bool has_additional_usable_key, |
- CdmKeysInfo keys_info)> SessionKeysChangeCB; |
- |
-// Called when the CDM changes the expiration time of a session. |
-// See http://w3c.github.io/encrypted-media/#update-expiration |
-typedef base::Callback<void(const std::string& session_id, |
- base::Time new_expiry_time)> |
- SessionExpirationUpdateCB; |
- |
-} // namespace media |
- |
-#endif // MEDIA_BASE_MEDIA_KEYS_H_ |