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