Index: content/common/sandbox_policy.cc |
diff --git a/content/common/sandbox_policy.cc b/content/common/sandbox_policy.cc |
index da359a8816b7443dc93c8b1fff1369a0d603a56e..91f2c83178711aa2779c5e9ee70923b0f79efca3 100644 |
--- a/content/common/sandbox_policy.cc |
+++ b/content/common/sandbox_policy.cc |
@@ -403,6 +403,14 @@ bool AddPolicyForRenderer(sandbox::TargetPolicy* policy) { |
if (result != sandbox::SBOX_ALL_OK) |
return false; |
+ // Renderers need to send named pipe handles and shared memory |
+ // segment handles to NaCl loader processes. |
+ result = policy->AddRule(sandbox::TargetPolicy::SUBSYS_HANDLES, |
+ sandbox::TargetPolicy::HANDLES_DUP_ANY, |
+ L"File"); |
+ if (result != sandbox::SBOX_ALL_OK) |
+ return false; |
+ |
policy->SetJobLevel(sandbox::JOB_LOCKDOWN, 0); |
sandbox::TokenLevel initial_token = sandbox::USER_UNPROTECTED; |
@@ -691,4 +699,8 @@ bool BrokerDuplicateHandle(HANDLE source_handle, |
return false; |
} |
+bool BrokerAddTargetPeer(HANDLE peer_process) { |
+ return g_broker_services->AddTargetPeer(peer_process) == sandbox::SBOX_ALL_OK; |
+} |
+ |
} // namespace content |