Index: content/browser/media/cdm/browser_cdm_manager.h |
diff --git a/content/browser/media/cdm/browser_cdm_manager.h b/content/browser/media/cdm/browser_cdm_manager.h |
deleted file mode 100644 |
index 51b03693d9d9498c5c97bca4191537d79d2dfeec..0000000000000000000000000000000000000000 |
--- a/content/browser/media/cdm/browser_cdm_manager.h |
+++ /dev/null |
@@ -1,218 +0,0 @@ |
-// Copyright 2014 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 CONTENT_BROWSER_MEDIA_CDM_BROWSER_CDM_MANAGER_H_ |
-#define CONTENT_BROWSER_MEDIA_CDM_BROWSER_CDM_MANAGER_H_ |
- |
-#include <stdint.h> |
- |
-#include <map> |
-#include <memory> |
-#include <string> |
-#include <vector> |
- |
-#include "base/callback.h" |
-#include "base/macros.h" |
-#include "base/memory/weak_ptr.h" |
-#include "content/common/content_export.h" |
-#include "content/common/media/cdm_messages.h" |
-#include "content/common/media/cdm_messages_enums.h" |
-#include "content/public/browser/browser_message_filter.h" |
-#include "ipc/ipc_message.h" |
-#include "media/base/cdm_promise.h" |
-#include "media/base/eme_constants.h" |
-#include "media/base/media_keys.h" |
-#include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h" |
-#include "url/gurl.h" |
- |
-struct CdmHostMsg_CreateSessionAndGenerateRequest_Params; |
- |
-namespace media { |
-class CdmFactory; |
-} |
- |
-namespace content { |
- |
-// This class manages all CDM objects. It receives control operations from the |
-// the render process, and forwards them to corresponding CDM object. Callbacks |
-// from CDM objects are converted to IPCs and then sent to the render process. |
-class CONTENT_EXPORT BrowserCdmManager : public BrowserMessageFilter { |
- public: |
- // Returns the BrowserCdmManager associated with the |render_process_id|. |
- // Returns NULL if no BrowserCdmManager is associated. |
- static BrowserCdmManager* FromProcess(int render_process_id); |
- |
- // Constructs the BrowserCdmManager for |render_process_id| which runs on |
- // |task_runner|. |
- // If |task_runner| is not NULL, all CDM messages are posted to it. Otherwise, |
- // all messages are posted to the browser UI thread. |
- BrowserCdmManager(int render_process_id, |
- const scoped_refptr<base::TaskRunner>& task_runner); |
- |
- // BrowserMessageFilter implementations. |
- void OnDestruct() const override; |
- base::TaskRunner* OverrideTaskRunnerForMessage( |
- const IPC::Message& message) override; |
- bool OnMessageReceived(const IPC::Message& message) override; |
- |
- // Returns the CDM associated with |render_frame_id| and |cdm_id|. Returns |
- // null if no such CDM exists. |
- scoped_refptr<media::MediaKeys> GetCdm(int render_frame_id, int cdm_id) const; |
- |
- // Notifies that the render frame has been deleted so that all CDMs belongs |
- // to this render frame needs to be destroyed as well. This is needed because |
- // in some cases (e.g. fast termination of the renderer), the message to |
- // destroy the CDM will not be received. |
- void RenderFrameDeleted(int render_frame_id); |
- |
- // Promise handlers. |
- void ResolvePromise(int render_frame_id, int cdm_id, uint32_t promise_id); |
- void ResolvePromiseWithSession(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- const std::string& session_id); |
- void RejectPromise(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- media::MediaKeys::Exception exception, |
- uint32_t system_code, |
- const std::string& error_message); |
- |
- protected: |
- friend class base::RefCountedThreadSafe<BrowserCdmManager>; |
- friend class base::DeleteHelper<BrowserCdmManager>; |
- ~BrowserCdmManager() override; |
- |
- private: |
- // Returns the CdmFactory that can be used to create CDMs. Returns null if |
- // CDM is not supported. |
- media::CdmFactory* GetCdmFactory(); |
- |
- // CDM callbacks. |
- void OnSessionMessage(int render_frame_id, |
- int cdm_id, |
- const std::string& session_id, |
- media::MediaKeys::MessageType message_type, |
- const std::vector<uint8_t>& message); |
- void OnSessionClosed(int render_frame_id, |
- int cdm_id, |
- const std::string& session_id); |
- void OnSessionKeysChange(int render_frame_id, |
- int cdm_id, |
- const std::string& session_id, |
- bool has_additional_usable_key, |
- media::CdmKeysInfo keys_info); |
- void OnSessionExpirationUpdate(int render_frame_id, |
- int cdm_id, |
- const std::string& session_id, |
- const base::Time& new_expiry_time); |
- |
- // Message handlers. |
- void OnInitializeCdm(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- const CdmHostMsg_InitializeCdm_Params& params); |
- void OnSetServerCertificate(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- const std::vector<uint8_t>& certificate); |
- void OnCreateSessionAndGenerateRequest( |
- const CdmHostMsg_CreateSessionAndGenerateRequest_Params& params); |
- void OnLoadSession( |
- int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- media::MediaKeys::SessionType session_type, |
- const std::string& session_id); |
- void OnUpdateSession(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- const std::string& session_id, |
- const std::vector<uint8_t>& response); |
- void OnCloseSession(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- const std::string& session_id); |
- void OnRemoveSession(int render_frame_id, |
- int cdm_id, |
- uint32_t promise_id, |
- const std::string& session_id); |
- void OnDestroyCdm(int render_frame_id, int cdm_id); |
- |
- // Callback for CDM creation. |
- void OnCdmCreated(int render_frame_id, |
- int cdm_id, |
- const GURL& security_origin, |
- std::unique_ptr<media::SimpleCdmPromise> promise, |
- const scoped_refptr<media::MediaKeys>& cdm, |
- const std::string& error_message); |
- |
- // Removes all CDMs associated with |render_frame_id|. |
- void RemoveAllCdmForFrame(int render_frame_id); |
- |
- // Removes the CDM with the specified id. |
- void RemoveCdm(uint64_t id); |
- |
- using PermissionStatusCB = base::Callback<void(bool)>; |
- |
- // Checks protected media identifier permission for the given |
- // |render_frame_id| and |cdm_id|. |
- void CheckPermissionStatus(int render_frame_id, |
- int cdm_id, |
- const PermissionStatusCB& permission_status_cb); |
- |
- // Checks permission status on Browser UI thread. Runs |permission_status_cb| |
- // on the |task_runner_| with the permission status. |
- void CheckPermissionStatusOnUIThread( |
- int render_frame_id, |
- const GURL& security_origin, |
- const PermissionStatusCB& permission_status_cb); |
- |
- // Calls CreateSessionAndGenerateRequest() on the CDM if |
- // |permission_was_allowed| is true. Otherwise rejects the |promise|. |
- void CreateSessionAndGenerateRequestIfPermitted( |
- int render_frame_id, |
- int cdm_id, |
- media::MediaKeys::SessionType session_type, |
- media::EmeInitDataType init_data_type, |
- const std::vector<uint8_t>& init_data, |
- std::unique_ptr<media::NewSessionCdmPromise> promise, |
- bool permission_was_allowed); |
- |
- // Calls LoadSession() on the CDM if |permission_was_allowed| is true. |
- // Otherwise rejects |promise|. |
- void LoadSessionIfPermitted( |
- int render_frame_id, |
- int cdm_id, |
- media::MediaKeys::SessionType session_type, |
- const std::string& session_id, |
- std::unique_ptr<media::NewSessionCdmPromise> promise, |
- bool permission_was_allowed); |
- |
- const int render_process_id_; |
- |
- // TaskRunner to dispatch all CDM messages to. If it's NULL, all messages are |
- // dispatched to the browser UI thread. |
- scoped_refptr<base::TaskRunner> task_runner_; |
- |
- std::unique_ptr<media::CdmFactory> cdm_factory_; |
- |
- // The key in the following maps is a combination of |render_frame_id| and |
- // |cdm_id|. |
- |
- // Map of managed CDMs. |
- typedef std::map<uint64_t, scoped_refptr<media::MediaKeys>> CdmMap; |
- CdmMap cdm_map_; |
- |
- // Map of CDM's security origin. |
- std::map<uint64_t, GURL> cdm_security_origin_map_; |
- |
- base::WeakPtrFactory<BrowserCdmManager> weak_ptr_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BrowserCdmManager); |
-}; |
- |
-} // namespace content |
- |
-#endif // CONTENT_BROWSER_MEDIA_CDM_BROWSER_CDM_MANAGER_H_ |