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

Side by Side Diff: components/autofill/browser/webdata/autofill_webdata_service.cc

Issue 14679005: Create an AutofillBackend interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clean up 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "components/autofill/browser/webdata/autofill_webdata_service.h" 5 #include "components/autofill/browser/webdata/autofill_webdata_service.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "components/autofill/browser/autofill_country.h" 9 #include "components/autofill/browser/autofill_country.h"
10 #include "components/autofill/browser/autofill_profile.h" 10 #include "components/autofill/browser/autofill_profile.h"
(...skipping 19 matching lines...) Expand all
30 30
31 if (!web_data_service) 31 if (!web_data_service)
32 return; 32 return;
33 33
34 BrowserThread::PostTask( 34 BrowserThread::PostTask(
35 BrowserThread::UI, FROM_HERE, 35 BrowserThread::UI, FROM_HERE,
36 Bind(&AutofillWebDataService::NotifyAutofillMultipleChangedOnUIThread, 36 Bind(&AutofillWebDataService::NotifyAutofillMultipleChangedOnUIThread,
37 make_scoped_refptr(web_data_service))); 37 make_scoped_refptr(web_data_service)));
38 } 38 }
39 39
40
Ilya Sherman 2013/05/07 00:02:43 nit: Spurious newline
Cait (Slow) 2013/05/07 19:22:07 Done.
40 AutofillWebDataService::AutofillWebDataService( 41 AutofillWebDataService::AutofillWebDataService(
41 scoped_refptr<WebDatabaseService> wdbs, 42 scoped_refptr<WebDatabaseService> wdbs,
42 const ProfileErrorCallback& callback) 43 const ProfileErrorCallback& callback)
43 : WebDataServiceBase(wdbs, callback), 44 : WebDataServiceBase(wdbs, callback),
45 weak_ptr_factory_(this),
44 autofill_backend_(new AutofillWebDataBackend()) { 46 autofill_backend_(new AutofillWebDataBackend()) {
45 } 47 }
46 48
47 AutofillWebDataService::AutofillWebDataService() 49 AutofillWebDataService::AutofillWebDataService()
48 : WebDataServiceBase(NULL, 50 : WebDataServiceBase(NULL,
49 WebDataServiceBase::ProfileErrorCallback()), 51 WebDataServiceBase::ProfileErrorCallback()),
52 weak_ptr_factory_(this),
50 autofill_backend_(new AutofillWebDataBackend()) { 53 autofill_backend_(new AutofillWebDataBackend()) {
51 } 54 }
52 55
53 void AutofillWebDataService::ShutdownOnUIThread() { 56 void AutofillWebDataService::ShutdownOnUIThread() {
57 weak_ptr_factory_.InvalidateWeakPtrs();
54 BrowserThread::PostTask( 58 BrowserThread::PostTask(
55 BrowserThread::DB, FROM_HERE, 59 BrowserThread::DB, FROM_HERE,
56 base::Bind(&AutofillWebDataService::ShutdownOnDBThread, this)); 60 base::Bind(&AutofillWebDataService::ShutdownOnDBThread, this));
57 WebDataServiceBase::ShutdownOnUIThread(); 61 WebDataServiceBase::ShutdownOnUIThread();
58 } 62 }
59 63
64 void AutofillWebDataService::GetDelegateOnDB(
65 const DelegateOnDBCallback& del_callback) {
66 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
67 base::Closure on_changed_callback = Bind(
68 &AutofillWebDataService::NotifyAutofillMultipleChangedOnUIThread,
69 weak_ptr_factory_.GetWeakPtr());
70 wdbs_->GetDatabaseOnDB(
71 Bind(&AutofillWebDataBackend::GetDelegate, autofill_backend_,
72 del_callback, on_changed_callback));
73 }
74
60 void AutofillWebDataService::AddFormFields( 75 void AutofillWebDataService::AddFormFields(
61 const std::vector<FormFieldData>& fields) { 76 const std::vector<FormFieldData>& fields) {
62 wdbs_->ScheduleDBTask(FROM_HERE, 77 wdbs_->ScheduleDBTask(FROM_HERE,
63 Bind(&AutofillWebDataBackend::AddFormElements, 78 Bind(&AutofillWebDataBackend::AddFormElements,
64 autofill_backend_, fields)); 79 autofill_backend_, fields));
65 } 80 }
66 81
67 WebDataServiceBase::Handle AutofillWebDataService::GetFormValuesForElementName( 82 WebDataServiceBase::Handle AutofillWebDataService::GetFormValuesForElementName(
68 const base::string16& name, const base::string16& prefix, int limit, 83 const base::string16& name, const base::string16& prefix, int limit,
69 WebDataServiceConsumer* consumer) { 84 WebDataServiceConsumer* consumer) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 autofill_backend_->AddObserver(observer); 179 autofill_backend_->AddObserver(observer);
165 } 180 }
166 181
167 void AutofillWebDataService::RemoveObserver( 182 void AutofillWebDataService::RemoveObserver(
168 AutofillWebDataServiceObserverOnDBThread* observer) { 183 AutofillWebDataServiceObserverOnDBThread* observer) {
169 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 184 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
170 if (autofill_backend_) 185 if (autofill_backend_)
171 autofill_backend_->RemoveObserver(observer); 186 autofill_backend_->RemoveObserver(observer);
172 } 187 }
173 188
189
Jói 2013/05/06 23:08:39 spurious added blank line?
Cait (Slow) 2013/05/07 19:22:07 Done.
174 void AutofillWebDataService::AddObserver( 190 void AutofillWebDataService::AddObserver(
175 AutofillWebDataServiceObserverOnUIThread* observer) { 191 AutofillWebDataServiceObserverOnUIThread* observer) {
176 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 192 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
177 ui_observer_list_.AddObserver(observer); 193 ui_observer_list_.AddObserver(observer);
178 } 194 }
179 195
180 void AutofillWebDataService::RemoveObserver( 196 void AutofillWebDataService::RemoveObserver(
181 AutofillWebDataServiceObserverOnUIThread* observer) { 197 AutofillWebDataServiceObserverOnUIThread* observer) {
182 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 198 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
183 ui_observer_list_.RemoveObserver(observer); 199 ui_observer_list_.RemoveObserver(observer);
(...skipping 16 matching lines...) Expand all
200 } 216 }
201 217
202 void AutofillWebDataService::NotifyAutofillMultipleChangedOnUIThread() { 218 void AutofillWebDataService::NotifyAutofillMultipleChangedOnUIThread() {
203 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 219 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
204 FOR_EACH_OBSERVER(AutofillWebDataServiceObserverOnUIThread, 220 FOR_EACH_OBSERVER(AutofillWebDataServiceObserverOnUIThread,
205 ui_observer_list_, 221 ui_observer_list_,
206 AutofillMultipleChanged()); 222 AutofillMultipleChanged());
207 } 223 }
208 224
209 } // namespace autofill 225 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698