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.h" | 5 #include "components/nacl/renderer/ppb_nacl_private.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 | 77 |
78 namespace nacl { | 78 namespace nacl { |
79 namespace { | 79 namespace { |
80 | 80 |
81 // The pseudo-architecture used to indicate portable native client. | 81 // The pseudo-architecture used to indicate portable native client. |
82 const char* const kPortableArch = "portable"; | 82 const char* const kPortableArch = "portable"; |
83 | 83 |
84 // The base URL for resources used by the PNaCl translator processes. | 84 // The base URL for resources used by the PNaCl translator processes. |
85 const char* kPNaClTranslatorBaseUrl = "chrome://pnacl-translator/"; | 85 const char* kPNaClTranslatorBaseUrl = "chrome://pnacl-translator/"; |
86 | 86 |
87 base::LazyInstance<scoped_refptr<PnaclTranslationResourceHost> > | 87 base::LazyInstance<scoped_refptr<PnaclTranslationResourceHost>>:: |
88 g_pnacl_resource_host = LAZY_INSTANCE_INITIALIZER; | 88 DestructorAtExit g_pnacl_resource_host = LAZY_INSTANCE_INITIALIZER; |
89 | 89 |
90 bool InitializePnaclResourceHost() { | 90 bool InitializePnaclResourceHost() { |
91 // Must run on the main thread. | 91 // Must run on the main thread. |
92 content::RenderThread* render_thread = content::RenderThread::Get(); | 92 content::RenderThread* render_thread = content::RenderThread::Get(); |
93 if (!render_thread) | 93 if (!render_thread) |
94 return false; | 94 return false; |
95 if (!g_pnacl_resource_host.Get().get()) { | 95 if (!g_pnacl_resource_host.Get().get()) { |
96 g_pnacl_resource_host.Get() = | 96 g_pnacl_resource_host.Get() = |
97 new PnaclTranslationResourceHost(render_thread->GetIOTaskRunner()); | 97 new PnaclTranslationResourceHost(render_thread->GetIOTaskRunner()); |
98 render_thread->AddFilter(g_pnacl_resource_host.Get().get()); | 98 render_thread->AddFilter(g_pnacl_resource_host.Get().get()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 std::unique_ptr<JsonManifest> json_manifest; | 143 std::unique_ptr<JsonManifest> json_manifest; |
144 std::unique_ptr<InstanceInfo> instance_info; | 144 std::unique_ptr<InstanceInfo> instance_info; |
145 | 145 |
146 // When translation is complete, this records the size of the pexe in | 146 // When translation is complete, this records the size of the pexe in |
147 // bytes so that it can be reported in a later load event. | 147 // bytes so that it can be reported in a later load event. |
148 uint64_t pexe_size; | 148 uint64_t pexe_size; |
149 }; | 149 }; |
150 | 150 |
151 typedef std::unordered_map<PP_Instance, std::unique_ptr<NaClPluginInstance>> | 151 typedef std::unordered_map<PP_Instance, std::unique_ptr<NaClPluginInstance>> |
152 InstanceMap; | 152 InstanceMap; |
153 base::LazyInstance<InstanceMap> g_instance_map = LAZY_INSTANCE_INITIALIZER; | 153 base::LazyInstance<InstanceMap>::DestructorAtExit g_instance_map = |
| 154 LAZY_INSTANCE_INITIALIZER; |
154 | 155 |
155 NaClPluginInstance* GetNaClPluginInstance(PP_Instance instance) { | 156 NaClPluginInstance* GetNaClPluginInstance(PP_Instance instance) { |
156 InstanceMap& map = g_instance_map.Get(); | 157 InstanceMap& map = g_instance_map.Get(); |
157 auto iter = map.find(instance); | 158 auto iter = map.find(instance); |
158 if (iter == map.end()) | 159 if (iter == map.end()) |
159 return NULL; | 160 return NULL; |
160 return iter->second.get(); | 161 return iter->second.get(); |
161 } | 162 } |
162 | 163 |
163 NexeLoadManager* GetNexeLoadManager(PP_Instance instance) { | 164 NexeLoadManager* GetNexeLoadManager(PP_Instance instance) { |
(...skipping 1579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1743 // Mark the request as requesting a PNaCl bitcode file, | 1744 // Mark the request as requesting a PNaCl bitcode file, |
1744 // so that component updater can detect this user action. | 1745 // so that component updater can detect this user action. |
1745 url_request.addHTTPHeaderField( | 1746 url_request.addHTTPHeaderField( |
1746 blink::WebString::fromUTF8("Accept"), | 1747 blink::WebString::fromUTF8("Accept"), |
1747 blink::WebString::fromUTF8("application/x-pnacl, */*")); | 1748 blink::WebString::fromUTF8("application/x-pnacl, */*")); |
1748 url_request.setRequestContext(blink::WebURLRequest::RequestContextObject); | 1749 url_request.setRequestContext(blink::WebURLRequest::RequestContextObject); |
1749 downloader->Load(url_request); | 1750 downloader->Load(url_request); |
1750 } | 1751 } |
1751 | 1752 |
1752 } // namespace nacl | 1753 } // namespace nacl |
OLD | NEW |