Index: components/nacl/browser/nacl_host_message_filter.cc |
diff --git a/components/nacl/browser/nacl_host_message_filter.cc b/components/nacl/browser/nacl_host_message_filter.cc |
index 13498d758c918a1b8bbad356cbe9dc05a2570326..52c315e1628671b3e90dd1ece3964581adf6f6f4 100644 |
--- a/components/nacl/browser/nacl_host_message_filter.cc |
+++ b/components/nacl/browser/nacl_host_message_filter.cc |
@@ -4,12 +4,14 @@ |
#include "components/nacl/browser/nacl_host_message_filter.h" |
+#include "base/command_line.h" |
#include "base/sys_info.h" |
#include "components/nacl/browser/nacl_browser.h" |
#include "components/nacl/browser/nacl_file_host.h" |
#include "components/nacl/browser/nacl_process_host.h" |
#include "components/nacl/browser/pnacl_host.h" |
#include "components/nacl/common/nacl_host_messages.h" |
+#include "components/nacl/common/nacl_switches.h" |
#include "ipc/ipc_platform_file.h" |
#include "net/url_request/url_request_context.h" |
#include "net/url_request/url_request_context_getter.h" |
@@ -57,6 +59,8 @@ bool NaClHostMessageFilter::OnMessageReceived(const IPC::Message& message, |
OnOpenNaClExecutable) |
IPC_MESSAGE_HANDLER(NaClHostMsg_NaClGetNumProcessors, |
OnNaClGetNumProcessors) |
+ IPC_MESSAGE_HANDLER(NaClHostMsg_NaClIsNonSFIEnabled, |
+ OnNaClIsNonSFIEnabled) |
#endif |
IPC_MESSAGE_UNHANDLED(handled = false) |
IPC_END_MESSAGE_MAP() |
@@ -77,6 +81,7 @@ void NaClHostMessageFilter::OnLaunchNaCl( |
launch_params.render_view_id, |
launch_params.permission_bits, |
launch_params.uses_irt, |
+ launch_params.uses_nonsfi_mode, |
launch_params.enable_dyncode_syscalls, |
launch_params.enable_exception_handling, |
launch_params.enable_crash_throttling, |
@@ -138,10 +143,20 @@ void NaClHostMessageFilter::AsyncReturnTemporaryFile( |
IPC::GetFileHandleForProcess(fd, PeerHandle(), false))); |
} |
-void NaClHostMessageFilter::OnNaClGetNumProcessors(int *num_processors) { |
+void NaClHostMessageFilter::OnNaClGetNumProcessors(int* num_processors) { |
*num_processors = base::SysInfo::NumberOfProcessors(); |
} |
+void NaClHostMessageFilter::OnNaClIsNonSFIEnabled(bool* enabled) { |
+#if defined(OS_LINUX) |
+ // NonSFI mode is currently available only on Linux platform. |
+ *enabled = CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableNaClNonSfiMode); |
+#else |
+ *enabled = false; |
+#endif |
+} |
+ |
void NaClHostMessageFilter::OnGetNexeFd( |
int render_view_id, |
int pp_instance, |