Chromium Code Reviews| Index: ppapi/nacl_irt/irt_ppapi.cc |
| diff --git a/ppapi/nacl_irt/irt_ppapi.cc b/ppapi/nacl_irt/irt_ppapi.cc |
| index 1d41f518c4fabd535979bc1c240734fa06acfb7a..e7b6f64a6ebd3ba0accebfd9caefd3ede7c0e2de 100644 |
| --- a/ppapi/nacl_irt/irt_ppapi.cc |
| +++ b/ppapi/nacl_irt/irt_ppapi.cc |
| @@ -6,6 +6,7 @@ |
| #include "native_client/src/trusted/service_runtime/include/sys/unistd.h" |
| #include "native_client/src/untrusted/irt/irt.h" |
| #include "native_client/src/untrusted/irt/irt_private.h" |
| +#include "ppapi/nacl_irt/irt_manifest.h" |
| #include "ppapi/nacl_irt/irt_ppapi.h" |
| #include "ppapi/nacl_irt/plugin_main.h" |
| #include "ppapi/nacl_irt/public/irt_ppapi.h" |
| @@ -46,19 +47,34 @@ static int ppapihook_pnacl_private_filter(void) { |
| return pnacl_mode; |
| } |
| +const nacl_irt_resource_open kIrtResourceOpen = { |
| + ppapi::IrtOpenResource, |
| +}; |
| + |
| +static int ppapihook_not_pnacl_private_filter(void) { |
|
Mark Seaborn
2014/07/25 22:06:35
Nit: remove "ppapihook" from the name. "not_pnacl
|
| + int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE); |
| + if (pnacl_mode == -1) |
| + return 0; |
| + return !pnacl_mode; |
| +} |
| + |
| static const struct nacl_irt_interface irt_interfaces[] = { |
| { NACL_IRT_PPAPIHOOK_v0_1, &nacl_irt_ppapihook, sizeof(nacl_irt_ppapihook), |
| NULL }, |
| { NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1, |
| &nacl_irt_ppapihook_pnacl_private, sizeof(nacl_irt_ppapihook_pnacl_private), |
| ppapihook_pnacl_private_filter }, |
| + // The Chromium implementation of NACL_IRT_RESOURCE_OPEN_v0_1 takes |
| + // precedence over the one supplied by NaCl (which is SRPC-based). |
|
Mark Seaborn
2014/07/25 22:06:35
You could omit this comment so that we don't have
|
| + { NACL_IRT_RESOURCE_OPEN_v0_1, &kIrtResourceOpen, |
| + sizeof(kIrtResourceOpen), ppapihook_not_pnacl_private_filter }, |
| }; |
| size_t chrome_irt_query(const char* interface_ident, |
| void* table, size_t tablesize) { |
| - size_t result = nacl_irt_query_core(interface_ident, table, tablesize); |
| + size_t result = nacl_irt_query_list(interface_ident, table, tablesize, |
| + irt_interfaces, sizeof(irt_interfaces)); |
| if (result != 0) |
| return result; |
| - return nacl_irt_query_list(interface_ident, table, tablesize, |
| - irt_interfaces, sizeof(irt_interfaces)); |
| + return nacl_irt_query_core(interface_ident, table, tablesize); |
| } |