Home | History | Annotate | Download | only in plugin
      1 // Copyright (c) 2014 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/native_client/src/trusted/plugin/ppapi_entrypoints.h"
      6 
      7 #include "ppapi/c/pp_errors.h"
      8 #include "ppapi/c/pp_module.h"
      9 #include "ppapi/c/ppb.h"
     10 #include "ppapi/cpp/module.h"
     11 #include "ppapi/cpp/private/internal_module.h"
     12 #include "ppapi/native_client/src/trusted/plugin/module_ppapi.h"
     13 
     14 namespace nacl_plugin {
     15 
     16 int32_t PPP_InitializeModule(PP_Module module_id,
     17                              PPB_GetInterface get_browser_interface) {
     18   plugin::ModulePpapi* module = new plugin::ModulePpapi();
     19   if (!module->InternalInit(module_id, get_browser_interface)) {
     20     delete module;
     21     return PP_ERROR_FAILED;
     22   }
     23 
     24   pp::InternalSetModuleSingleton(module);
     25   return PP_OK;
     26 }
     27 
     28 void PPP_ShutdownModule() {
     29   delete pp::Module::Get();
     30   pp::InternalSetModuleSingleton(NULL);
     31 }
     32 
     33 const void* PPP_GetInterface(const char* interface_name) {
     34   if (!pp::Module::Get())
     35     return NULL;
     36   return pp::Module::Get()->GetPluginInterface(interface_name);
     37 }
     38 
     39 }  // namespace nacl_plugin
     40