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 11namespace ppapi { 12namespace thunk { 13 14namespace { 15 16typedef EnterResource<PPB_X509Certificate_Private_API> 17 EnterX509CertificatePrivate; 18 19PP_Resource Create(PP_Instance instance) { 20 EnterResourceCreation enter(instance); 21 if (enter.failed()) 22 return 0; 23 return enter.functions()->CreateX509CertificatePrivate(instance); 24} 25 26PP_Bool IsX509CertificatePrivate(PP_Resource resource) { 27 EnterX509CertificatePrivate enter(resource, false); 28 return PP_FromBool(enter.succeeded()); 29} 30 31PP_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 40PP_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 48const PPB_X509Certificate_Private g_ppb_x509_certificate_thunk = { 49 &Create, 50 &IsX509CertificatePrivate, 51 &Initialize, 52 &GetField 53}; 54 55} // namespace 56 57const PPB_X509Certificate_Private_0_1* 58GetPPB_X509Certificate_Private_0_1_Thunk() { 59 return &g_ppb_x509_certificate_thunk; 60} 61 62} // namespace thunk 63} // namespace ppapi 64