OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |