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/c/private/ppb_x509_certificate_private.h" 6 #include "ppapi/thunk/enter.h" 7 #include "ppapi/thunk/ppb_x509_certificate_private_api.h" 8 #include "ppapi/thunk/resource_creation_api.h" 9 #include "ppapi/thunk/thunk.h" 10 11 namespace ppapi { 12 namespace thunk { 13 14 namespace { 15 16 typedef EnterResource<PPB_X509Certificate_Private_API> 17 EnterX509CertificatePrivate; 18 19 PP_Resource Create(PP_Instance instance) { 20 EnterResourceCreation enter(instance); 21 if (enter.failed()) 22 return 0; 23 return enter.functions()->CreateX509CertificatePrivate(instance); 24 } 25 26 PP_Bool IsX509CertificatePrivate(PP_Resource resource) { 27 EnterX509CertificatePrivate enter(resource, false); 28 return PP_FromBool(enter.succeeded()); 29 } 30 31 PP_Bool Initialize(PP_Resource certificate, 32 const char *bytes, 33 uint32_t length) { 34 EnterX509CertificatePrivate enter(certificate, true); 35 if (enter.failed()) 36 return PP_FALSE; 37 return enter.object()->Initialize(bytes, length); 38 } 39 40 PP_Var GetField(PP_Resource certificate, 41 PP_X509Certificate_Private_Field field) { 42 EnterX509CertificatePrivate enter(certificate, true); 43 if (enter.failed()) 44 return PP_MakeUndefined(); 45 return enter.object()->GetField(field); 46 } 47 48 const PPB_X509Certificate_Private g_ppb_x509_certificate_thunk = { 49 &Create, 50 &IsX509CertificatePrivate, 51 &Initialize, 52 &GetField 53 }; 54 55 } // namespace 56 57 const PPB_X509Certificate_Private_0_1* 58 GetPPB_X509Certificate_Private_0_1_Thunk() { 59 return &g_ppb_x509_certificate_thunk; 60 } 61 62 } // namespace thunk 63 } // namespace ppapi 64