OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "content/browser/service_manager/service_manager_context.h" | 5 #include "content/browser/service_manager/service_manager_context.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 process_host->Start(); | 59 process_host->Start(); |
60 process_host->GetRemoteInterfaces()->GetInterface(std::move(request)); | 60 process_host->GetRemoteInterfaces()->GetInterface(std::move(request)); |
61 } | 61 } |
62 | 62 |
63 void StartServiceInUtilityProcess( | 63 void StartServiceInUtilityProcess( |
64 const std::string& service_name, | 64 const std::string& service_name, |
65 const base::string16& process_name, | 65 const base::string16& process_name, |
66 bool use_sandbox, | 66 bool use_sandbox, |
67 service_manager::mojom::ServiceRequest request) { | 67 service_manager::mojom::ServiceRequest request) { |
68 service_manager::mojom::ServiceFactoryPtr service_factory; | 68 service_manager::mojom::ServiceFactoryPtr service_factory; |
69 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 69 BrowserThread::PostTask( |
70 base::Bind(&StartUtilityProcessOnIOThread, | 70 BrowserThread::IO, FROM_HERE, |
71 base::Passed(GetProxy(&service_factory)), | 71 base::Bind(&StartUtilityProcessOnIOThread, |
72 process_name, use_sandbox)); | 72 base::Passed(MakeRequest(&service_factory)), process_name, |
| 73 use_sandbox)); |
73 service_factory->CreateService(std::move(request), service_name); | 74 service_factory->CreateService(std::move(request), service_name); |
74 } | 75 } |
75 | 76 |
76 #if (ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) | 77 #if (ENABLE_MOJO_MEDIA_IN_GPU_PROCESS) |
77 | 78 |
78 // Request service_manager::mojom::ServiceFactory from GPU process host. Must be | 79 // Request service_manager::mojom::ServiceFactory from GPU process host. Must be |
79 // called on | 80 // called on |
80 // IO thread. | 81 // IO thread. |
81 void RequestGpuServiceFactory( | 82 void RequestGpuServiceFactory( |
82 service_manager::mojom::ServiceFactoryRequest request) { | 83 service_manager::mojom::ServiceFactoryRequest request) { |
(...skipping 10 matching lines...) Expand all Loading... |
93 // these cases correctly. | 94 // these cases correctly. |
94 process_host->GetRemoteInterfaces()->GetInterface(std::move(request)); | 95 process_host->GetRemoteInterfaces()->GetInterface(std::move(request)); |
95 } | 96 } |
96 | 97 |
97 void StartServiceInGpuProcess(const std::string& service_name, | 98 void StartServiceInGpuProcess(const std::string& service_name, |
98 service_manager::mojom::ServiceRequest request) { | 99 service_manager::mojom::ServiceRequest request) { |
99 service_manager::mojom::ServiceFactoryPtr service_factory; | 100 service_manager::mojom::ServiceFactoryPtr service_factory; |
100 BrowserThread::PostTask( | 101 BrowserThread::PostTask( |
101 BrowserThread::IO, FROM_HERE, | 102 BrowserThread::IO, FROM_HERE, |
102 base::Bind(&RequestGpuServiceFactory, | 103 base::Bind(&RequestGpuServiceFactory, |
103 base::Passed(GetProxy(&service_factory)))); | 104 base::Passed(MakeRequest(&service_factory)))); |
104 service_factory->CreateService(std::move(request), service_name); | 105 service_factory->CreateService(std::move(request), service_name); |
105 } | 106 } |
106 | 107 |
107 #endif // ENABLE_MOJO_MEDIA_IN_GPU_PROCESS | 108 #endif // ENABLE_MOJO_MEDIA_IN_GPU_PROCESS |
108 | 109 |
109 // A ManifestProvider which resolves application names to builtin manifest | 110 // A ManifestProvider which resolves application names to builtin manifest |
110 // resources for the catalog service to consume. | 111 // resources for the catalog service to consume. |
111 class BuiltinManifestProvider : public catalog::ManifestProvider { | 112 class BuiltinManifestProvider : public catalog::ManifestProvider { |
112 public: | 113 public: |
113 BuiltinManifestProvider() {} | 114 BuiltinManifestProvider() {} |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 // State which lives on the IO thread and drives the ServiceManager. | 155 // State which lives on the IO thread and drives the ServiceManager. |
155 class ServiceManagerContext::InProcessServiceManagerContext | 156 class ServiceManagerContext::InProcessServiceManagerContext |
156 : public base::RefCountedThreadSafe<InProcessServiceManagerContext> { | 157 : public base::RefCountedThreadSafe<InProcessServiceManagerContext> { |
157 public: | 158 public: |
158 InProcessServiceManagerContext() {} | 159 InProcessServiceManagerContext() {} |
159 | 160 |
160 service_manager::mojom::ServiceRequest Start( | 161 service_manager::mojom::ServiceRequest Start( |
161 std::unique_ptr<BuiltinManifestProvider> manifest_provider) { | 162 std::unique_ptr<BuiltinManifestProvider> manifest_provider) { |
162 service_manager::mojom::ServicePtr embedder_service_proxy; | 163 service_manager::mojom::ServicePtr embedder_service_proxy; |
163 service_manager::mojom::ServiceRequest embedder_service_request = | 164 service_manager::mojom::ServiceRequest embedder_service_request = |
164 mojo::GetProxy(&embedder_service_proxy); | 165 mojo::MakeRequest(&embedder_service_proxy); |
165 service_manager::mojom::ServicePtrInfo embedder_service_proxy_info = | 166 service_manager::mojom::ServicePtrInfo embedder_service_proxy_info = |
166 embedder_service_proxy.PassInterface(); | 167 embedder_service_proxy.PassInterface(); |
167 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)->PostTask( | 168 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)->PostTask( |
168 FROM_HERE, | 169 FROM_HERE, |
169 base::Bind(&InProcessServiceManagerContext::StartOnIOThread, this, | 170 base::Bind(&InProcessServiceManagerContext::StartOnIOThread, this, |
170 base::Passed(&manifest_provider), | 171 base::Passed(&manifest_provider), |
171 base::Passed(&embedder_service_proxy_info))); | 172 base::Passed(&embedder_service_proxy_info))); |
172 return embedder_service_request; | 173 return embedder_service_request; |
173 } | 174 } |
174 | 175 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 base::Bind(&DestroyConnectorOnIOThread)); | 326 base::Bind(&DestroyConnectorOnIOThread)); |
326 } | 327 } |
327 | 328 |
328 // static | 329 // static |
329 service_manager::Connector* ServiceManagerContext::GetConnectorForIOThread() { | 330 service_manager::Connector* ServiceManagerContext::GetConnectorForIOThread() { |
330 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 331 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
331 return g_io_thread_connector.Get().get(); | 332 return g_io_thread_connector.Get().get(); |
332 } | 333 } |
333 | 334 |
334 } // namespace content | 335 } // namespace content |
OLD | NEW |