| 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,
|
|
|