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

Side by Side Diff: net/proxy/proxy_config_service_linux_unittest.cc

Issue 8742001: Convert more NewRunnable* to base::Bind(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "net/proxy/proxy_config_service_linux.h" 5 #include "net/proxy/proxy_config_service_linux.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h"
11 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
12 #include "base/file_path.h" 13 #include "base/file_path.h"
13 #include "base/file_util.h" 14 #include "base/file_util.h"
14 #include "base/format_macros.h" 15 #include "base/format_macros.h"
15 #include "base/logging.h" 16 #include "base/logging.h"
16 #include "base/string_util.h" 17 #include "base/string_util.h"
17 #include "base/stringprintf.h" 18 #include "base/stringprintf.h"
18 #include "base/synchronization/waitable_event.h" 19 #include "base/synchronization/waitable_event.h"
19 #include "base/task.h" 20 #include "base/task.h"
20 #include "base/threading/thread.h" 21 #include "base/threading/thread.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 explicit SynchConfigGetter(net::ProxyConfigServiceLinux* config_service) 263 explicit SynchConfigGetter(net::ProxyConfigServiceLinux* config_service)
263 : event_(false, false), 264 : event_(false, false),
264 io_thread_("IO_Thread"), 265 io_thread_("IO_Thread"),
265 config_service_(config_service) { 266 config_service_(config_service) {
266 // Start an IO thread. 267 // Start an IO thread.
267 base::Thread::Options options; 268 base::Thread::Options options;
268 options.message_loop_type = MessageLoop::TYPE_IO; 269 options.message_loop_type = MessageLoop::TYPE_IO;
269 io_thread_.StartWithOptions(options); 270 io_thread_.StartWithOptions(options);
270 271
271 // Make sure the thread started. 272 // Make sure the thread started.
272 io_thread_.message_loop()->PostTask(FROM_HERE, NewRunnableMethod( 273 io_thread_.message_loop()->PostTask(FROM_HERE,
273 this, &SynchConfigGetter::Init)); 274 base::Bind(&SynchConfigGetter::Init, base::Unretained(this)));
274 Wait(); 275 Wait();
275 } 276 }
276 277
277 ~SynchConfigGetter() { 278 ~SynchConfigGetter() {
278 // Let the config service post a destroy message to the IO thread 279 // Let the config service post a destroy message to the IO thread
279 // before cleaning up that thread. 280 // before cleaning up that thread.
280 delete config_service_; 281 delete config_service_;
281 // Clean up the IO thread. 282 // Clean up the IO thread.
282 io_thread_.message_loop()->PostTask(FROM_HERE, NewRunnableMethod( 283 io_thread_.message_loop()->PostTask(FROM_HERE,
283 this, &SynchConfigGetter::Cleanup)); 284 base::Bind(&SynchConfigGetter::CleanUp, base::Unretained(this)));
284 Wait(); 285 Wait();
285 } 286 }
286 287
287 // Does gconf setup and initial fetch of the proxy config, 288 // Does gconf setup and initial fetch of the proxy config,
288 // all on the calling thread (meant to be the thread with the 289 // all on the calling thread (meant to be the thread with the
289 // default glib main loop, which is the UI thread). 290 // default glib main loop, which is the UI thread).
290 void SetupAndInitialFetch() { 291 void SetupAndInitialFetch() {
291 MessageLoop* file_loop = io_thread_.message_loop(); 292 MessageLoop* file_loop = io_thread_.message_loop();
292 DCHECK_EQ(MessageLoop::TYPE_IO, file_loop->type()); 293 DCHECK_EQ(MessageLoop::TYPE_IO, file_loop->type());
293 // We pass the mock IO thread as both the IO and file threads. 294 // We pass the mock IO thread as both the IO and file threads.
294 config_service_->SetupAndFetchInitialConfig( 295 config_service_->SetupAndFetchInitialConfig(
295 MessageLoop::current(), io_thread_.message_loop(), 296 MessageLoop::current(), io_thread_.message_loop(),
296 static_cast<MessageLoopForIO*>(file_loop)); 297 static_cast<MessageLoopForIO*>(file_loop));
297 } 298 }
298 // Synchronously gets the proxy config. 299 // Synchronously gets the proxy config.
299 net::ProxyConfigService::ConfigAvailability SyncGetLatestProxyConfig( 300 net::ProxyConfigService::ConfigAvailability SyncGetLatestProxyConfig(
300 net::ProxyConfig* config) { 301 net::ProxyConfig* config) {
301 io_thread_.message_loop()->PostTask(FROM_HERE, NewRunnableMethod( 302 io_thread_.message_loop()->PostTask(FROM_HERE,
302 this, &SynchConfigGetter::GetLatestConfigOnIOThread)); 303 base::Bind(&SynchConfigGetter::GetLatestConfigOnIOThread,
304 base::Unretained(this)));
303 Wait(); 305 Wait();
304 *config = proxy_config_; 306 *config = proxy_config_;
305 return get_latest_config_result_; 307 return get_latest_config_result_;
306 } 308 }
307 309
308 private: 310 private:
309 // [Runs on |io_thread_|] 311 // [Runs on |io_thread_|]
310 void Init() { 312 void Init() {
311 event_.Signal(); 313 event_.Signal();
312 } 314 }
313 315
314 // Calls GetLatestProxyConfig, running on |io_thread_| Signals |event_| 316 // Calls GetLatestProxyConfig, running on |io_thread_| Signals |event_|
315 // on completion. 317 // on completion.
316 void GetLatestConfigOnIOThread() { 318 void GetLatestConfigOnIOThread() {
317 get_latest_config_result_ = 319 get_latest_config_result_ =
318 config_service_->GetLatestProxyConfig(&proxy_config_); 320 config_service_->GetLatestProxyConfig(&proxy_config_);
319 event_.Signal(); 321 event_.Signal();
320 } 322 }
321 323
322 // [Runs on |io_thread_|] Signals |event_| on cleanup completion. 324 // [Runs on |io_thread_|] Signals |event_| on cleanup completion.
323 void Cleanup() { 325 void CleanUp() {
324 MessageLoop::current()->RunAllPending(); 326 MessageLoop::current()->RunAllPending();
325 event_.Signal(); 327 event_.Signal();
326 } 328 }
327 329
328 void Wait() { 330 void Wait() {
329 event_.Wait(); 331 event_.Wait();
330 event_.Reset(); 332 event_.Reset();
331 } 333 }
332 334
333 base::WaitableEvent event_; 335 base::WaitableEvent event_;
(...skipping 1208 matching lines...) Expand 10 before | Expand all | Expand 10 after
1542 ProxyConfig config; 1544 ProxyConfig config;
1543 sync_config_getter.SetupAndInitialFetch(); 1545 sync_config_getter.SetupAndInitialFetch();
1544 EXPECT_EQ(ProxyConfigService::CONFIG_VALID, 1546 EXPECT_EQ(ProxyConfigService::CONFIG_VALID,
1545 sync_config_getter.SyncGetLatestProxyConfig(&config)); 1547 sync_config_getter.SyncGetLatestProxyConfig(&config));
1546 EXPECT_TRUE(config.auto_detect()); 1548 EXPECT_TRUE(config.auto_detect());
1547 EXPECT_EQ(GURL(), config.pac_url()); 1549 EXPECT_EQ(GURL(), config.pac_url());
1548 } 1550 }
1549 } 1551 }
1550 1552
1551 } // namespace net 1553 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698