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

Unified Diff: chrome/browser/profile.cc

Issue 114057: Re-land the password store work from bug 8205, with changes that should fix b... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/profile.h ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profile.cc
===================================================================
--- chrome/browser/profile.cc (revision 17245)
+++ chrome/browser/profile.cc (working copy)
@@ -19,6 +19,7 @@
#include "chrome/browser/extensions/user_script_master.h"
#include "chrome/browser/history/history.h"
#include "chrome/browser/net/chrome_url_request_context.h"
+#include "chrome/browser/password_manager/password_store_default.h"
#include "chrome/browser/profile_manager.h"
#include "chrome/browser/renderer_host/render_process_host.h"
#include "chrome/browser/search_engines/template_url_fetcher.h"
@@ -88,6 +89,14 @@
return default_request_context_;
}
+#if defined(OS_LINUX)
+// Temporarily disabled while we figure some stuff out.
+// http://code.google.com/p/chromium/issues/detail?id=12351
+// #include "chrome/browser/password_manager/password_store_gnome.h"
+// #include "chrome/browser/password_manager/password_store_kwallet.h"
+#elif defined(OS_WIN)
+#include "chrome/browser/password_manager/password_store_win.h"
+#endif
////////////////////////////////////////////////////////////////////////////////
//
@@ -189,6 +198,15 @@
}
}
+ virtual PasswordStore* GetPasswordStore(ServiceAccessType sat) {
+ if (sat == EXPLICIT_ACCESS) {
+ return profile_->GetPasswordStore(sat);
+ } else {
+ NOTREACHED() << "This profile is OffTheRecord";
+ return NULL;
+ }
+ }
+
virtual PrefService* GetPrefs() {
return profile_->GetPrefs();
}
@@ -389,6 +407,7 @@
extensions_request_context_(NULL),
history_service_created_(false),
created_web_data_service_(false),
+ created_password_store_(false),
created_download_manager_(false),
created_theme_provider_(false),
start_time_(Time::Now()),
@@ -762,6 +781,41 @@
web_data_service_.swap(wds);
}
+PasswordStore* ProfileImpl::GetPasswordStore(ServiceAccessType sat) {
+ if (!created_password_store_)
+ CreatePasswordStore();
+ return password_store_.get();
+}
+
+void ProfileImpl::CreatePasswordStore() {
+ DCHECK(!created_password_store_ && password_store_.get() == NULL);
+ created_password_store_ = true;
+ scoped_refptr<PasswordStore> ps;
+#if defined(OS_LINUX)
+// Temporarily disabled while we figure some stuff out.
+// http://code.google.com/p/chromium/issues/detail?id=12351
+// if (getenv("KDE_FULL_SESSION")) {
+// ps = new PasswordStoreKWallet();
+// } else {
+// ps = new PasswordStoreGnome();
+// }
+ NOTIMPLEMENTED();
+#elif defined(OS_WIN)
+ ps = new PasswordStoreWin(GetWebDataService(Profile::IMPLICIT_ACCESS));
+#else
+ NOTIMPLEMENTED();
+#endif
+ if (!ps || !ps->Init()) {
+ // Try falling back to the default password manager
+ LOG(WARNING) << "Could not initialise native password manager - "
+ "falling back to default";
+ ps = new PasswordStoreDefault(GetWebDataService(Profile::IMPLICIT_ACCESS));
+ if (!ps->Init())
+ return;
+ }
+ password_store_.swap(ps);
+}
+
DownloadManager* ProfileImpl::GetDownloadManager() {
if (!created_download_manager_) {
scoped_refptr<DownloadManager> dlm(new DownloadManager);
« no previous file with comments | « chrome/browser/profile.h ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698