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

Side by Side Diff: chrome/browser/service_process/service_process_control_browsertest.cc

Issue 1395103003: Don't use base::MessageLoop::{Quit,QuitClosure} in chrome/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_process/service_process_control.h" 5 #include "chrome/browser/service_process/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/location.h" 10 #include "base/location.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 this), 48 this),
49 base::Bind( 49 base::Bind(
50 &ServiceProcessControlBrowserTest::ProcessControlLaunchFailed, 50 &ServiceProcessControlBrowserTest::ProcessControlLaunchFailed,
51 this)); 51 this));
52 52
53 // Then run the message loop to keep things running. 53 // Then run the message loop to keep things running.
54 content::RunMessageLoop(); 54 content::RunMessageLoop();
55 } 55 }
56 56
57 static void QuitMessageLoop() { 57 static void QuitMessageLoop() {
58 base::MessageLoop::current()->Quit(); 58 base::MessageLoop::current()->QuitWhenIdle();
59 } 59 }
60 60
61 static void CloudPrintInfoCallback( 61 static void CloudPrintInfoCallback(
62 const cloud_print::CloudPrintProxyInfo& proxy_info) { 62 const cloud_print::CloudPrintProxyInfo& proxy_info) {
63 QuitMessageLoop(); 63 QuitMessageLoop();
64 } 64 }
65 65
66 void Disconnect() { 66 void Disconnect() {
67 // This will close the IPC connection. 67 // This will close the IPC connection.
68 ServiceProcessControl::GetInstance()->Disconnect(); 68 ServiceProcessControl::GetInstance()->Disconnect();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 base::Process::OpenWithAccess(service_pid, 104 base::Process::OpenWithAccess(service_pid,
105 SYNCHRONIZE | PROCESS_QUERY_INFORMATION); 105 SYNCHRONIZE | PROCESS_QUERY_INFORMATION);
106 #else 106 #else
107 service_process_ = base::Process::Open(service_pid); 107 service_process_ = base::Process::Open(service_pid);
108 #endif 108 #endif
109 EXPECT_TRUE(service_process_.IsValid()); 109 EXPECT_TRUE(service_process_.IsValid());
110 // Quit the current message. Post a QuitTask instead of just calling Quit() 110 // Quit the current message. Post a QuitTask instead of just calling Quit()
111 // because this can get invoked in the context of a Launch() call and we 111 // because this can get invoked in the context of a Launch() call and we
112 // may not be in Run() yet. 112 // may not be in Run() yet.
113 base::ThreadTaskRunnerHandle::Get()->PostTask( 113 base::ThreadTaskRunnerHandle::Get()->PostTask(
114 FROM_HERE, base::MessageLoop::QuitClosure()); 114 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
115 } 115 }
116 116
117 void ProcessControlLaunchFailed() { 117 void ProcessControlLaunchFailed() {
118 ADD_FAILURE(); 118 ADD_FAILURE();
119 // Quit the current message. 119 // Quit the current message.
120 base::ThreadTaskRunnerHandle::Get()->PostTask( 120 base::ThreadTaskRunnerHandle::Get()->PostTask(
121 FROM_HERE, base::MessageLoop::QuitClosure()); 121 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
122 } 122 }
123 123
124 private: 124 private:
125 base::Process service_process_; 125 base::Process service_process_;
126 }; 126 };
127 127
128 class RealServiceProcessControlBrowserTest 128 class RealServiceProcessControlBrowserTest
129 : public ServiceProcessControlBrowserTest { 129 : public ServiceProcessControlBrowserTest {
130 public: 130 public:
131 void SetUpCommandLine(base::CommandLine* command_line) override { 131 void SetUpCommandLine(base::CommandLine* command_line) override {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 ASSERT_TRUE(ServiceProcessControl::GetInstance()->IsConnected()); 193 ASSERT_TRUE(ServiceProcessControl::GetInstance()->IsConnected());
194 EXPECT_TRUE(ServiceProcessControl::GetInstance()->GetCloudPrintProxyInfo( 194 EXPECT_TRUE(ServiceProcessControl::GetInstance()->GetCloudPrintProxyInfo(
195 base::Bind(&ServiceProcessControlBrowserTest::CloudPrintInfoCallback))); 195 base::Bind(&ServiceProcessControlBrowserTest::CloudPrintInfoCallback)));
196 content::RunMessageLoop(); 196 content::RunMessageLoop();
197 } 197 }
198 198
199 static void DecrementUntilZero(int* count) { 199 static void DecrementUntilZero(int* count) {
200 (*count)--; 200 (*count)--;
201 if (!(*count)) 201 if (!(*count))
202 base::ThreadTaskRunnerHandle::Get()->PostTask( 202 base::ThreadTaskRunnerHandle::Get()->PostTask(
203 FROM_HERE, base::MessageLoop::QuitClosure()); 203 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
204 } 204 }
205 205
206 // Flaky on Mac. http://crbug.com/517420 206 // Flaky on Mac. http://crbug.com/517420
207 #if defined(OS_MACOSX) 207 #if defined(OS_MACOSX)
208 #define MAYBE_MultipleLaunchTasks DISABLED_MultipleLaunchTasks 208 #define MAYBE_MultipleLaunchTasks DISABLED_MultipleLaunchTasks
209 #else 209 #else
210 #define MAYBE_MultipleLaunchTasks MultipleLaunchTasks 210 #define MAYBE_MultipleLaunchTasks MultipleLaunchTasks
211 #endif 211 #endif
212 // Invoke multiple Launch calls in succession and ensure that all the tasks 212 // Invoke multiple Launch calls in succession and ensure that all the tasks
213 // get invoked. 213 // get invoked.
214 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest, 214 IN_PROC_BROWSER_TEST_F(ServiceProcessControlBrowserTest,
215 MAYBE_MultipleLaunchTasks) { 215 MAYBE_MultipleLaunchTasks) {
216 ServiceProcessControl* process = ServiceProcessControl::GetInstance(); 216 ServiceProcessControl* process = ServiceProcessControl::GetInstance();
217 int launch_count = 5; 217 int launch_count = 5;
218 for (int i = 0; i < launch_count; i++) { 218 for (int i = 0; i < launch_count; i++) {
219 // Launch the process asynchronously. 219 // Launch the process asynchronously.
220 process->Launch(base::Bind(&DecrementUntilZero, &launch_count), 220 process->Launch(base::Bind(&DecrementUntilZero, &launch_count),
221 base::MessageLoop::QuitClosure()); 221 base::MessageLoop::QuitWhenIdleClosure());
222 } 222 }
223 // Then run the message loop to keep things running. 223 // Then run the message loop to keep things running.
224 content::RunMessageLoop(); 224 content::RunMessageLoop();
225 EXPECT_EQ(0, launch_count); 225 EXPECT_EQ(0, launch_count);
226 } 226 }
227 227
228 // Flaky on Mac. http://crbug.com/517420 228 // Flaky on Mac. http://crbug.com/517420
229 #if defined(OS_MACOSX) 229 #if defined(OS_MACOSX)
230 #define MAYBE_SameLaunchTask DISABLED_SameLaunchTask 230 #define MAYBE_SameLaunchTask DISABLED_SameLaunchTask
231 #else 231 #else
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 // Callback should not be called during GetHistograms call. 334 // Callback should not be called during GetHistograms call.
335 EXPECT_CALL(*this, MockHistogramsCallback()).Times(0); 335 EXPECT_CALL(*this, MockHistogramsCallback()).Times(0);
336 // Wait for real callback by providing large timeout value. 336 // Wait for real callback by providing large timeout value.
337 EXPECT_TRUE(ServiceProcessControl::GetInstance()->GetHistograms( 337 EXPECT_TRUE(ServiceProcessControl::GetInstance()->GetHistograms(
338 base::Bind(&ServiceProcessControlBrowserTest::HistogramsCallback, 338 base::Bind(&ServiceProcessControlBrowserTest::HistogramsCallback,
339 base::Unretained(this)), 339 base::Unretained(this)),
340 base::TimeDelta::FromHours(1))); 340 base::TimeDelta::FromHours(1)));
341 EXPECT_CALL(*this, MockHistogramsCallback()).Times(1); 341 EXPECT_CALL(*this, MockHistogramsCallback()).Times(1);
342 content::RunMessageLoop(); 342 content::RunMessageLoop();
343 } 343 }
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/safe_browsing_test.cc ('k') | chrome/browser/site_details_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698