Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Side by Side Diff: chrome/browser/profile_resetter/profile_resetter.cc

Issue 15654005: Reset homepage and startup pages (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixed ResetStartPage, default startup page is different on CrOS Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/profile_resetter/profile_resetter.h" 5 #include "chrome/browser/profile_resetter/profile_resetter.h"
6 6
7 #include "base/prefs/pref_service.h"
7 #include "chrome/browser/profiles/profile.h" 8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/common/pref_names.h"
8 #include "content/public/browser/browser_thread.h" 10 #include "content/public/browser/browser_thread.h"
9 11
10 ProfileResetter::ProfileResetter(Profile* profile) 12 ProfileResetter::ProfileResetter(Profile* profile)
11 : profile_(profile), 13 : profile_(profile),
12 pending_reset_flags_(0) { 14 pending_reset_flags_(0) {
13 DCHECK(CalledOnValidThread()); 15 DCHECK(CalledOnValidThread());
14 } 16 }
15 17
16 ProfileResetter::~ProfileResetter() {} 18 ProfileResetter::~ProfileResetter() {}
17 19
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 if (resettable_flags & COOKIES_AND_SITE_DATA) { 53 if (resettable_flags & COOKIES_AND_SITE_DATA) {
52 reset_triggered_for_flags |= COOKIES_AND_SITE_DATA; 54 reset_triggered_for_flags |= COOKIES_AND_SITE_DATA;
53 ResetCookiesAndSiteData(); 55 ResetCookiesAndSiteData();
54 } 56 }
55 57
56 if (resettable_flags & EXTENSIONS) { 58 if (resettable_flags & EXTENSIONS) {
57 reset_triggered_for_flags |= EXTENSIONS; 59 reset_triggered_for_flags |= EXTENSIONS;
58 ResetExtensions(extension_handling); 60 ResetExtensions(extension_handling);
59 } 61 }
60 62
63 if (resettable_flags & STARTUP_PAGE) {
64 reset_triggered_for_flags |= STARTUP_PAGE;
65 ResetStartPage();
66 }
67
61 DCHECK_EQ(resettable_flags, reset_triggered_for_flags); 68 DCHECK_EQ(resettable_flags, reset_triggered_for_flags);
62 } 69 }
63 70
64 void ProfileResetter::MarkAsDone(Resettable resettable) { 71 void ProfileResetter::MarkAsDone(Resettable resettable) {
65 DCHECK(CalledOnValidThread()); 72 DCHECK(CalledOnValidThread());
66 73
67 // Check that we are never called twice or unexpectedly. 74 // Check that we are never called twice or unexpectedly.
68 CHECK(pending_reset_flags_ & resettable); 75 CHECK(pending_reset_flags_ & resettable);
69 76
70 pending_reset_flags_ &= ~resettable; 77 pending_reset_flags_ &= ~resettable;
71 78
72 if (!pending_reset_flags_) 79 if (!pending_reset_flags_)
73 callback_.Run(); 80 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
81 callback_);
74 } 82 }
75 83
76 void ProfileResetter::ResetDefaultSearchEngine() { 84 void ProfileResetter::ResetDefaultSearchEngine() {
77 DCHECK(CalledOnValidThread()); 85 DCHECK(CalledOnValidThread());
78 NOTIMPLEMENTED(); 86 NOTIMPLEMENTED();
79 // TODO(battre/vabr): Implement 87 // TODO(battre/vabr): Implement
80 MarkAsDone(DEFAULT_SEARCH_ENGINE); 88 MarkAsDone(DEFAULT_SEARCH_ENGINE);
81 } 89 }
82 90
83 void ProfileResetter::ResetHomepage() { 91 void ProfileResetter::ResetHomepage() {
84 DCHECK(CalledOnValidThread()); 92 DCHECK(CalledOnValidThread());
85 NOTIMPLEMENTED(); 93 PrefService* prefs = profile_->GetPrefs();
86 // TODO(battre/vabr): Implement 94 DCHECK(prefs);
95 prefs->ClearPref(prefs::kHomePageIsNewTabPage);
96 prefs->ClearPref(prefs::kHomePage);
97 prefs->ClearPref(prefs::kShowHomeButton);
87 MarkAsDone(HOMEPAGE); 98 MarkAsDone(HOMEPAGE);
88 } 99 }
89 100
90 void ProfileResetter::ResetContentSettings() { 101 void ProfileResetter::ResetContentSettings() {
91 DCHECK(CalledOnValidThread()); 102 DCHECK(CalledOnValidThread());
92 NOTIMPLEMENTED(); 103 NOTIMPLEMENTED();
93 // TODO(battre/vabr): Implement 104 // TODO(battre/vabr): Implement
94 MarkAsDone(CONTENT_SETTINGS); 105 MarkAsDone(CONTENT_SETTINGS);
95 } 106 }
96 107
97 void ProfileResetter::ResetCookiesAndSiteData() { 108 void ProfileResetter::ResetCookiesAndSiteData() {
98 DCHECK(CalledOnValidThread()); 109 DCHECK(CalledOnValidThread());
99 NOTIMPLEMENTED(); 110 NOTIMPLEMENTED();
100 // TODO(battre/vabr): Implement 111 // TODO(battre/vabr): Implement
101 MarkAsDone(COOKIES_AND_SITE_DATA); 112 MarkAsDone(COOKIES_AND_SITE_DATA);
102 } 113 }
103 114
104 void ProfileResetter::ResetExtensions(ExtensionHandling extension_handling) { 115 void ProfileResetter::ResetExtensions(ExtensionHandling extension_handling) {
105 DCHECK(CalledOnValidThread()); 116 DCHECK(CalledOnValidThread());
106 NOTIMPLEMENTED(); 117 NOTIMPLEMENTED();
107 // TODO(battre/vabr): Implement 118 // TODO(battre/vabr): Implement
108 MarkAsDone(EXTENSIONS); 119 MarkAsDone(EXTENSIONS);
109 } 120 }
121
122 void ProfileResetter::ResetStartPage() {
123 DCHECK(CalledOnValidThread());
124 PrefService* prefs = profile_->GetPrefs();
125 DCHECK(prefs);
126 prefs->ClearPref(prefs::kRestoreOnStartup);
127 prefs->ClearPref(prefs::kURLsToRestoreOnStartup);
128 prefs->SetBoolean(prefs::kRestoreOnStartupMigrated, true);
129 MarkAsDone(STARTUP_PAGE);
130 }
OLDNEW
« no previous file with comments | « chrome/browser/profile_resetter/profile_resetter.h ('k') | chrome/browser/profile_resetter/profile_resetter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698