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

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

Issue 1495723004: Minimum implementation of ARC clipboard Bridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased to catch arc++ notification cl Created 5 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 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 "components/arc/arc_bridge_service_impl.h" 5 #include "components/arc/arc_bridge_service_impl.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/files/file_util.h" 9 #include "base/files/file_util.h"
10 #include "base/prefs/pref_registry_simple.h" 10 #include "base/prefs/pref_registry_simple.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread()); 149 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
150 if (state() != State::READY) { 150 if (state() != State::READY) {
151 LOG(ERROR) << "Called RequestAppIcon when the service is not ready"; 151 LOG(ERROR) << "Called RequestAppIcon when the service is not ready";
152 return false; 152 return false;
153 } 153 }
154 return ipc_channel_->Send(new ArcInstanceMsg_RequestAppIcon(package, 154 return ipc_channel_->Send(new ArcInstanceMsg_RequestAppIcon(package,
155 activity, 155 activity,
156 scale_factor)); 156 scale_factor));
157 } 157 }
158 158
159 bool ArcBridgeServiceImpl::SendClipboardContentToAndroid(
160 const ClipboardData data) {
161 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
162 if (state() != State::READY) {
163 LOG(ERROR) << "Called SendClipboardContentToAndroid when the service is"
jochen (gone - plz use gerrit) 2015/12/07 15:45:09 no LOG please use DVLOG/VLOG the user won't see
164 << " not ready";
165 return false;
166 }
167
168 return ipc_channel_->Send(
169 new ArcInstanceMsg_SendClipboardContentToAndroid(data));
170 }
171
159 void ArcBridgeServiceImpl::SocketConnect(const base::FilePath& socket_path) { 172 void ArcBridgeServiceImpl::SocketConnect(const base::FilePath& socket_path) {
160 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread()); 173 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
161 if (state() != State::STOPPED) { 174 if (state() != State::STOPPED) {
162 VLOG(1) << "SocketConnect() called when instance is not stopped"; 175 VLOG(1) << "SocketConnect() called when instance is not stopped";
163 return; 176 return;
164 } 177 }
165 SetState(State::CONNECTING); 178 SetState(State::CONNECTING);
166 base::PostTaskAndReplyWithResult( 179 base::PostTaskAndReplyWithResult(
167 file_task_runner_.get(), FROM_HERE, 180 file_task_runner_.get(), FROM_HERE,
168 base::Bind(&base::CreateDirectory, socket_path.DirName()), 181 base::Bind(&base::CreateDirectory, socket_path.DirName()),
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 300
288 IPC_BEGIN_MESSAGE_MAP(ArcBridgeServiceImpl, message) 301 IPC_BEGIN_MESSAGE_MAP(ArcBridgeServiceImpl, message)
289 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_InstanceBootPhase, 302 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_InstanceBootPhase,
290 OnInstanceBootPhase) 303 OnInstanceBootPhase)
291 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_AppListRefreshed, OnAppListRefreshed) 304 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_AppListRefreshed, OnAppListRefreshed)
292 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_AppIcon, OnAppIcon) 305 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_AppIcon, OnAppIcon)
293 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_NotificationPosted, 306 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_NotificationPosted,
294 OnNotificationPostedFromAndroid) 307 OnNotificationPostedFromAndroid)
295 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_NotificationRemoved, 308 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_NotificationRemoved,
296 OnNotificationRemovedFromAndroid) 309 OnNotificationRemovedFromAndroid)
310 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_SetClipboardContent,
311 OnSetClipboardContent)
312 IPC_MESSAGE_HANDLER(ArcInstanceHostMsg_GetClipboardContent,
313 OnGetClipboardContent)
297 IPC_MESSAGE_UNHANDLED(handled = false) 314 IPC_MESSAGE_UNHANDLED(handled = false)
298 IPC_END_MESSAGE_MAP() 315 IPC_END_MESSAGE_MAP()
299 316
300 if (!handled) 317 if (!handled)
301 LOG(ERROR) << "Invalid message with type = " << message.type(); 318 LOG(ERROR) << "Invalid message with type = " << message.type();
302 return handled; 319 return handled;
303 } 320 }
304 321
305 void ArcBridgeServiceImpl::OnAppListRefreshed( 322 void ArcBridgeServiceImpl::OnAppListRefreshed(
306 const std::vector<arc::AppInfo>& apps) { 323 const std::vector<arc::AppInfo>& apps) {
307 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread()); 324 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
308 FOR_EACH_OBSERVER(AppObserver, app_observer_list(), OnAppListRefreshed(apps)); 325 FOR_EACH_OBSERVER(AppObserver, app_observer_list(), OnAppListRefreshed(apps));
309 } 326 }
310 327
311 void ArcBridgeServiceImpl::OnAppIcon( 328 void ArcBridgeServiceImpl::OnAppIcon(
312 const std::string& package, 329 const std::string& package,
313 const std::string& activity, 330 const std::string& activity,
314 ScaleFactor scale_factor, 331 ScaleFactor scale_factor,
315 const std::vector<uint8_t>& icon_png_data) { 332 const std::vector<uint8_t>& icon_png_data) {
316 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread()); 333 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
317 FOR_EACH_OBSERVER(AppObserver, 334 FOR_EACH_OBSERVER(AppObserver,
318 app_observer_list(), 335 app_observer_list(),
319 OnAppIcon(package, activity, scale_factor, icon_png_data)); 336 OnAppIcon(package, activity, scale_factor, icon_png_data));
320 } 337 }
321 338
339 void ArcBridgeServiceImpl::OnSetClipboardContent(
340 const ClipboardData& data) {
341 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
342 FOR_EACH_OBSERVER(ClipboardObserver, clipboard_observer_list(),
343 OnSetClipboardContent(data));
344 }
345
346 void ArcBridgeServiceImpl::OnGetClipboardContent() {
347 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
348 FOR_EACH_OBSERVER(ClipboardObserver, clipboard_observer_list(),
349 OnGetClipboardContent());
350 }
351
322 void ArcBridgeServiceImpl::OnArcAvailable(bool arc_available) { 352 void ArcBridgeServiceImpl::OnArcAvailable(bool arc_available) {
323 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread()); 353 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
324 if (available() == arc_available) 354 if (available() == arc_available)
325 return; 355 return;
326 SetAvailable(arc_available); 356 SetAvailable(arc_available);
327 PrerequisitesChanged(); 357 PrerequisitesChanged();
328 } 358 }
329 359
330 void ArcBridgeServiceImpl::OnInstanceStopped(bool success) { 360 void ArcBridgeServiceImpl::OnInstanceStopped(bool success) {
331 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread()); 361 DCHECK(origin_task_runner()->RunsTasksOnCurrentThread());
332 // STOPPING is the only valid state for this function. 362 // STOPPING is the only valid state for this function.
333 // DCHECK on enum classes not supported. 363 // DCHECK on enum classes not supported.
334 DCHECK(state() == State::STOPPING); 364 DCHECK(state() == State::STOPPING);
335 ipc_channel_.reset(); 365 ipc_channel_.reset();
336 SetState(State::STOPPED); 366 SetState(State::STOPPED);
337 } 367 }
338 368
339 } // namespace arc 369 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698