ppb_x509_certificate_private_thunk.cc 1.7 KB

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