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

Side by Side Diff: components/arc/arc_bridge_host_impl.cc

Issue 2552213002: Remove explicit singletonness of ArcBridgeService part 1. (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/arc/arc_bridge_host_impl.h" 5 #include "components/arc/arc_bridge_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 60
61 // Put as a last member to ensure that any callback tied to the |ptr_| 61 // Put as a last member to ensure that any callback tied to the |ptr_|
62 // is not invoked. 62 // is not invoked.
63 mojo::InterfacePtr<T> ptr_; 63 mojo::InterfacePtr<T> ptr_;
64 64
65 DISALLOW_COPY_AND_ASSIGN(MojoChannelImpl); 65 DISALLOW_COPY_AND_ASSIGN(MojoChannelImpl);
66 }; 66 };
67 67
68 } // namespace 68 } // namespace
69 69
70 ArcBridgeHostImpl::ArcBridgeHostImpl(mojom::ArcBridgeInstancePtr instance) 70 ArcBridgeHostImpl::ArcBridgeHostImpl(
71 : binding_(this), instance_(std::move(instance)) { 71 ArcBridgeService* arc_bridge_service,
72 mojom::ArcBridgeInstancePtr instance)
73 : arc_bridge_service_(arc_bridge_service),
74 binding_(this), instance_(std::move(instance)) {
75 DCHECK(arc_bridge_service_);
72 DCHECK(instance_.is_bound()); 76 DCHECK(instance_.is_bound());
73 instance_.set_connection_error_handler( 77 instance_.set_connection_error_handler(
74 base::Bind(&ArcBridgeHostImpl::OnClosed, base::Unretained(this))); 78 base::Bind(&ArcBridgeHostImpl::OnClosed, base::Unretained(this)));
75 instance_->Init(binding_.CreateInterfacePtrAndBind()); 79 instance_->Init(binding_.CreateInterfacePtrAndBind());
76 } 80 }
77 81
78 ArcBridgeHostImpl::~ArcBridgeHostImpl() { 82 ArcBridgeHostImpl::~ArcBridgeHostImpl() {
79 OnClosed(); 83 OnClosed();
80 } 84 }
81 85
82 void ArcBridgeHostImpl::OnAppInstanceReady(mojom::AppInstancePtr app_ptr) { 86 void ArcBridgeHostImpl::OnAppInstanceReady(mojom::AppInstancePtr app_ptr) {
83 OnInstanceReady(ArcBridgeService::Get()->app(), std::move(app_ptr)); 87 OnInstanceReady(arc_bridge_service_->app(), std::move(app_ptr));
84 } 88 }
85 89
86 void ArcBridgeHostImpl::OnAudioInstanceReady( 90 void ArcBridgeHostImpl::OnAudioInstanceReady(
87 mojom::AudioInstancePtr audio_ptr) { 91 mojom::AudioInstancePtr audio_ptr) {
88 OnInstanceReady(ArcBridgeService::Get()->audio(), std::move(audio_ptr)); 92 OnInstanceReady(arc_bridge_service_->audio(), std::move(audio_ptr));
89 } 93 }
90 94
91 void ArcBridgeHostImpl::OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) { 95 void ArcBridgeHostImpl::OnAuthInstanceReady(mojom::AuthInstancePtr auth_ptr) {
92 OnInstanceReady(ArcBridgeService::Get()->auth(), std::move(auth_ptr)); 96 OnInstanceReady(arc_bridge_service_->auth(), std::move(auth_ptr));
93 } 97 }
94 98
95 void ArcBridgeHostImpl::OnBluetoothInstanceReady( 99 void ArcBridgeHostImpl::OnBluetoothInstanceReady(
96 mojom::BluetoothInstancePtr bluetooth_ptr) { 100 mojom::BluetoothInstancePtr bluetooth_ptr) {
97 OnInstanceReady(ArcBridgeService::Get()->bluetooth(), 101 OnInstanceReady(arc_bridge_service_->bluetooth(),
98 std::move(bluetooth_ptr)); 102 std::move(bluetooth_ptr));
99 } 103 }
100 104
101 void ArcBridgeHostImpl::OnBootPhaseMonitorInstanceReady( 105 void ArcBridgeHostImpl::OnBootPhaseMonitorInstanceReady(
102 mojom::BootPhaseMonitorInstancePtr boot_phase_monitor_ptr) { 106 mojom::BootPhaseMonitorInstancePtr boot_phase_monitor_ptr) {
103 OnInstanceReady(ArcBridgeService::Get()->boot_phase_monitor(), 107 OnInstanceReady(arc_bridge_service_->boot_phase_monitor(),
104 std::move(boot_phase_monitor_ptr)); 108 std::move(boot_phase_monitor_ptr));
105 } 109 }
106 110
107 void ArcBridgeHostImpl::OnClipboardInstanceReady( 111 void ArcBridgeHostImpl::OnClipboardInstanceReady(
108 mojom::ClipboardInstancePtr clipboard_ptr) { 112 mojom::ClipboardInstancePtr clipboard_ptr) {
109 OnInstanceReady(ArcBridgeService::Get()->clipboard(), 113 OnInstanceReady(arc_bridge_service_->clipboard(),
110 std::move(clipboard_ptr)); 114 std::move(clipboard_ptr));
111 } 115 }
112 116
113 void ArcBridgeHostImpl::OnCrashCollectorInstanceReady( 117 void ArcBridgeHostImpl::OnCrashCollectorInstanceReady(
114 mojom::CrashCollectorInstancePtr crash_collector_ptr) { 118 mojom::CrashCollectorInstancePtr crash_collector_ptr) {
115 OnInstanceReady(ArcBridgeService::Get()->crash_collector(), 119 OnInstanceReady(arc_bridge_service_->crash_collector(),
116 std::move(crash_collector_ptr)); 120 std::move(crash_collector_ptr));
117 } 121 }
118 122
119 void ArcBridgeHostImpl::OnEnterpriseReportingInstanceReady( 123 void ArcBridgeHostImpl::OnEnterpriseReportingInstanceReady(
120 mojom::EnterpriseReportingInstancePtr enterprise_reporting_ptr) { 124 mojom::EnterpriseReportingInstancePtr enterprise_reporting_ptr) {
121 OnInstanceReady(ArcBridgeService::Get()->enterprise_reporting(), 125 OnInstanceReady(arc_bridge_service_->enterprise_reporting(),
122 std::move(enterprise_reporting_ptr)); 126 std::move(enterprise_reporting_ptr));
123 } 127 }
124 128
125 void ArcBridgeHostImpl::OnFileSystemInstanceReady( 129 void ArcBridgeHostImpl::OnFileSystemInstanceReady(
126 mojom::FileSystemInstancePtr file_system_ptr) { 130 mojom::FileSystemInstancePtr file_system_ptr) {
127 OnInstanceReady(ArcBridgeService::Get()->file_system(), 131 OnInstanceReady(arc_bridge_service_->file_system(),
128 std::move(file_system_ptr)); 132 std::move(file_system_ptr));
129 } 133 }
130 134
131 void ArcBridgeHostImpl::OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) { 135 void ArcBridgeHostImpl::OnImeInstanceReady(mojom::ImeInstancePtr ime_ptr) {
132 OnInstanceReady(ArcBridgeService::Get()->ime(), std::move(ime_ptr)); 136 OnInstanceReady(arc_bridge_service_->ime(), std::move(ime_ptr));
133 } 137 }
134 138
135 void ArcBridgeHostImpl::OnIntentHelperInstanceReady( 139 void ArcBridgeHostImpl::OnIntentHelperInstanceReady(
136 mojom::IntentHelperInstancePtr intent_helper_ptr) { 140 mojom::IntentHelperInstancePtr intent_helper_ptr) {
137 OnInstanceReady(ArcBridgeService::Get()->intent_helper(), 141 OnInstanceReady(arc_bridge_service_->intent_helper(),
138 std::move(intent_helper_ptr)); 142 std::move(intent_helper_ptr));
139 } 143 }
140 144
141 void ArcBridgeHostImpl::OnKioskInstanceReady( 145 void ArcBridgeHostImpl::OnKioskInstanceReady(
142 mojom::KioskInstancePtr kiosk_ptr) { 146 mojom::KioskInstancePtr kiosk_ptr) {
143 OnInstanceReady(ArcBridgeService::Get()->kiosk(), std::move(kiosk_ptr)); 147 OnInstanceReady(arc_bridge_service_->kiosk(), std::move(kiosk_ptr));
144 } 148 }
145 149
146 void ArcBridgeHostImpl::OnMetricsInstanceReady( 150 void ArcBridgeHostImpl::OnMetricsInstanceReady(
147 mojom::MetricsInstancePtr metrics_ptr) { 151 mojom::MetricsInstancePtr metrics_ptr) {
148 OnInstanceReady(ArcBridgeService::Get()->metrics(), std::move(metrics_ptr)); 152 OnInstanceReady(arc_bridge_service_->metrics(), std::move(metrics_ptr));
149 } 153 }
150 154
151 void ArcBridgeHostImpl::OnNetInstanceReady(mojom::NetInstancePtr net_ptr) { 155 void ArcBridgeHostImpl::OnNetInstanceReady(mojom::NetInstancePtr net_ptr) {
152 OnInstanceReady(ArcBridgeService::Get()->net(), std::move(net_ptr)); 156 OnInstanceReady(arc_bridge_service_->net(), std::move(net_ptr));
153 } 157 }
154 158
155 void ArcBridgeHostImpl::OnNotificationsInstanceReady( 159 void ArcBridgeHostImpl::OnNotificationsInstanceReady(
156 mojom::NotificationsInstancePtr notifications_ptr) { 160 mojom::NotificationsInstancePtr notifications_ptr) {
157 OnInstanceReady(ArcBridgeService::Get()->notifications(), 161 OnInstanceReady(arc_bridge_service_->notifications(),
158 std::move(notifications_ptr)); 162 std::move(notifications_ptr));
159 } 163 }
160 164
161 void ArcBridgeHostImpl::OnObbMounterInstanceReady( 165 void ArcBridgeHostImpl::OnObbMounterInstanceReady(
162 mojom::ObbMounterInstancePtr obb_mounter_ptr) { 166 mojom::ObbMounterInstancePtr obb_mounter_ptr) {
163 OnInstanceReady(ArcBridgeService::Get()->obb_mounter(), 167 OnInstanceReady(arc_bridge_service_->obb_mounter(),
164 std::move(obb_mounter_ptr)); 168 std::move(obb_mounter_ptr));
165 } 169 }
166 170
167 void ArcBridgeHostImpl::OnPolicyInstanceReady( 171 void ArcBridgeHostImpl::OnPolicyInstanceReady(
168 mojom::PolicyInstancePtr policy_ptr) { 172 mojom::PolicyInstancePtr policy_ptr) {
169 OnInstanceReady(ArcBridgeService::Get()->policy(), std::move(policy_ptr)); 173 OnInstanceReady(arc_bridge_service_->policy(), std::move(policy_ptr));
170 } 174 }
171 175
172 void ArcBridgeHostImpl::OnPowerInstanceReady( 176 void ArcBridgeHostImpl::OnPowerInstanceReady(
173 mojom::PowerInstancePtr power_ptr) { 177 mojom::PowerInstancePtr power_ptr) {
174 OnInstanceReady(ArcBridgeService::Get()->power(), std::move(power_ptr)); 178 OnInstanceReady(arc_bridge_service_->power(), std::move(power_ptr));
175 } 179 }
176 180
177 void ArcBridgeHostImpl::OnPrintInstanceReady( 181 void ArcBridgeHostImpl::OnPrintInstanceReady(
178 mojom::PrintInstancePtr print_ptr) { 182 mojom::PrintInstancePtr print_ptr) {
179 OnInstanceReady(ArcBridgeService::Get()->print(), std::move(print_ptr)); 183 OnInstanceReady(arc_bridge_service_->print(), std::move(print_ptr));
180 } 184 }
181 185
182 void ArcBridgeHostImpl::OnProcessInstanceReady( 186 void ArcBridgeHostImpl::OnProcessInstanceReady(
183 mojom::ProcessInstancePtr process_ptr) { 187 mojom::ProcessInstancePtr process_ptr) {
184 OnInstanceReady(ArcBridgeService::Get()->process(), std::move(process_ptr)); 188 OnInstanceReady(arc_bridge_service_->process(), std::move(process_ptr));
185 } 189 }
186 190
187 void ArcBridgeHostImpl::OnStorageManagerInstanceReady( 191 void ArcBridgeHostImpl::OnStorageManagerInstanceReady(
188 mojom::StorageManagerInstancePtr storage_manager_ptr) { 192 mojom::StorageManagerInstancePtr storage_manager_ptr) {
189 OnInstanceReady(ArcBridgeService::Get()->storage_manager(), 193 OnInstanceReady(arc_bridge_service_->storage_manager(),
190 std::move(storage_manager_ptr)); 194 std::move(storage_manager_ptr));
191 } 195 }
192 196
193 void ArcBridgeHostImpl::OnTtsInstanceReady(mojom::TtsInstancePtr tts_ptr) { 197 void ArcBridgeHostImpl::OnTtsInstanceReady(mojom::TtsInstancePtr tts_ptr) {
194 OnInstanceReady(ArcBridgeService::Get()->tts(), std::move(tts_ptr)); 198 OnInstanceReady(arc_bridge_service_->tts(), std::move(tts_ptr));
195 } 199 }
196 200
197 void ArcBridgeHostImpl::OnVideoInstanceReady( 201 void ArcBridgeHostImpl::OnVideoInstanceReady(
198 mojom::VideoInstancePtr video_ptr) { 202 mojom::VideoInstancePtr video_ptr) {
199 OnInstanceReady(ArcBridgeService::Get()->video(), std::move(video_ptr)); 203 OnInstanceReady(arc_bridge_service_->video(), std::move(video_ptr));
200 } 204 }
201 205
202 void ArcBridgeHostImpl::OnWallpaperInstanceReady( 206 void ArcBridgeHostImpl::OnWallpaperInstanceReady(
203 mojom::WallpaperInstancePtr wallpaper_ptr) { 207 mojom::WallpaperInstancePtr wallpaper_ptr) {
204 OnInstanceReady(ArcBridgeService::Get()->wallpaper(), 208 OnInstanceReady(arc_bridge_service_->wallpaper(),
205 std::move(wallpaper_ptr)); 209 std::move(wallpaper_ptr));
206 } 210 }
207 211
208 void ArcBridgeHostImpl::OnClosed() { 212 void ArcBridgeHostImpl::OnClosed() {
209 DCHECK(thread_checker_.CalledOnValidThread()); 213 DCHECK(thread_checker_.CalledOnValidThread());
210 VLOG(1) << "Mojo connection lost"; 214 VLOG(1) << "Mojo connection lost";
211 215
212 // Close all mojo channels. 216 // Close all mojo channels.
213 mojo_channels_.clear(); 217 mojo_channels_.clear();
214 instance_.reset(); 218 instance_.reset();
(...skipping 28 matching lines...) Expand all
243 void ArcBridgeHostImpl::OnChannelClosed(MojoChannel* channel) { 247 void ArcBridgeHostImpl::OnChannelClosed(MojoChannel* channel) {
244 DCHECK(thread_checker_.CalledOnValidThread()); 248 DCHECK(thread_checker_.CalledOnValidThread());
245 mojo_channels_.erase( 249 mojo_channels_.erase(
246 std::find_if(mojo_channels_.begin(), mojo_channels_.end(), 250 std::find_if(mojo_channels_.begin(), mojo_channels_.end(),
247 [channel](std::unique_ptr<MojoChannel>& ptr) { 251 [channel](std::unique_ptr<MojoChannel>& ptr) {
248 return ptr.get() == channel; 252 return ptr.get() == channel;
249 })); 253 }));
250 } 254 }
251 255
252 } // namespace arc 256 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698