Chromium Code Reviews| 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 |