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 "chrome/browser/password_manager/password_store.h" | 5 #include "chrome/browser/password_manager/password_store.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 request->ApplyIgnoreLoginsCutoff(); | 134 request->ApplyIgnoreLoginsCutoff(); |
135 request->ForwardResult(request->handle(), request->value); | 135 request->ForwardResult(request->handle(), request->value); |
136 } | 136 } |
137 | 137 |
138 template<typename BackendFunc> | 138 template<typename BackendFunc> |
139 CancelableRequestProvider::Handle PasswordStore::Schedule( | 139 CancelableRequestProvider::Handle PasswordStore::Schedule( |
140 BackendFunc func, PasswordStoreConsumer* consumer) { | 140 BackendFunc func, PasswordStoreConsumer* consumer) { |
141 scoped_refptr<GetLoginsRequest> request(NewGetLoginsRequest( | 141 scoped_refptr<GetLoginsRequest> request(NewGetLoginsRequest( |
142 base::Bind(&PasswordStoreConsumer::OnPasswordStoreRequestDone, | 142 base::Bind(&PasswordStoreConsumer::OnPasswordStoreRequestDone, |
143 base::Unretained(consumer)))); | 143 base::Unretained(consumer)))); |
144 AddRequest(request, consumer->cancelable_consumer()); | 144 AddRequest(request.get(), consumer->cancelable_consumer()); |
145 ScheduleTask(base::Bind(func, this, request)); | 145 ScheduleTask(base::Bind(func, this, request)); |
146 return request->handle(); | 146 return request->handle(); |
147 } | 147 } |
148 | 148 |
149 template<typename BackendFunc> | 149 template<typename BackendFunc> |
150 CancelableRequestProvider::Handle PasswordStore::Schedule( | 150 CancelableRequestProvider::Handle PasswordStore::Schedule( |
151 BackendFunc func, PasswordStoreConsumer* consumer, | 151 BackendFunc func, PasswordStoreConsumer* consumer, |
152 const PasswordForm& form, const base::Time& ignore_logins_cutoff) { | 152 const PasswordForm& form, const base::Time& ignore_logins_cutoff) { |
153 scoped_refptr<GetLoginsRequest> request(NewGetLoginsRequest( | 153 scoped_refptr<GetLoginsRequest> request(NewGetLoginsRequest( |
154 base::Bind(&PasswordStoreConsumer::OnPasswordStoreRequestDone, | 154 base::Bind(&PasswordStoreConsumer::OnPasswordStoreRequestDone, |
155 base::Unretained(consumer)))); | 155 base::Unretained(consumer)))); |
156 request->set_ignore_logins_cutoff(ignore_logins_cutoff); | 156 request->set_ignore_logins_cutoff(ignore_logins_cutoff); |
157 AddRequest(request, consumer->cancelable_consumer()); | 157 AddRequest(request.get(), consumer->cancelable_consumer()); |
158 ScheduleTask(base::Bind(func, this, request, form)); | 158 ScheduleTask(base::Bind(func, this, request, form)); |
159 return request->handle(); | 159 return request->handle(); |
160 } | 160 } |
161 | 161 |
162 void PasswordStore::WrapModificationTask(base::Closure task) { | 162 void PasswordStore::WrapModificationTask(base::Closure task) { |
163 #if !defined(OS_MACOSX) | 163 #if !defined(OS_MACOSX) |
164 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 164 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
165 #endif // !defined(OS_MACOSX) | 165 #endif // !defined(OS_MACOSX) |
166 task.Run(); | 166 task.Run(); |
167 PostNotifyLoginsChanged(); | 167 PostNotifyLoginsChanged(); |
168 } | 168 } |
169 | 169 |
170 void PasswordStore::PostNotifyLoginsChanged() { | 170 void PasswordStore::PostNotifyLoginsChanged() { |
171 #if !defined(OS_MACOSX) | 171 #if !defined(OS_MACOSX) |
172 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); | 172 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); |
173 #endif // !defined(OS_MACOSX) | 173 #endif // !defined(OS_MACOSX) |
174 BrowserThread::PostTask( | 174 BrowserThread::PostTask( |
175 BrowserThread::UI, FROM_HERE, | 175 BrowserThread::UI, FROM_HERE, |
176 base::Bind(&PasswordStore::NotifyLoginsChanged, this)); | 176 base::Bind(&PasswordStore::NotifyLoginsChanged, this)); |
177 } | 177 } |
178 | 178 |
179 void PasswordStore::NotifyLoginsChanged() { | 179 void PasswordStore::NotifyLoginsChanged() { |
180 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 180 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
181 FOR_EACH_OBSERVER(Observer, observers_, OnLoginsChanged()); | 181 FOR_EACH_OBSERVER(Observer, observers_, OnLoginsChanged()); |
182 } | 182 } |
OLD | NEW |