| 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_ | 
|  |