OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/nacl/renderer/ppb_nacl_private_impl.h" | 5 #include "components/nacl/renderer/ppb_nacl_private_impl.h" |
6 | 6 |
7 #ifndef DISABLE_NACL | 7 #ifndef DISABLE_NACL |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 70 |
71 base::LazyInstance<InstanceInfoMap> g_instance_info = | 71 base::LazyInstance<InstanceInfoMap> g_instance_info = |
72 LAZY_INSTANCE_INITIALIZER; | 72 LAZY_INSTANCE_INITIALIZER; |
73 | 73 |
74 typedef std::map<PP_Instance, nacl::TrustedPluginChannel*> | 74 typedef std::map<PP_Instance, nacl::TrustedPluginChannel*> |
75 InstanceTrustedChannelMap; | 75 InstanceTrustedChannelMap; |
76 | 76 |
77 base::LazyInstance<InstanceTrustedChannelMap> g_channel_map = | 77 base::LazyInstance<InstanceTrustedChannelMap> g_channel_map = |
78 LAZY_INSTANCE_INITIALIZER; | 78 LAZY_INSTANCE_INITIALIZER; |
79 | 79 |
80 base::WaitableEvent* g_shutdown_event; | |
81 | |
82 void HistogramEnumerate(const std::string& name, | 80 void HistogramEnumerate(const std::string& name, |
83 int32_t sample, | 81 int32_t sample, |
84 int32_t boundary_value) { | 82 int32_t boundary_value) { |
85 base::HistogramBase* counter = | 83 base::HistogramBase* counter = |
86 base::LinearHistogram::FactoryGet( | 84 base::LinearHistogram::FactoryGet( |
87 name, | 85 name, |
88 1, | 86 1, |
89 boundary_value, | 87 boundary_value, |
90 boundary_value + 1, | 88 boundary_value + 1, |
91 base::HistogramBase::kUmaTargetedHistogramFlag); | 89 base::HistogramBase::kUmaTargetedHistogramFlag); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 if (!invalid_handle) | 186 if (!invalid_handle) |
189 g_instance_info.Get()[instance] = instance_info; | 187 g_instance_info.Get()[instance] = instance_info; |
190 | 188 |
191 // Stash the trusted handle as well. | 189 // Stash the trusted handle as well. |
192 invalid_handle = launch_result.trusted_ipc_channel_handle.name.empty(); | 190 invalid_handle = launch_result.trusted_ipc_channel_handle.name.empty(); |
193 #if defined(OS_POSIX) | 191 #if defined(OS_POSIX) |
194 if (!invalid_handle) | 192 if (!invalid_handle) |
195 invalid_handle = (launch_result.trusted_ipc_channel_handle.socket.fd == -1); | 193 invalid_handle = (launch_result.trusted_ipc_channel_handle.socket.fd == -1); |
196 #endif | 194 #endif |
197 if (!invalid_handle) { | 195 if (!invalid_handle) { |
198 if (g_shutdown_event == NULL) | |
199 g_shutdown_event = new base::WaitableEvent(true, false); | |
200 g_channel_map.Get()[instance] = new nacl::TrustedPluginChannel( | 196 g_channel_map.Get()[instance] = new nacl::TrustedPluginChannel( |
201 launch_result.trusted_ipc_channel_handle, callback, g_shutdown_event); | 197 launch_result.trusted_ipc_channel_handle, callback, |
| 198 content::RenderThread::Get()->GetShutdownEvent()); |
202 } | 199 } |
203 | 200 |
204 *(static_cast<NaClHandle*>(imc_handle)) = | 201 *(static_cast<NaClHandle*>(imc_handle)) = |
205 nacl::ToNativeHandle(result_socket); | 202 nacl::ToNativeHandle(result_socket); |
206 } | 203 } |
207 | 204 |
208 PP_ExternalPluginResult StartPpapiProxy(PP_Instance instance) { | 205 PP_ExternalPluginResult StartPpapiProxy(PP_Instance instance) { |
209 InstanceInfoMap& map = g_instance_info.Get(); | 206 InstanceInfoMap& map = g_instance_info.Get(); |
210 InstanceInfoMap::iterator it = map.find(instance); | 207 InstanceInfoMap::iterator it = map.find(instance); |
211 if (it == map.end()) { | 208 if (it == map.end()) { |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 | 559 |
563 namespace nacl { | 560 namespace nacl { |
564 | 561 |
565 const PPB_NaCl_Private* GetNaClPrivateInterface() { | 562 const PPB_NaCl_Private* GetNaClPrivateInterface() { |
566 return &nacl_interface; | 563 return &nacl_interface; |
567 } | 564 } |
568 | 565 |
569 } // namespace nacl | 566 } // namespace nacl |
570 | 567 |
571 #endif // DISABLE_NACL | 568 #endif // DISABLE_NACL |
OLD | NEW |