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

Side by Side Diff: chrome/browser/service/service_process_control.cc

Issue 8620001: Cleanup pass from Cloud Print Proxy policy implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/service/service_process_control.h" 5 #include "chrome/browser/service/service_process_control.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 channel_id, IPC::Channel::MODE_NAMED_CLIENT, this, 49 channel_id, IPC::Channel::MODE_NAMED_CLIENT, this,
50 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO))); 50 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)));
51 } 51 }
52 52
53 void ServiceProcessControl::RunConnectDoneTasks() { 53 void ServiceProcessControl::RunConnectDoneTasks() {
54 // The tasks executed here may add more tasks to the vector. So copy 54 // The tasks executed here may add more tasks to the vector. So copy
55 // them to the stack before executing them. This way recursion is 55 // them to the stack before executing them. This way recursion is
56 // avoided. 56 // avoided.
57 TaskList tasks; 57 TaskList tasks;
58 58
59 if (is_connected()) { 59 if (IsConnected()) {
60 tasks.swap(connect_success_tasks_); 60 tasks.swap(connect_success_tasks_);
61 RunAllTasksHelper(&tasks); 61 RunAllTasksHelper(&tasks);
62 DCHECK(tasks.empty()); 62 DCHECK(tasks.empty());
63 connect_failure_tasks_.clear(); 63 connect_failure_tasks_.clear();
64 } else { 64 } else {
65 tasks.swap(connect_failure_tasks_); 65 tasks.swap(connect_failure_tasks_);
66 RunAllTasksHelper(&tasks); 66 RunAllTasksHelper(&tasks);
67 DCHECK(tasks.empty()); 67 DCHECK(tasks.empty());
68 connect_success_tasks_.clear(); 68 connect_success_tasks_.clear();
69 } 69 }
70 } 70 }
71 71
72 // static 72 // static
73 void ServiceProcessControl::RunAllTasksHelper(TaskList* task_list) { 73 void ServiceProcessControl::RunAllTasksHelper(TaskList* task_list) {
74 TaskList::iterator index = task_list->begin(); 74 TaskList::iterator index = task_list->begin();
75 while (index != task_list->end()) { 75 while (index != task_list->end()) {
76 (*index).Run(); 76 (*index).Run();
77 index = task_list->erase(index); 77 index = task_list->erase(index);
78 } 78 }
79 } 79 }
80 80
81 bool ServiceProcessControl::is_connected() const { 81 bool ServiceProcessControl::IsConnected() const {
82 return channel_.get() != NULL; 82 return channel_ != NULL;
83 } 83 }
84 84
85 void ServiceProcessControl::Launch(const base::Closure& success_task, 85 void ServiceProcessControl::Launch(const base::Closure& success_task,
86 const base::Closure& failure_task) { 86 const base::Closure& failure_task) {
87 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 87 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
88 88
89 base::Closure failure = failure_task; 89 base::Closure failure = failure_task;
90 if (!success_task.is_null()) 90 if (!success_task.is_null())
91 connect_success_tasks_.push_back(success_task); 91 connect_success_tasks_.push_back(success_task);
92 92
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 if (base::LaunchProcess(*cmd_line_, options, NULL)) { 313 if (base::LaunchProcess(*cmd_line_, options, NULL)) {
314 BrowserThread::PostTask( 314 BrowserThread::PostTask(
315 BrowserThread::IO, FROM_HERE, 315 BrowserThread::IO, FROM_HERE,
316 base::Bind(&Launcher::DoDetectLaunched, this)); 316 base::Bind(&Launcher::DoDetectLaunched, this));
317 } else { 317 } else {
318 BrowserThread::PostTask( 318 BrowserThread::PostTask(
319 BrowserThread::UI, FROM_HERE, base::Bind(&Launcher::Notify, this)); 319 BrowserThread::UI, FROM_HERE, base::Bind(&Launcher::Notify, this));
320 } 320 }
321 } 321 }
322 #endif // !OS_MACOSX 322 #endif // !OS_MACOSX
OLDNEW
« no previous file with comments | « chrome/browser/service/service_process_control.h ('k') | chrome/browser/service/service_process_control_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698