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 12 namespace ppapi { 13 namespace proxy { 14 15 namespace { 16 17 class 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 X509CertificatePrivate(PP_Instance instance)31X509CertificatePrivate::X509CertificatePrivate(PP_Instance instance) 32 : PPB_X509Certificate_Private_Shared(OBJECT_IS_PROXY, instance) { 33 } 34 ~X509CertificatePrivate()35X509CertificatePrivate::~X509CertificatePrivate() { 36 } 37 ParseDER(const std::vector<char> & der,PPB_X509Certificate_Fields * result)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 SendToBrowser(IPC::Message * msg)46void X509CertificatePrivate::SendToBrowser(IPC::Message* msg) { 47 PluginGlobals::Get()->GetBrowserSender()->Send(msg); 48 } 49 50 } // namespace 51 52 //------------------------------------------------------------------------------ 53 PPB_X509Certificate_Private_Proxy(Dispatcher * dispatcher)54PPB_X509Certificate_Private_Proxy::PPB_X509Certificate_Private_Proxy( 55 Dispatcher* dispatcher) 56 : InterfaceProxy(dispatcher) { 57 } 58 ~PPB_X509Certificate_Private_Proxy()59PPB_X509Certificate_Private_Proxy::~PPB_X509Certificate_Private_Proxy() { 60 } 61 62 // static CreateProxyResource(PP_Instance instance)63PP_Resource PPB_X509Certificate_Private_Proxy::CreateProxyResource( 64 PP_Instance instance) { 65 return (new X509CertificatePrivate(instance))->GetReference(); 66 } 67 OnMessageReceived(const IPC::Message & msg)68bool PPB_X509Certificate_Private_Proxy::OnMessageReceived( 69 const IPC::Message& msg) { 70 return false; 71 } 72 73 } // namespace proxy 74 } // namespace ppapi 75