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

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

Issue 15572002: Implemented 'Reset Search engines' feature. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Addressed Dominic's comments 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 "chrome/browser/profiles/profile.h" 7 #include "chrome/browser/profiles/profile.h"
8 #include "chrome/browser/search_engines/template_url_prepopulate_data.h"
9 #include "chrome/browser/search_engines/template_url_service.h"
10 #include "chrome/browser/search_engines/template_url_service_factory.h"
8 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
9 12
10 ProfileResetter::ProfileResetter(Profile* profile) 13 ProfileResetter::ProfileResetter(Profile* profile)
11 : profile_(profile), 14 : profile_(profile),
12 pending_reset_flags_(0) { 15 pending_reset_flags_(0) {
13 DCHECK(CalledOnValidThread()); 16 DCHECK(CalledOnValidThread());
17 DCHECK(profile_);
14 } 18 }
15 19
16 ProfileResetter::~ProfileResetter() {} 20 ProfileResetter::~ProfileResetter() {}
17 21
18 void ProfileResetter::Reset(ProfileResetter::ResettableFlags resettable_flags, 22 void ProfileResetter::Reset(ProfileResetter::ResettableFlags resettable_flags,
19 ExtensionHandling extension_handling, 23 ExtensionHandling extension_handling,
20 const base::Closure& callback) { 24 const base::Closure& callback) {
21 DCHECK(CalledOnValidThread()); 25 DCHECK(CalledOnValidThread());
22 26
23 // We should never be called with unknown flags. 27 // We should never be called with unknown flags.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 67
64 void ProfileResetter::MarkAsDone(Resettable resettable) { 68 void ProfileResetter::MarkAsDone(Resettable resettable) {
65 DCHECK(CalledOnValidThread()); 69 DCHECK(CalledOnValidThread());
66 70
67 // Check that we are never called twice or unexpectedly. 71 // Check that we are never called twice or unexpectedly.
68 CHECK(pending_reset_flags_ & resettable); 72 CHECK(pending_reset_flags_ & resettable);
69 73
70 pending_reset_flags_ &= ~resettable; 74 pending_reset_flags_ &= ~resettable;
71 75
72 if (!pending_reset_flags_) 76 if (!pending_reset_flags_)
73 callback_.Run(); 77 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
78 callback_);
74 } 79 }
75 80
76 void ProfileResetter::ResetDefaultSearchEngine() { 81 void ProfileResetter::ResetDefaultSearchEngine() {
77 DCHECK(CalledOnValidThread()); 82 DCHECK(CalledOnValidThread());
78 NOTIMPLEMENTED(); 83
79 // TODO(battre/vabr): Implement 84 TemplateURLPrepopulateData::ClearPrepopulatedEnginesInPrefs(profile_);
85 TemplateURLService* template_url_service =
86 TemplateURLServiceFactory::GetForProfile(profile_);
87 DCHECK(template_url_service);
88 template_url_service->ClearDefaultProviderFromPrefs();
89 template_url_service->ResetNonExtensionURLs();
90
80 MarkAsDone(DEFAULT_SEARCH_ENGINE); 91 MarkAsDone(DEFAULT_SEARCH_ENGINE);
81 } 92 }
82 93
83 void ProfileResetter::ResetHomepage() { 94 void ProfileResetter::ResetHomepage() {
84 DCHECK(CalledOnValidThread()); 95 DCHECK(CalledOnValidThread());
85 NOTIMPLEMENTED(); 96 NOTIMPLEMENTED();
86 // TODO(battre/vabr): Implement 97 // TODO(battre/vabr): Implement
87 MarkAsDone(HOMEPAGE); 98 MarkAsDone(HOMEPAGE);
88 } 99 }
89 100
(...skipping 10 matching lines...) Expand all
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698