1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// found in the LICENSE file.
4d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// IPC messages for EME on android.
6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Multiply-included message file, hence no include guard.
7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include <vector>
9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "content/public/common/eme_codec.h"
11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ipc/ipc_message_macros.h"
12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#define IPC_MESSAGE_START EncryptedMediaMsgStart
14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)IPC_STRUCT_BEGIN(SupportedKeySystemRequest)
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  IPC_STRUCT_MEMBER(std::string, key_system)
175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  IPC_STRUCT_MEMBER(content::SupportedCodecs, codecs, content::EME_CODEC_NONE)
1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)IPC_STRUCT_END()
19d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)IPC_STRUCT_BEGIN(SupportedKeySystemResponse)
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  IPC_STRUCT_MEMBER(std::string, key_system)
225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  IPC_STRUCT_MEMBER(content::SupportedCodecs,
235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    compositing_codecs,
245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    content::EME_CODEC_NONE)
255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  IPC_STRUCT_MEMBER(content::SupportedCodecs,
265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    non_compositing_codecs,
275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                    content::EME_CODEC_NONE)
2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)IPC_STRUCT_END()
29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Messages sent from the renderer to the browser.
31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Synchronously query key system information. If the key system is supported,
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// the response will be populated.
34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL1_1(
35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    ChromeViewHostMsg_QueryKeySystemSupport,
3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    SupportedKeySystemRequest /* key system information request */,
3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    SupportedKeySystemResponse /* key system information response */)
38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Synchronously get a list of platform-supported EME key system names that
40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// are not explicitly handled by Chrome.
41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL0_1(
42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    ChromeViewHostMsg_GetPlatformKeySystemNames,
43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    std::vector<std::string> /* key system names */)
44