| Index: chrome/browser/sync/profile_sync_components_factory_impl_unittest.cc | 
| diff --git a/chrome/browser/sync/profile_sync_components_factory_impl_unittest.cc b/chrome/browser/sync/profile_sync_components_factory_impl_unittest.cc | 
| index 22d77a351ae5d4a10d4193597c9d61585e7e5d49..17335bb5cc613aa3042daa26f4099dfbafb47df6 100644 | 
| --- a/chrome/browser/sync/profile_sync_components_factory_impl_unittest.cc | 
| +++ b/chrome/browser/sync/profile_sync_components_factory_impl_unittest.cc | 
| @@ -8,9 +8,11 @@ | 
| #include "base/file_path.h" | 
| #include "base/memory/scoped_ptr.h" | 
| #include "base/message_loop.h" | 
| +#include "base/synchronization/waitable_event.h" | 
| #include "chrome/browser/sync/glue/data_type_controller.h" | 
| #include "chrome/browser/sync/profile_sync_components_factory_impl.h" | 
| #include "chrome/browser/sync/profile_sync_service.h" | 
| +#include "chrome/browser/webdata/web_data_service_factory.h" | 
| #include "chrome/common/chrome_switches.h" | 
| #include "chrome/test/base/testing_profile.h" | 
| #include "content/test/test_browser_thread.h" | 
| @@ -22,14 +24,27 @@ using content::BrowserThread; | 
| class ProfileSyncComponentsFactoryImplTest : public testing::Test { | 
| protected: | 
| ProfileSyncComponentsFactoryImplTest() | 
| -      : ui_thread_(BrowserThread::UI, &message_loop_) {} | 
| +      : ui_thread_(BrowserThread::UI, &message_loop_), | 
| +        db_thread_(BrowserThread::DB) {} | 
|  | 
| -  virtual void SetUp() { | 
| +  virtual void SetUp() OVERRIDE { | 
| +    db_thread_.Start(); | 
| profile_.reset(new TestingProfile()); | 
| FilePath program_path(FILE_PATH_LITERAL("chrome.exe")); | 
| command_line_.reset(new CommandLine(program_path)); | 
| } | 
|  | 
| +  virtual void TearDown() OVERRIDE { | 
| +    profile_.reset(); | 
| +    // Schedule another task on the DB thread to notify us that it's safe to | 
| +    // carry on with the test. | 
| +    base::WaitableEvent done(false, false); | 
| +    BrowserThread::PostTask(BrowserThread::DB, FROM_HERE, | 
| +        base::Bind(&base::WaitableEvent::Signal, base::Unretained(&done))); | 
| +    done.Wait(); | 
| +    db_thread_.Stop(); | 
| +  } | 
| + | 
| // Returns the collection of default datatypes. | 
| static std::vector<syncable::ModelType> DefaultDatatypes() { | 
| std::vector<syncable::ModelType> datatypes; | 
| @@ -78,6 +93,8 @@ class ProfileSyncComponentsFactoryImplTest : public testing::Test { | 
| void TestSwitchDisablesType(const char* cmd_switch, | 
| syncable::ModelType type) { | 
| command_line_->AppendSwitch(cmd_switch); | 
| +    WebDataServiceFactory::GetInstance()->SetTestingFactory(profile_.get(), | 
| +                                                            NULL); | 
| scoped_ptr<ProfileSyncService> pss( | 
| new ProfileSyncService( | 
| new ProfileSyncComponentsFactoryImpl(profile_.get(), | 
| @@ -94,11 +111,14 @@ class ProfileSyncComponentsFactoryImplTest : public testing::Test { | 
|  | 
| MessageLoop message_loop_; | 
| content::TestBrowserThread ui_thread_; | 
| +  content::TestBrowserThread db_thread_; | 
| scoped_ptr<Profile> profile_; | 
| scoped_ptr<CommandLine> command_line_; | 
| }; | 
|  | 
| TEST_F(ProfileSyncComponentsFactoryImplTest, CreatePSSDefault) { | 
| +  WebDataServiceFactory::GetInstance()->SetTestingFactory(profile_.get(), | 
| +                                                          NULL); | 
| scoped_ptr<ProfileSyncService> pss( | 
| new ProfileSyncService( | 
| new ProfileSyncComponentsFactoryImpl(profile_.get(), | 
|  |