Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Side by Side Diff: content/renderer/media/crypto/renderer_cdm_manager.h

Issue 295103015: Separate RendererCdmManager from RendererMediaPlayerManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase again Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CONTENT_RENDERER_MEDIA_CRYPTO_RENDERER_CDM_MANAGER_H_
6 #define CONTENT_RENDERER_MEDIA_CRYPTO_RENDERER_CDM_MANAGER_H_
7
8 #include <map>
9 #include <string>
10 #include <vector>
11
12 #include "base/basictypes.h"
13 #include "content/common/media/cdm_messages_enums.h"
14 #include "content/public/renderer/render_frame_observer.h"
15 #include "media/base/media_keys.h"
16 #include "url/gurl.h"
17
18 namespace blink {
19 class WebFrame;
20 }
21
22 namespace content {
23
24 class ProxyMediaKeys;
25
26 // Class for managing all the WebMediaPlayerAndroid objects in the same
damienv1 2014/05/28 13:26:03 Comment should be updated.
xhwang 2014/05/28 21:17:09 Done.
27 // RenderView.
28 class RendererCdmManager : public RenderFrameObserver {
29 public:
30 static const int kInvalidCdmId = 0;
31
32 // Constructs a RendererCdmManager object for the |render_frame|.
33 explicit RendererCdmManager(RenderFrame* render_frame);
34 virtual ~RendererCdmManager();
35
36 // RenderFrameObserver overrides.
37 virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
38
39 // Encrypted media related methods.
40 void InitializeCdm(int cdm_id,
41 ProxyMediaKeys* media_keys,
42 const std::string& key_system,
43 const GURL& security_origin);
44 void CreateSession(int cdm_id,
45 uint32 session_id,
46 CdmHostMsg_CreateSession_ContentType conent_type,
47 const std::vector<uint8>& init_data);
48 void UpdateSession(int cdm_id,
49 uint32 session_id,
50 const std::vector<uint8>& response);
51 void ReleaseSession(int cdm_id, uint32 session_id);
52 void DestroyCdm(int cdm_id);
53
54 // Registers a ProxyMediaKeys object. There must be a WebMediaPlayerAndroid
damienv1 2014/05/28 13:26:03 Comment should be updated.
xhwang 2014/05/28 21:17:09 Done.
55 // object already registered for this id, and it is unregistered when the
56 // player is unregistered. For now |cdm_id| is the same as player_id
57 // used in other methods.
58 void RegisterMediaKeys(int cdm_id, ProxyMediaKeys* media_keys);
59
60 // Gets the pointer to ProxyMediaKeys given the |cdm_id|.
61 ProxyMediaKeys* GetMediaKeys(int cdm_id);
62
63 private:
64 // Message handlers.
65 void OnSessionCreated(int cdm_id,
66 uint32 session_id,
67 const std::string& web_session_id);
68 void OnSessionMessage(int cdm_id,
69 uint32 session_id,
70 const std::vector<uint8>& message,
71 const GURL& destination_url);
72 void OnSessionReady(int cdm_id, uint32 session_id);
73 void OnSessionClosed(int cdm_id, uint32 session_id);
74 void OnSessionError(int cdm_id,
75 uint32 session_id,
76 media::MediaKeys::KeyError error_code,
77 uint32 system_code);
78
79 // Info for all available ProxyMediaKeys. There must be at most one
80 // ProxyMediaKeys for each available WebMediaPlayerAndroid.
damienv1 2014/05/28 14:16:06 ditto.
xhwang 2014/05/28 21:17:09 Done.
81 std::map<int, ProxyMediaKeys*> proxy_media_keys_map_;
82
83 DISALLOW_COPY_AND_ASSIGN(RendererCdmManager);
84 };
85
86 } // namespace content
87
88 #endif // CONTENT_RENDERER_MEDIA_CRYPTO_RENDERER_CDM_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698