1// Copyright (c) 2012 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#include "content/browser/renderer_host/pepper/pepper_message_filter.h"
6
7#include "base/logging.h"
8#include "content/browser/renderer_host/pepper/pepper_socket_utils.h"
9#include "content/public/common/content_client.h"
10#include "ppapi/proxy/ppapi_messages.h"
11
12namespace content {
13
14PepperMessageFilter::PepperMessageFilter()
15    : BrowserMessageFilter(PpapiMsgStart) {}
16
17PepperMessageFilter::~PepperMessageFilter() {}
18
19bool PepperMessageFilter::OnMessageReceived(const IPC::Message& msg) {
20  bool handled = true;
21  IPC_BEGIN_MESSAGE_MAP(PepperMessageFilter, msg)
22    IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBX509Certificate_ParseDER,
23                        OnX509CertificateParseDER)
24    IPC_MESSAGE_UNHANDLED(handled = false)
25  IPC_END_MESSAGE_MAP()
26  return handled;
27}
28
29void PepperMessageFilter::OnX509CertificateParseDER(
30    const std::vector<char>& der,
31    bool* succeeded,
32    ppapi::PPB_X509Certificate_Fields* result) {
33  *succeeded = (der.size() != 0 && pepper_socket_utils::GetCertificateFields(
34                                       &der[0], der.size(), result));
35}
36
37}  // namespace content
38