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

Unified Diff: chrome/browser/password_manager/password_store_proxy_mac.cc

Issue 1200603003: Integrate PasswordStoreProxyMac instead of PasswordStoreMac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/password_manager/password_store_proxy_mac.cc
diff --git a/chrome/browser/password_manager/password_store_proxy_mac.cc b/chrome/browser/password_manager/password_store_proxy_mac.cc
index 8e7bd5b7fb875dea67b5ca2c01c56deb0e1c1b5c..88f6c60109d3b59c8e6aef5c9db6b98af286f025 100644
--- a/chrome/browser/password_manager/password_store_proxy_mac.cc
+++ b/chrome/browser/password_manager/password_store_proxy_mac.cc
@@ -6,6 +6,7 @@
#include "chrome/browser/password_manager/password_store_mac.h"
#include "chrome/browser/password_manager/simple_password_store_mac.h"
+#include "content/public/browser/browser_thread.h"
#include "crypto/apple_keychain.h"
using password_manager::PasswordStoreChangeList;
@@ -14,10 +15,12 @@ PasswordStoreProxyMac::PasswordStoreProxyMac(
scoped_refptr<base::SingleThreadTaskRunner> main_thread_runner,
scoped_ptr<crypto::AppleKeychain> keychain,
scoped_ptr<password_manager::LoginDatabase> login_db)
- : PasswordStore(main_thread_runner, nullptr) {
+ : PasswordStore(main_thread_runner, nullptr),
+ login_metadata_db_(login_db.Pass()) {
+ DCHECK(login_metadata_db_);
// TODO(vasilii): for now the class is just a wrapper around PasswordStoreMac.
- password_store_mac_ = new PasswordStoreMac(main_thread_runner, nullptr,
- keychain.Pass(), login_db.Pass());
+ password_store_mac_ = new PasswordStoreMac(
+ main_thread_runner, nullptr, keychain.Pass(), login_metadata_db_.get());
}
PasswordStoreProxyMac::~PasswordStoreProxyMac() {
@@ -25,11 +28,31 @@ PasswordStoreProxyMac::~PasswordStoreProxyMac() {
bool PasswordStoreProxyMac::Init(
const syncer::SyncableService::StartSyncFlare& flare) {
- return GetBackend()->Init(flare);
+ // Set up a background thread.
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ thread_.reset(new base::Thread("Chrome_PasswordStore_Thread"));
+
+ if (!thread_->Start()) {
+ thread_.reset();
+ return false;
+ }
+
+ ScheduleTask(
+ base::Bind(&PasswordStoreProxyMac::InitOnBackgroundThread, this));
+ password_store_mac_->InitWithTaskRunner(GetBackgroundTaskRunner());
+ return password_manager::PasswordStore::Init(flare);
}
void PasswordStoreProxyMac::Shutdown() {
- return GetBackend()->Shutdown();
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ PasswordStore::Shutdown();
+ GetBackend()->Shutdown();
+ thread_->Stop();
+}
+
+scoped_refptr<base::SingleThreadTaskRunner>
+PasswordStoreProxyMac::GetBackgroundTaskRunner() {
+ return thread_ ? thread_->task_runner() : nullptr;
}
password_manager::PasswordStore* PasswordStoreProxyMac::GetBackend() const {
@@ -38,9 +61,12 @@ password_manager::PasswordStore* PasswordStoreProxyMac::GetBackend() const {
return password_store_simple_.get();
}
-scoped_refptr<base::SingleThreadTaskRunner>
-PasswordStoreProxyMac::GetBackgroundTaskRunner() {
- return GetBackend()->GetBackgroundTaskRunner();
+void PasswordStoreProxyMac::InitOnBackgroundThread() {
+ DCHECK(GetBackgroundTaskRunner()->BelongsToCurrentThread());
+ if (!login_metadata_db_->Init()) {
+ login_metadata_db_.reset();
+ LOG(ERROR) << "Could not create/open login database.";
+ }
}
void PasswordStoreProxyMac::ReportMetricsImpl(
@@ -83,16 +109,6 @@ ScopedVector<autofill::PasswordForm> PasswordStoreProxyMac::FillMatchingLogins(
return GetBackend()->FillMatchingLogins(form, prompt_policy);
}
-void PasswordStoreProxyMac::GetAutofillableLoginsImpl(
- scoped_ptr<PasswordStore::GetLoginsRequest> request) {
- GetBackend()->GetAutofillableLoginsImpl(request.Pass());
-}
-
-void PasswordStoreProxyMac::GetBlacklistLoginsImpl(
- scoped_ptr<PasswordStore::GetLoginsRequest> request) {
- GetBackend()->GetBlacklistLoginsImpl(request.Pass());
-}
-
bool PasswordStoreProxyMac::FillAutofillableLogins(
ScopedVector<autofill::PasswordForm>* forms) {
return GetBackend()->FillAutofillableLogins(forms);

Powered by Google App Engine
This is Rietveld 408576698