Index: ppapi/nacl_irt/irt_ppapi.cc |
diff --git a/ppapi/nacl_irt/irt_ppapi.cc b/ppapi/nacl_irt/irt_ppapi.cc |
index b56fc8c76660b8076b53993b4cc625997002cd65..ce17f8a1ef5de9e33be84f49c61aa3e523b5d660 100644 |
--- a/ppapi/nacl_irt/irt_ppapi.cc |
+++ b/ppapi/nacl_irt/irt_ppapi.cc |
@@ -4,6 +4,7 @@ |
#include <unistd.h> |
+#include "build/build_config.h" |
#include "native_client/src/public/irt_core.h" |
#include "native_client/src/trusted/service_runtime/include/sys/unistd.h" |
#include "native_client/src/untrusted/irt/irt.h" |
@@ -17,8 +18,13 @@ |
static struct PP_StartFunctions g_pp_functions; |
int irt_ppapi_start(const struct PP_StartFunctions* funcs) { |
+#if !defined(OS_NACL_NONSFI) |
// Disable NaCl's open_resource() interface on this thread. |
+ // TODO(hidehiko): This flag is no longer used because, even in SFI mode, |
+ // we switched from SRPC to Chrome IPC for open_resource() implementation. |
+ // Remove this flag. |
g_is_main_thread = 1; |
+#endif |
g_pp_functions = *funcs; |
return PpapiPluginMain(); |
@@ -42,32 +48,46 @@ static const struct nacl_irt_ppapihook nacl_irt_ppapihook = { |
PpapiPluginRegisterThreadCreator, |
}; |
+#if defined(OS_NACL_SFI) |
static int ppapihook_pnacl_private_filter(void) { |
int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE); |
if (pnacl_mode == -1) |
return 0; |
return pnacl_mode; |
} |
+#endif |
static const nacl_irt_resource_open kIrtResourceOpen = { |
ppapi::IrtOpenResource, |
}; |
+#if defined(OS_NACL_SFI) |
static int not_pnacl_filter(void) { |
int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE); |
if (pnacl_mode == -1) |
return 0; |
return !pnacl_mode; |
} |
+#endif |
static const struct nacl_irt_interface irt_interfaces[] = { |
{ NACL_IRT_PPAPIHOOK_v0_1, &nacl_irt_ppapihook, sizeof(nacl_irt_ppapihook), |
NULL }, |
+#if defined(OS_NACL_SFI) |
{ NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1, |
&nacl_irt_ppapihook_pnacl_private, sizeof(nacl_irt_ppapihook_pnacl_private), |
ppapihook_pnacl_private_filter }, |
+#endif |
{ NACL_IRT_RESOURCE_OPEN_v0_1, &kIrtResourceOpen, |
- sizeof(kIrtResourceOpen), not_pnacl_filter }, |
+ sizeof(kIrtResourceOpen), |
+#if defined(OS_NACL_SFI) |
+ not_pnacl_filter, |
+#else |
+ // If we change PNaCl to use Non-SFI Mode on the open web, |
+ // we should add a filter here. |
+ NULL, |
+#endif |
+ }, |
}; |
size_t chrome_irt_query(const char* interface_ident, |