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) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef COMPONENTS_CDM_BROWSER_CDM_MESSAGE_FILTER_ANDROID_H_ 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define COMPONENTS_CDM_BROWSER_CDM_MESSAGE_FILTER_ANDROID_H_ 7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "base/basictypes.h" 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "content/public/browser/browser_message_filter.h" 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 11d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)struct SupportedKeySystemRequest; 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)struct SupportedKeySystemResponse; 13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace cdm { 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Message filter for EME on android. It is responsible for getting the 17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// SupportedKeySystems information and passing it back to renderer. 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class CdmMessageFilterAndroid 19d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) : public content::BrowserMessageFilter { 20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) public: 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) CdmMessageFilterAndroid(); 22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) private: 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual ~CdmMessageFilterAndroid(); 25d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // BrowserMessageFilter implementation. 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 28d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual void OverrideThreadForMessage( 29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) const IPC::Message& message, 30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) content::BrowserThread::ID* thread) OVERRIDE; 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // Query the key system information. 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void OnQueryKeySystemSupport(const SupportedKeySystemRequest& request, 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) SupportedKeySystemResponse* response); 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void OnGetPlatformKeySystemNames(std::vector<std::string>* key_systems); 37d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(CdmMessageFilterAndroid); 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)}; 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace cdm 42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif // COMPONENTS_CDM_BROWSER_CDM_MESSAGE_FILTER_ANDROID_H_ 44