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 "ppapi/proxy/ppb_x509_certificate_private_proxy.h"
6
7#include "ppapi/c/private/ppb_x509_certificate_private.h"
8#include "ppapi/proxy/plugin_globals.h"
9#include "ppapi/proxy/ppapi_messages.h"
10#include "ppapi/shared_impl/private/ppb_x509_certificate_private_shared.h"
11
12namespace ppapi {
13namespace proxy {
14
15namespace {
16
17class X509CertificatePrivate : public PPB_X509Certificate_Private_Shared {
18 public:
19  X509CertificatePrivate(PP_Instance instance);
20  virtual ~X509CertificatePrivate();
21
22  virtual bool ParseDER(const std::vector<char>& der,
23                        PPB_X509Certificate_Fields* result) OVERRIDE;
24
25 private:
26  void SendToBrowser(IPC::Message* msg);
27
28  DISALLOW_COPY_AND_ASSIGN(X509CertificatePrivate);
29};
30
31X509CertificatePrivate::X509CertificatePrivate(PP_Instance instance)
32    : PPB_X509Certificate_Private_Shared(OBJECT_IS_PROXY, instance) {
33}
34
35X509CertificatePrivate::~X509CertificatePrivate() {
36}
37
38bool X509CertificatePrivate::ParseDER(const std::vector<char>& der,
39                                      PPB_X509Certificate_Fields* result) {
40  bool succeeded = false;
41  SendToBrowser(
42      new PpapiHostMsg_PPBX509Certificate_ParseDER(der, &succeeded, result));
43  return succeeded;
44}
45
46void X509CertificatePrivate::SendToBrowser(IPC::Message* msg) {
47  PluginGlobals::Get()->GetBrowserSender()->Send(msg);
48}
49
50}  // namespace
51
52//------------------------------------------------------------------------------
53
54PPB_X509Certificate_Private_Proxy::PPB_X509Certificate_Private_Proxy(
55    Dispatcher* dispatcher)
56    : InterfaceProxy(dispatcher) {
57}
58
59PPB_X509Certificate_Private_Proxy::~PPB_X509Certificate_Private_Proxy() {
60}
61
62// static
63PP_Resource PPB_X509Certificate_Private_Proxy::CreateProxyResource(
64    PP_Instance instance) {
65  return (new X509CertificatePrivate(instance))->GetReference();
66}
67
68bool PPB_X509Certificate_Private_Proxy::OnMessageReceived(
69    const IPC::Message& msg) {
70  return false;
71}
72
73}  // namespace proxy
74}  // namespace ppapi
75