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