We started redesigning GpuMemoryBuffer interface to handle multiple buffers [0].
[chromium-blink-merge.git] / content / common / media / cdm_messages.h
bloba48b0b4cc6a6eeca3d3c7a2a32e5b997755858a0
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.
5 // IPC messages for content decryption module (CDM) implementation.
6 // Multiply-included message file, hence no include guard.
8 #include <string>
9 #include <vector>
11 #include "base/basictypes.h"
12 #include "content/common/content_export.h"
13 #include "content/common/media/cdm_messages_enums.h"
14 #include "ipc/ipc_message_macros.h"
15 #include "media/base/cdm_key_information.h"
16 #include "media/base/media_keys.h"
17 #include "url/gurl.h"
19 #undef IPC_MESSAGE_EXPORT
20 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
21 #define IPC_MESSAGE_START CdmMsgStart
23 IPC_ENUM_TRAITS_MAX_VALUE(media::CdmKeyInformation::KeyStatus,
24 media::CdmKeyInformation::KEY_STATUS_MAX)
25 IPC_ENUM_TRAITS_MAX_VALUE(media::MediaKeys::Exception,
26 media::MediaKeys::EXCEPTION_MAX)
27 IPC_ENUM_TRAITS_MAX_VALUE(media::MediaKeys::MessageType,
28 media::MediaKeys::MESSAGE_TYPE_MAX)
29 IPC_ENUM_TRAITS_MAX_VALUE(CdmHostMsg_CreateSession_InitDataType,
30 INIT_DATA_TYPE_MAX)
32 IPC_STRUCT_TRAITS_BEGIN(media::CdmKeyInformation)
33 IPC_STRUCT_TRAITS_MEMBER(key_id)
34 IPC_STRUCT_TRAITS_MEMBER(status)
35 IPC_STRUCT_TRAITS_MEMBER(system_code)
36 IPC_STRUCT_TRAITS_END()
38 // Messages from render to browser.
40 IPC_MESSAGE_CONTROL4(CdmHostMsg_InitializeCdm,
41 int /* render_frame_id */,
42 int /* cdm_id */,
43 std::string /* key_system */,
44 GURL /* security_origin */)
46 IPC_MESSAGE_CONTROL4(CdmHostMsg_SetServerCertificate,
47 int /* render_frame_id */,
48 int /* cdm_id */,
49 uint32_t /* promise_id */,
50 std::vector<uint8_t> /* certificate */)
52 IPC_MESSAGE_CONTROL5(CdmHostMsg_CreateSessionAndGenerateRequest,
53 int /* render_frame_id */,
54 int /* cdm_id */,
55 uint32_t /* promise_id */,
56 CdmHostMsg_CreateSession_InitDataType /* init_data_type */,
57 std::vector<uint8_t> /* init_data */)
59 IPC_MESSAGE_CONTROL5(CdmHostMsg_UpdateSession,
60 int /* render_frame_id */,
61 int /* cdm_id */,
62 uint32_t /* promise_id */,
63 std::string /* session_id */,
64 std::vector<uint8_t> /* response */)
66 IPC_MESSAGE_CONTROL4(CdmHostMsg_CloseSession,
67 int /* render_frame_id */,
68 int /* cdm_id */,
69 uint32_t /* promise_id */,
70 std::string /* session_id */)
72 IPC_MESSAGE_CONTROL2(CdmHostMsg_DestroyCdm,
73 int /* render_frame_id */,
74 int /* cdm_id */)
76 // Messages from browser to render.
78 IPC_MESSAGE_ROUTED5(CdmMsg_SessionMessage,
79 int /* cdm_id */,
80 std::string /* session_id */,
81 media::MediaKeys::MessageType /* message_type */,
82 std::vector<uint8_t> /* message */,
83 GURL /* legacy_destination_url */)
85 IPC_MESSAGE_ROUTED2(CdmMsg_SessionClosed,
86 int /* cdm_id */,
87 std::string /* session_id */)
89 IPC_MESSAGE_ROUTED5(CdmMsg_LegacySessionError,
90 int /* cdm_id */,
91 std::string /* session_id */,
92 media::MediaKeys::Exception /* exception_code */,
93 uint32_t /* system_code */,
94 std::string /* error_message */)
96 IPC_MESSAGE_ROUTED4(CdmMsg_SessionKeysChange,
97 int /* cdm_id */,
98 std::string /* session_id */,
99 bool /* has_additional_usable_key */,
100 std::vector<media::CdmKeyInformation> /* keys_info */)
102 IPC_MESSAGE_ROUTED3(CdmMsg_SessionExpirationUpdate,
103 int /* cdm_id */,
104 std::string /* session_id */,
105 base::Time /* new_expiry_time */)
107 IPC_MESSAGE_ROUTED2(CdmMsg_ResolvePromise,
108 int /* cdm_id */,
109 uint32_t /* promise_id */)
111 IPC_MESSAGE_ROUTED3(CdmMsg_ResolvePromiseWithSession,
112 int /* cdm_id */,
113 uint32_t /* promise_id */,
114 std::string /* session_id */)
116 IPC_MESSAGE_ROUTED5(CdmMsg_RejectPromise,
117 int /* cdm_id */,
118 uint32_t /* promise_id */,
119 media::MediaKeys::Exception /* exception */,
120 uint32_t /* system_code */,
121 std::string /* error_message */)