OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/printing/service/pdf_compositor_service.h" | 5 #include "components/printing/service/pdf_compositor_service.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/memory/discardable_memory.h" | 10 #include "base/memory/discardable_memory.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 : creator_(creator.empty() ? "Chromium" : creator), weak_factory_(this) {} | 36 : creator_(creator.empty() ? "Chromium" : creator), weak_factory_(this) {} |
37 | 37 |
38 PdfCompositorService::~PdfCompositorService() = default; | 38 PdfCompositorService::~PdfCompositorService() = default; |
39 | 39 |
40 // static | 40 // static |
41 std::unique_ptr<service_manager::Service> PdfCompositorService::Create( | 41 std::unique_ptr<service_manager::Service> PdfCompositorService::Create( |
42 const std::string& creator) { | 42 const std::string& creator) { |
43 return base::MakeUnique<printing::PdfCompositorService>(creator); | 43 return base::MakeUnique<printing::PdfCompositorService>(creator); |
44 } | 44 } |
45 | 45 |
46 void PdfCompositorService::OnStart() { | 46 void PdfCompositorService::PrepareToStart() { |
47 // Set up discardable memory manager. | 47 // Set up discardable memory manager. |
48 discardable_memory::mojom::DiscardableSharedMemoryManagerPtr manager_ptr; | 48 discardable_memory::mojom::DiscardableSharedMemoryManagerPtr manager_ptr; |
49 context()->connector()->BindInterface(content::mojom::kBrowserServiceName, | 49 context()->connector()->BindInterface(content::mojom::kBrowserServiceName, |
50 &manager_ptr); | 50 &manager_ptr); |
51 discardable_shared_memory_manager_ = base::MakeUnique< | 51 discardable_shared_memory_manager_ = base::MakeUnique< |
52 discardable_memory::ClientDiscardableSharedMemoryManager>( | 52 discardable_memory::ClientDiscardableSharedMemoryManager>( |
53 std::move(manager_ptr), content::UtilityThread::Get()->GetIOTaskRunner()); | 53 std::move(manager_ptr), content::UtilityThread::Get()->GetIOTaskRunner()); |
54 DCHECK(discardable_shared_memory_manager_); | 54 DCHECK(discardable_shared_memory_manager_); |
55 base::DiscardableMemoryAllocator::SetInstance( | 55 base::DiscardableMemoryAllocator::SetInstance( |
56 discardable_shared_memory_manager_.get()); | 56 discardable_shared_memory_manager_.get()); |
| 57 } |
| 58 |
| 59 void PdfCompositorService::OnStart() { |
| 60 PrepareToStart(); |
57 | 61 |
58 ref_factory_ = base::MakeUnique<service_manager::ServiceContextRefFactory>( | 62 ref_factory_ = base::MakeUnique<service_manager::ServiceContextRefFactory>( |
59 base::Bind(&service_manager::ServiceContext::RequestQuit, | 63 base::Bind(&service_manager::ServiceContext::RequestQuit, |
60 base::Unretained(context()))); | 64 base::Unretained(context()))); |
61 registry_.AddInterface( | 65 registry_.AddInterface( |
62 base::Bind(&OnPdfCompositorRequest, creator_, ref_factory_.get())); | 66 base::Bind(&OnPdfCompositorRequest, creator_, ref_factory_.get())); |
63 } | 67 } |
64 | 68 |
65 void PdfCompositorService::OnBindInterface( | 69 void PdfCompositorService::OnBindInterface( |
66 const service_manager::BindSourceInfo& source_info, | 70 const service_manager::BindSourceInfo& source_info, |
67 const std::string& interface_name, | 71 const std::string& interface_name, |
68 mojo::ScopedMessagePipeHandle interface_pipe) { | 72 mojo::ScopedMessagePipeHandle interface_pipe) { |
69 registry_.BindInterface(source_info, interface_name, | 73 registry_.BindInterface(source_info, interface_name, |
70 std::move(interface_pipe)); | 74 std::move(interface_pipe)); |
71 } | 75 } |
72 | 76 |
73 } // namespace printing | 77 } // namespace printing |
OLD | NEW |