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 <cstdio> 6#include <cstdlib> 7#include <cstring> 8 9#include "native_client/src/include/nacl_macros.h" 10#include "native_client/src/shared/platform/nacl_check.h" 11#include "ppapi/c/pp_errors.h" 12#include "ppapi/c/pp_instance.h" 13#include "ppapi/c/pp_module.h" 14#include "ppapi/c/pp_var.h" 15#include "ppapi/c/ppb.h" 16#include "ppapi/c/ppp.h" 17#include "ppapi/c/ppp_instance.h" 18#include "ppapi/native_client/tests/ppapi_test_lib/test_interface.h" 19 20PP_EXPORT int32_t PPP_InitializeModule(PP_Module module_id, 21 PPB_GetInterface get_browser_interface) { 22 printf("PPP_InitializeModule\n"); 23 CRASH; 24 25 return PP_OK; 26} 27 28PP_EXPORT void PPP_ShutdownModule() { 29 printf("PPP_ShutdownModule\n"); 30} 31 32// Ensure that all other loading steps do not generate errors that might mask 33// a missing crash above. 34 35namespace { 36 37PP_Bool DidCreate(PP_Instance /*instance*/, 38 uint32_t /*argc*/, 39 const char* /*argn*/[], 40 const char* /*argv*/[]) { 41 return PP_TRUE; 42} 43 44void DidDestroy(PP_Instance /*instance*/) { 45} 46 47void DidChangeView(PP_Instance /*instance*/, PP_Resource /*view*/) { 48} 49 50void DidChangeFocus(PP_Instance /*instance*/, PP_Bool /*has_focus*/) { 51} 52 53PP_Bool HandleDocumentLoad(PP_Instance /*instance*/, PP_Resource /*loader*/) { 54 return PP_FALSE; 55} 56 57const PPP_Instance instance_interface = { 58 DidCreate, 59 DidDestroy, 60 DidChangeView, 61 DidChangeFocus, 62 HandleDocumentLoad 63}; 64 65} // namespace 66 67PP_EXPORT const void* PPP_GetInterface(const char* interface_name) { 68 printf("PPP_GetInterface\n"); 69 if (0 == std::strcmp(interface_name, PPP_INSTANCE_INTERFACE)) // Required. 70 return reinterpret_cast<const void*>(&instance_interface); 71 return NULL; 72} 73