Index: ppapi/native_client/tests/ppapi_browser/bad/ppapi_bad_get_ppp_printing_crash.cc |
=================================================================== |
--- ppapi/native_client/tests/ppapi_browser/bad/ppapi_bad_get_ppp_printing_crash.cc (revision 0) |
+++ ppapi/native_client/tests/ppapi_browser/bad/ppapi_bad_get_ppp_printing_crash.cc (revision 0) |
@@ -0,0 +1,73 @@ |
+// Copyright (c) 2011 The Native Client Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <cstdio> |
+#include <cstdlib> |
+#include <cstring> |
+ |
+#include "native_client/src/shared/platform/nacl_check.h" |
+#include "native_client/tests/ppapi_test_lib/test_interface.h" |
+#include "ppapi/c/pp_errors.h" |
+#include "ppapi/c/pp_instance.h" |
+#include "ppapi/c/pp_module.h" |
+#include "ppapi/c/pp_var.h" |
+ |
+#include "ppapi/c/ppb.h" |
+#include "ppapi/c/ppp_instance.h" |
+#include "ppapi/c/dev/ppp_printing_dev.h" |
+#include "ppapi/c/ppp.h" |
+ |
+PP_EXPORT int32_t PPP_InitializeModule(PP_Module module_id, |
+ PPB_GetInterface get_browser_interface) { |
+ printf("PPP_InitializeModule\n"); |
+ return PP_OK; |
+} |
+ |
+PP_EXPORT void PPP_ShutdownModule() { |
+ printf("PPP_ShutdownModule\n"); |
+ fflush(stdout); |
+} |
+ |
+namespace { |
+ |
+PP_Bool DidCreate(PP_Instance /*instance*/, |
+ uint32_t /*argc*/, |
+ const char* /*argn*/[], |
+ const char* /*argv*/[]) { |
+ return PP_TRUE; |
+} |
+ |
+void DidDestroy(PP_Instance /*instance*/) { |
+} |
+ |
+void DidChangeView(PP_Instance /*instance*/, |
+ const struct PP_Rect* /*position*/, |
+ const struct PP_Rect* /*clip*/) { |
+} |
+ |
+void DidChangeFocus(PP_Instance /*instance*/, PP_Bool /*has_focus*/) { |
+} |
+ |
+PP_Bool HandleDocumentLoad(PP_Instance /*instance*/, PP_Resource /*loader*/) { |
+ return PP_FALSE; |
+} |
+ |
+const struct PPP_Instance instance_interface = { |
+ DidCreate, |
+ DidDestroy, |
+ DidChangeView, |
+ DidChangeFocus, |
+ HandleDocumentLoad |
+}; |
+ |
+} // namespace |
+ |
+PP_EXPORT const void* PPP_GetInterface(const char* interface_name) { |
+ printf("PPP_GetInterface(%s)\n", interface_name); |
+ if (0 == std::strcmp(interface_name, PPP_INSTANCE_INTERFACE)) // Required. |
+ return reinterpret_cast<const void*>(&instance_interface); |
+ if (0 == std::strcmp(interface_name, PPP_PRINTING_DEV_INTERFACE)) |
+ CRASH; |
+ return NULL; |
+} |