| Index: chrome/test/base/testing_profile.cc | 
| diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc | 
| index 64d44dadcb5baeec2ba9eceff83d560f65d23a2f..61ced476aed838afbce588a2afc03d17b50ce777 100644 | 
| --- a/chrome/test/base/testing_profile.cc | 
| +++ b/chrome/test/base/testing_profile.cc | 
| @@ -470,8 +470,12 @@ void TestingProfile::CreateFaviconService() { | 
|  | 
| static KeyedService* BuildHistoryService(content::BrowserContext* context) { | 
| Profile* profile = static_cast<Profile*>(context); | 
| -  return new HistoryService(ChromeHistoryClientFactory::GetForProfile(profile), | 
| -                            profile); | 
| +  ChromeHistoryClient* history_client = | 
| +      ChromeHistoryClientFactory::GetForProfile(profile); | 
| +  HistoryService* history_service = new HistoryService(history_client, profile); | 
| +  if (history_client) | 
| +    history_client->SetHistoryService(history_service); | 
| +  return history_service; | 
| } | 
|  | 
| bool TestingProfile::CreateHistoryService(bool delete_file, bool no_db) { | 
| @@ -495,6 +499,13 @@ bool TestingProfile::CreateHistoryService(bool delete_file, bool no_db) { | 
| } | 
|  | 
| void TestingProfile::DestroyHistoryService() { | 
| +  // TODO(sdefresne): remove this once ChromeHistoryClient is no longer an | 
| +  // HistoryServiceObserver, http://crbug.com/373326 | 
| +  ChromeHistoryClient* history_client = | 
| +      ChromeHistoryClientFactory::GetForProfileWithoutCreating(this); | 
| +  if (history_client) | 
| +    history_client->Shutdown(); | 
| + | 
| HistoryService* history_service = | 
| HistoryServiceFactory::GetForProfileWithoutCreating(this); | 
| if (!history_service) | 
|  |