1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file. 4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// IPC messages for content decryption module (CDM) implementation. 6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Multiply-included message file, hence no include guard. 7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include <string> 9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include <vector> 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/basictypes.h" 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "content/common/content_export.h" 13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "content/common/media/cdm_messages_enums.h" 14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ipc/ipc_message_macros.h" 15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "media/base/media_keys.h" 16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "url/gurl.h" 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#undef IPC_MESSAGE_EXPORT 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define IPC_MESSAGE_EXPORT CONTENT_EXPORT 20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define IPC_MESSAGE_START CdmMsgStart 21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_ENUM_TRAITS(media::MediaKeys::KeyError) 23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_ENUM_TRAITS(CdmHostMsg_CreateSession_ContentType) 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Messages from render to browser. 26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL4(CdmHostMsg_InitializeCdm, 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* render_frame_id */, 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* cdm_id */, 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::string /* key_system */, 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci GURL /* security_origin */) 32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL5(CdmHostMsg_CreateSession, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* render_frame_id */, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* cdm_id */, 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci uint32_t /* session_id */, 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci CdmHostMsg_CreateSession_ContentType /* content_type */, 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::vector<uint8> /* init_data */) 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL4(CdmHostMsg_UpdateSession, 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* render_frame_id */, 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* cdm_id */, 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci uint32_t /* session_id */, 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::vector<uint8> /* response */) 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL3(CdmHostMsg_ReleaseSession, 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* render_frame_id */, 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* cdm_id */, 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci uint32_t /* session_id */) 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciIPC_MESSAGE_CONTROL2(CdmHostMsg_DestroyCdm, 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* render_frame_id */, 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int /* cdm_id */) 54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Messages from browser to render. 56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 57a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_MESSAGE_ROUTED3(CdmMsg_SessionCreated, 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int /* cdm_id */, 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) uint32_t /* session_id */, 60a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) std::string /* web_session_id */) 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_MESSAGE_ROUTED4(CdmMsg_SessionMessage, 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int /* cdm_id */, 64a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) uint32_t /* session_id */, 65a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) std::vector<uint8> /* message */, 66a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) GURL /* destination_url */) 67a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_MESSAGE_ROUTED2(CdmMsg_SessionReady, 69a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int /* cdm_id */, 70a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) uint32_t /* session_id */) 71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 72a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_MESSAGE_ROUTED2(CdmMsg_SessionClosed, 73a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int /* cdm_id */, 74a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) uint32_t /* session_id */) 75a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 76a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)IPC_MESSAGE_ROUTED4(CdmMsg_SessionError, 77a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int /* cdm_id */, 78a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) uint32_t /* session_id */, 79a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) media::MediaKeys::KeyError /* error_code */, 80a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) uint32_t /* system_code */) 81