• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/sync/profile_sync_test_util.h"
6 
7 #include "base/bind.h"
8 #include "base/threading/thread.h"
9 
10 using content::BrowserThread;
11 
ProfileSyncServiceObserverMock()12 ProfileSyncServiceObserverMock::ProfileSyncServiceObserverMock() {}
13 
~ProfileSyncServiceObserverMock()14 ProfileSyncServiceObserverMock::~ProfileSyncServiceObserverMock() {}
15 
ThreadNotifier(base::Thread * notify_thread)16 ThreadNotifier::ThreadNotifier(base::Thread* notify_thread)
17     : done_event_(false, false),
18       notify_thread_(notify_thread) {}
19 
Notify(int type,const content::NotificationDetails & details)20 void ThreadNotifier::Notify(int type,
21                             const content::NotificationDetails& details) {
22   Notify(type, content::NotificationService::AllSources(), details);
23 }
24 
Notify(int type,const content::NotificationSource & source,const content::NotificationDetails & details)25 void ThreadNotifier::Notify(int type,
26                             const content::NotificationSource& source,
27                             const content::NotificationDetails& details) {
28   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
29   notify_thread_->message_loop()->PostTask(
30       FROM_HERE,
31       base::Bind(&ThreadNotifier::NotifyTask, this, type, source, details));
32   done_event_.Wait();
33 }
34 
~ThreadNotifier()35 ThreadNotifier::~ThreadNotifier() {}
36 
NotifyTask(int type,const content::NotificationSource & source,const content::NotificationDetails & details)37 void ThreadNotifier::NotifyTask(int type,
38                                 const content::NotificationSource& source,
39                                 const content::NotificationDetails& details) {
40   content::NotificationService::current()->Notify(type, source, details);
41   done_event_.Signal();
42 }
43