- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / native_client / tests / ppapi_browser / bad / ppapi_bad_ppp_initialize_crash.cc
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
20 PP_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
28 PP_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
35 namespace {
36
37 PP_Bool DidCreate(PP_Instance /*instance*/,
38                   uint32_t /*argc*/,
39                   const char* /*argn*/[],
40                   const char* /*argv*/[]) {
41   return PP_TRUE;
42 }
43
44 void DidDestroy(PP_Instance /*instance*/) {
45 }
46
47 void DidChangeView(PP_Instance /*instance*/, PP_Resource /*view*/) {
48 }
49
50 void DidChangeFocus(PP_Instance /*instance*/, PP_Bool /*has_focus*/) {
51 }
52
53 PP_Bool HandleDocumentLoad(PP_Instance /*instance*/, PP_Resource /*loader*/) {
54   return PP_FALSE;
55 }
56
57 const PPP_Instance instance_interface = {
58   DidCreate,
59   DidDestroy,
60   DidChangeView,
61   DidChangeFocus,
62   HandleDocumentLoad
63 };
64
65 }  // namespace
66
67 PP_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 }