Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(707)

Side by Side Diff: content/utility/utility_service_factory.cc

Issue 2643713003: Allow to use the DefaultRendererFactory from a Utility Process (Closed)
Patch Set: Rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/utility/utility_service_factory.h ('k') | media/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/utility/utility_service_factory.h" 5 #include "content/utility/utility_service_factory.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/threading/thread_task_runner_handle.h"
8 #include "content/public/common/content_client.h" 9 #include "content/public/common/content_client.h"
9 #include "content/public/utility/content_utility_client.h" 10 #include "content/public/utility/content_utility_client.h"
10 #include "content/public/utility/utility_thread.h" 11 #include "content/public/utility/utility_thread.h"
11 #include "content/utility/utility_thread_impl.h" 12 #include "content/utility/utility_thread_impl.h"
12 #include "services/shape_detection/public/interfaces/constants.mojom.h" 13 #include "services/shape_detection/public/interfaces/constants.mojom.h"
13 #include "services/shape_detection/shape_detection_service.h" 14 #include "services/shape_detection/shape_detection_service.h"
14 15
15 #if defined(ENABLE_MOJO_MEDIA_IN_UTILITY_PROCESS) 16 #if defined(ENABLE_MOJO_MEDIA_IN_UTILITY_PROCESS)
16 #include "media/mojo/services/media_service_factory.h" // nogncheck 17 #include "media/mojo/services/media_service_factory.h" // nogncheck
17 #endif 18 #endif
18 19
19 namespace content { 20 namespace content {
20 21
21 UtilityServiceFactory::UtilityServiceFactory() {} 22 UtilityServiceFactory::UtilityServiceFactory() {
23 #if defined(ENABLE_MOJO_MEDIA_IN_UTILITY_PROCESS)
24 task_runner_ = base::ThreadTaskRunnerHandle::Get();
25 #endif
26 }
22 27
23 UtilityServiceFactory::~UtilityServiceFactory() {} 28 UtilityServiceFactory::~UtilityServiceFactory() {}
24 29
25 void UtilityServiceFactory::RegisterServices(ServiceMap* services) { 30 void UtilityServiceFactory::RegisterServices(ServiceMap* services) {
26 GetContentClient()->utility()->RegisterServices(services); 31 GetContentClient()->utility()->RegisterServices(services);
27 32
28 #if defined(ENABLE_MOJO_MEDIA_IN_UTILITY_PROCESS) 33 #if defined(ENABLE_MOJO_MEDIA_IN_UTILITY_PROCESS)
29 ServiceInfo info; 34 ServiceInfo info;
30 info.factory = base::Bind(&media::CreateUtilityMediaService); 35 info.factory = base::Bind(&media::CreateUtilityMediaService, task_runner_);
31 services->insert(std::make_pair("media", info)); 36 services->insert(std::make_pair("media", info));
32 #endif 37 #endif
33 ServiceInfo shape_detection_info; 38 ServiceInfo shape_detection_info;
34 shape_detection_info.factory = 39 shape_detection_info.factory =
35 base::Bind(&shape_detection::ShapeDetectionService::Create); 40 base::Bind(&shape_detection::ShapeDetectionService::Create);
36 services->insert(std::make_pair(shape_detection::mojom::kServiceName, 41 services->insert(std::make_pair(shape_detection::mojom::kServiceName,
37 shape_detection_info)); 42 shape_detection_info));
38 } 43 }
39 44
40 void UtilityServiceFactory::OnServiceQuit() { 45 void UtilityServiceFactory::OnServiceQuit() {
41 UtilityThread::Get()->ReleaseProcessIfNeeded(); 46 UtilityThread::Get()->ReleaseProcessIfNeeded();
42 } 47 }
43 48
44 void UtilityServiceFactory::OnLoadFailed() { 49 void UtilityServiceFactory::OnLoadFailed() {
45 UtilityThreadImpl* utility_thread = 50 UtilityThreadImpl* utility_thread =
46 static_cast<UtilityThreadImpl*>(UtilityThread::Get()); 51 static_cast<UtilityThreadImpl*>(UtilityThread::Get());
47 utility_thread->Shutdown(); 52 utility_thread->Shutdown();
48 utility_thread->ReleaseProcessIfNeeded(); 53 utility_thread->ReleaseProcessIfNeeded();
49 } 54 }
50 55
51 } // namespace content 56 } // namespace content
OLDNEW
« no previous file with comments | « content/utility/utility_service_factory.h ('k') | media/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698