Index: chrome/browser/profile_resetter/profile_resetter.cc |
diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc |
index 2528754e54cd862b11263556b1dcaddd7be86fc1..1696b537f76faa9b7d459a2b835c159a74fb2112 100644 |
--- a/chrome/browser/profile_resetter/profile_resetter.cc |
+++ b/chrome/browser/profile_resetter/profile_resetter.cc |
@@ -5,12 +5,16 @@ |
#include "chrome/browser/profile_resetter/profile_resetter.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/search_engines/template_url_prepopulate_data.h" |
+#include "chrome/browser/search_engines/template_url_service.h" |
+#include "chrome/browser/search_engines/template_url_service_factory.h" |
#include "content/public/browser/browser_thread.h" |
ProfileResetter::ProfileResetter(Profile* profile) |
: profile_(profile), |
pending_reset_flags_(0) { |
DCHECK(CalledOnValidThread()); |
+ DCHECK(profile_); |
} |
ProfileResetter::~ProfileResetter() {} |
@@ -70,13 +74,20 @@ void ProfileResetter::MarkAsDone(Resettable resettable) { |
pending_reset_flags_ &= ~resettable; |
if (!pending_reset_flags_) |
- callback_.Run(); |
+ content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, |
+ callback_); |
} |
void ProfileResetter::ResetDefaultSearchEngine() { |
DCHECK(CalledOnValidThread()); |
- NOTIMPLEMENTED(); |
- // TODO(battre/vabr): Implement |
+ |
+ TemplateURLPrepopulateData::ClearPrepopulatedEnginesInPrefs(profile_); |
+ TemplateURLService* template_url_service = |
+ TemplateURLServiceFactory::GetForProfile(profile_); |
+ DCHECK(template_url_service); |
+ template_url_service->ClearDefaultProviderFromPrefs(); |
+ template_url_service->ResetNonExtensionURLs(); |
+ |
MarkAsDone(DEFAULT_SEARCH_ENGINE); |
} |