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