| 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..947bc6b9929044ab250a09afdb0e810bf57c7e34 100644
|
| --- a/chrome/browser/profile_resetter/profile_resetter.cc
|
| +++ b/chrome/browser/profile_resetter/profile_resetter.cc
|
| @@ -4,7 +4,9 @@
|
|
|
| #include "chrome/browser/profile_resetter/profile_resetter.h"
|
|
|
| +#include "base/prefs/pref_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "content/public/browser/browser_thread.h"
|
|
|
| ProfileResetter::ProfileResetter(Profile* profile)
|
| @@ -58,6 +60,11 @@ void ProfileResetter::Reset(ProfileResetter::ResettableFlags resettable_flags,
|
| ResetExtensions(extension_handling);
|
| }
|
|
|
| + if (resettable_flags & STARTUP_PAGE) {
|
| + reset_triggered_for_flags |= STARTUP_PAGE;
|
| + ResetStartPage();
|
| + }
|
| +
|
| DCHECK_EQ(resettable_flags, reset_triggered_for_flags);
|
| }
|
|
|
| @@ -70,7 +77,8 @@ 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() {
|
| @@ -82,8 +90,11 @@ void ProfileResetter::ResetDefaultSearchEngine() {
|
|
|
| void ProfileResetter::ResetHomepage() {
|
| DCHECK(CalledOnValidThread());
|
| - NOTIMPLEMENTED();
|
| - // TODO(battre/vabr): Implement
|
| + PrefService* prefs = profile_->GetPrefs();
|
| + DCHECK(prefs);
|
| + prefs->ClearPref(prefs::kHomePageIsNewTabPage);
|
| + prefs->ClearPref(prefs::kHomePage);
|
| + prefs->ClearPref(prefs::kShowHomeButton);
|
| MarkAsDone(HOMEPAGE);
|
| }
|
|
|
| @@ -107,3 +118,13 @@ void ProfileResetter::ResetExtensions(ExtensionHandling extension_handling) {
|
| // TODO(battre/vabr): Implement
|
| MarkAsDone(EXTENSIONS);
|
| }
|
| +
|
| +void ProfileResetter::ResetStartPage() {
|
| + DCHECK(CalledOnValidThread());
|
| + PrefService* prefs = profile_->GetPrefs();
|
| + DCHECK(prefs);
|
| + prefs->ClearPref(prefs::kRestoreOnStartup);
|
| + prefs->ClearPref(prefs::kURLsToRestoreOnStartup);
|
| + prefs->SetBoolean(prefs::kRestoreOnStartupMigrated, true);
|
| + MarkAsDone(STARTUP_PAGE);
|
| +}
|
|
|