| Index: media/cdm/proxy_decryptor.h
|
| diff --git a/media/cdm/proxy_decryptor.h b/media/cdm/proxy_decryptor.h
|
| deleted file mode 100644
|
| index ca0d36d2668a4c4c751b54629ef4c5bab38a4792..0000000000000000000000000000000000000000
|
| --- a/media/cdm/proxy_decryptor.h
|
| +++ /dev/null
|
| @@ -1,169 +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_CDM_PROXY_DECRYPTOR_H_
|
| -#define MEDIA_CDM_PROXY_DECRYPTOR_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/containers/hash_tables.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/scoped_vector.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "build/build_config.h"
|
| -#include "media/base/cdm_context.h"
|
| -#include "media/base/decryptor.h"
|
| -#include "media/base/eme_constants.h"
|
| -#include "media/base/media_export.h"
|
| -#include "media/base/media_keys.h"
|
| -#include "url/gurl.h"
|
| -
|
| -namespace media {
|
| -
|
| -class CdmFactory;
|
| -class MediaPermission;
|
| -
|
| -// ProxyDecryptor is for EME v0.1b only. It should not be used for the WD API.
|
| -// A decryptor proxy that creates a real decryptor object on demand and
|
| -// forwards decryptor calls to it.
|
| -//
|
| -// 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!
|
| -class MEDIA_EXPORT ProxyDecryptor {
|
| - public:
|
| - // Callback to provide a CdmContext when the CDM creation is finished.
|
| - // If CDM creation failed, |cdm_context| will be null.
|
| - typedef base::Callback<void(CdmContext* cdm_context)> CdmContextReadyCB;
|
| -
|
| - // These are similar to the callbacks in media_keys.h, but pass back the
|
| - // session ID rather than the internal session ID.
|
| - typedef base::Callback<void(const std::string& session_id)> KeyAddedCB;
|
| - typedef base::Callback<void(const std::string& session_id,
|
| - MediaKeys::KeyError error_code,
|
| - uint32_t system_code)> KeyErrorCB;
|
| - typedef base::Callback<void(const std::string& session_id,
|
| - const std::vector<uint8_t>& message,
|
| - const GURL& destination_url)> KeyMessageCB;
|
| -
|
| - ProxyDecryptor(MediaPermission* media_permission,
|
| - bool use_hw_secure_codecs,
|
| - const KeyAddedCB& key_added_cb,
|
| - const KeyErrorCB& key_error_cb,
|
| - const KeyMessageCB& key_message_cb);
|
| - virtual ~ProxyDecryptor();
|
| -
|
| - // Creates the CDM and fires |cdm_created_cb|. This method should only be
|
| - // called once. If CDM creation failed, all following GenerateKeyRequest,
|
| - // AddKey and CancelKeyRequest calls will result in a KeyError.
|
| - void CreateCdm(CdmFactory* cdm_factory,
|
| - const std::string& key_system,
|
| - const GURL& security_origin,
|
| - const CdmContextReadyCB& cdm_context_ready_cb);
|
| -
|
| - // May only be called after CreateCDM().
|
| - void GenerateKeyRequest(EmeInitDataType init_data_type,
|
| - const uint8_t* init_data,
|
| - int init_data_length);
|
| - void AddKey(const uint8_t* key,
|
| - int key_length,
|
| - const uint8_t* init_data,
|
| - int init_data_length,
|
| - const std::string& session_id);
|
| - void CancelKeyRequest(const std::string& session_id);
|
| -
|
| - private:
|
| - // Callback for CreateCdm().
|
| - void OnCdmCreated(const std::string& key_system,
|
| - const GURL& security_origin,
|
| - const CdmContextReadyCB& cdm_context_ready_cb,
|
| - const scoped_refptr<MediaKeys>& cdm,
|
| - const std::string& error_message);
|
| -
|
| - void GenerateKeyRequestInternal(EmeInitDataType init_data_type,
|
| - const std::vector<uint8_t>& init_data);
|
| -
|
| - // Callbacks for firing session events.
|
| - void OnSessionMessage(const std::string& session_id,
|
| - MediaKeys::MessageType message_type,
|
| - const std::vector<uint8_t>& message,
|
| - const GURL& legacy_destination_url);
|
| - void OnSessionKeysChange(const std::string& session_id,
|
| - bool has_additional_usable_key,
|
| - CdmKeysInfo keys_info);
|
| - void OnSessionExpirationUpdate(const std::string& session_id,
|
| - const base::Time& new_expiry_time);
|
| - void GenerateKeyAdded(const std::string& session_id);
|
| - void OnSessionClosed(const std::string& session_id);
|
| - void OnLegacySessionError(const std::string& session_id,
|
| - MediaKeys::Exception exception_code,
|
| - uint32_t system_code,
|
| - const std::string& error_message);
|
| -
|
| - // Callback for permission request.
|
| - void OnPermissionStatus(MediaKeys::SessionType session_type,
|
| - EmeInitDataType init_data_type,
|
| - const std::vector<uint8_t>& init_data,
|
| - scoped_ptr<NewSessionCdmPromise> promise,
|
| - bool granted);
|
| -
|
| - enum SessionCreationType {
|
| - TemporarySession,
|
| - PersistentSession,
|
| - LoadSession
|
| - };
|
| -
|
| - // Called when a session is actually created or loaded.
|
| - void SetSessionId(SessionCreationType session_type,
|
| - const std::string& session_id);
|
| -
|
| - struct PendingGenerateKeyRequestData {
|
| - PendingGenerateKeyRequestData(EmeInitDataType init_data_type,
|
| - const std::vector<uint8_t>& init_data);
|
| - ~PendingGenerateKeyRequestData();
|
| -
|
| - const EmeInitDataType init_data_type;
|
| - const std::vector<uint8_t> init_data;
|
| - };
|
| -
|
| - bool is_creating_cdm_;
|
| -
|
| - // The real MediaKeys that manages key operations for the ProxyDecryptor.
|
| - scoped_refptr<MediaKeys> media_keys_;
|
| -
|
| -#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
|
| - MediaPermission* media_permission_;
|
| -#endif
|
| -
|
| - bool use_hw_secure_codecs_;
|
| -
|
| - // Callbacks for firing key events.
|
| - KeyAddedCB key_added_cb_;
|
| - KeyErrorCB key_error_cb_;
|
| - KeyMessageCB key_message_cb_;
|
| -
|
| - std::string key_system_;
|
| - GURL security_origin_;
|
| -
|
| - // Keep track of both persistent and non-persistent sessions.
|
| - base::hash_map<std::string, bool> active_sessions_;
|
| -
|
| - bool is_clear_key_;
|
| -
|
| - ScopedVector<PendingGenerateKeyRequestData> pending_requests_;
|
| -
|
| - // NOTE: Weak pointers must be invalidated before all other member variables.
|
| - base::WeakPtrFactory<ProxyDecryptor> weak_ptr_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ProxyDecryptor);
|
| -};
|
| -
|
| -} // namespace media
|
| -
|
| -#endif // MEDIA_CDM_PROXY_DECRYPTOR_H_
|
|
|