1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef COMPONENTS_CDM_BROWSER_CDM_MESSAGE_FILTER_ANDROID_H_
6#define COMPONENTS_CDM_BROWSER_CDM_MESSAGE_FILTER_ANDROID_H_
7
8#include "base/basictypes.h"
9#include "content/public/browser/browser_message_filter.h"
10
11struct SupportedKeySystemRequest;
12struct SupportedKeySystemResponse;
13
14namespace cdm {
15
16// Message filter for EME on android. It is responsible for getting the
17// SupportedKeySystems information and passing it back to renderer.
18class CdmMessageFilterAndroid
19    : public content::BrowserMessageFilter {
20 public:
21  CdmMessageFilterAndroid();
22
23 private:
24  virtual ~CdmMessageFilterAndroid();
25
26  // BrowserMessageFilter implementation.
27  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
28  virtual void OverrideThreadForMessage(
29      const IPC::Message& message,
30      content::BrowserThread::ID* thread) OVERRIDE;
31
32  // Query the key system information.
33  void OnQueryKeySystemSupport(const SupportedKeySystemRequest& request,
34                               SupportedKeySystemResponse* response);
35
36  void OnGetPlatformKeySystemNames(std::vector<std::string>* key_systems);
37
38  DISALLOW_COPY_AND_ASSIGN(CdmMessageFilterAndroid);
39};
40
41}  // namespace cdm
42
43#endif  // COMPONENTS_CDM_BROWSER_CDM_MESSAGE_FILTER_ANDROID_H_
44