Index: content/utility/utility_service_factory.cc |
diff --git a/content/utility/utility_service_factory.cc b/content/utility/utility_service_factory.cc |
index 73c2cf8e242ec6c5af2eb1b5ce7287bfc60aa711..cae7a1381af366213b3b1569e6d0c9b14721ab2b 100644 |
--- a/content/utility/utility_service_factory.cc |
+++ b/content/utility/utility_service_factory.cc |
@@ -4,6 +4,9 @@ |
#include "content/utility/utility_service_factory.h" |
+#include <memory> |
+#include <utility> |
+ |
#include "base/bind.h" |
#include "base/command_line.h" |
#include "content/child/child_process.h" |
@@ -14,6 +17,7 @@ |
#include "content/public/utility/content_utility_client.h" |
#include "content/public/utility/utility_thread.h" |
#include "content/utility/utility_thread_impl.h" |
+#include "printing/features/features.h" |
#include "services/data_decoder/data_decoder_service.h" |
#include "services/data_decoder/public/interfaces/constants.mojom.h" |
#include "services/shape_detection/public/interfaces/constants.mojom.h" |
@@ -23,6 +27,13 @@ |
#include "media/mojo/services/media_service_factory.h" // nogncheck |
#endif |
+#if BUILDFLAG(ENABLE_PRINTING) |
+// nogncheck because dependency on //printing is conditional upon |
jam
2017/04/24 15:18:05
content/ currently doesn't know about components/p
Wei Li
2017/04/27 05:34:16
Done.
|
+// enable_basic_printing or enable_print_preview flags. |
+#include "components/printing/service/pdf_compositor_service.h" // nogncheck |
+#include "components/printing/service/public/interfaces/pdf_compositor.mojom.h" // nogncheck |
+#endif |
+ |
namespace content { |
namespace { |
@@ -32,6 +43,16 @@ std::unique_ptr<service_manager::Service> CreateDataDecoderService() { |
return data_decoder::DataDecoderService::Create(); |
} |
+#if BUILDFLAG(ENABLE_PRINTING) |
+std::unique_ptr<service_manager::Service> CreatePdfCompositorService() { |
+ content::UtilityThread::Get()->EnsureBlinkInitialized(); |
+ content::UtilityThread::Get()->EnsureReadyForSkia(); |
+ return printing::PdfCompositorService::Create( |
+ GetContentClient()->GetUserAgent(), |
+ ChildProcess::current()->io_task_runner()); |
+} |
+#endif |
+ |
} // namespace |
UtilityServiceFactory::UtilityServiceFactory() {} |
@@ -65,6 +86,13 @@ void UtilityServiceFactory::RegisterServices(ServiceMap* services) { |
services->insert( |
std::make_pair(content::mojom::kNetworkServiceName, network_info)); |
} |
+ |
+#if BUILDFLAG(ENABLE_PRINTING) |
+ ServiceInfo pdf_compositor_info; |
+ pdf_compositor_info.factory = base::Bind(&CreatePdfCompositorService); |
+ services->insert( |
+ std::make_pair(printing::mojom::kServiceName, pdf_compositor_info)); |
+#endif |
} |
void UtilityServiceFactory::OnServiceQuit() { |