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

Side by Side 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, 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/profile.h ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/profile.h" 5 #include "chrome/browser/profile.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
11 #include "base/scoped_ptr.h" 11 #include "base/scoped_ptr.h"
12 #include "base/string_util.h" 12 #include "base/string_util.h"
13 #include "chrome/browser/bookmarks/bookmark_model.h" 13 #include "chrome/browser/bookmarks/bookmark_model.h"
14 #include "chrome/browser/browser_list.h" 14 #include "chrome/browser/browser_list.h"
15 #include "chrome/browser/browser_process.h" 15 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/download/download_manager.h" 16 #include "chrome/browser/download/download_manager.h"
17 #include "chrome/browser/extensions/extension_process_manager.h" 17 #include "chrome/browser/extensions/extension_process_manager.h"
18 #include "chrome/browser/extensions/extensions_service.h" 18 #include "chrome/browser/extensions/extensions_service.h"
19 #include "chrome/browser/extensions/user_script_master.h" 19 #include "chrome/browser/extensions/user_script_master.h"
20 #include "chrome/browser/history/history.h" 20 #include "chrome/browser/history/history.h"
21 #include "chrome/browser/net/chrome_url_request_context.h" 21 #include "chrome/browser/net/chrome_url_request_context.h"
22 #include "chrome/browser/password_manager/password_store_default.h"
22 #include "chrome/browser/profile_manager.h" 23 #include "chrome/browser/profile_manager.h"
23 #include "chrome/browser/renderer_host/render_process_host.h" 24 #include "chrome/browser/renderer_host/render_process_host.h"
24 #include "chrome/browser/search_engines/template_url_fetcher.h" 25 #include "chrome/browser/search_engines/template_url_fetcher.h"
25 #include "chrome/browser/search_engines/template_url_model.h" 26 #include "chrome/browser/search_engines/template_url_model.h"
26 #include "chrome/browser/sessions/session_service.h" 27 #include "chrome/browser/sessions/session_service.h"
27 #include "chrome/browser/sessions/tab_restore_service.h" 28 #include "chrome/browser/sessions/tab_restore_service.h"
28 #include "chrome/browser/spellchecker.h" 29 #include "chrome/browser/spellchecker.h"
29 #include "chrome/browser/ssl/ssl_host_state.h" 30 #include "chrome/browser/ssl/ssl_host_state.h"
30 #include "chrome/browser/browser_theme_provider.h" 31 #include "chrome/browser/browser_theme_provider.h"
31 #include "chrome/browser/visitedlink_master.h" 32 #include "chrome/browser/visitedlink_master.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 // static 82 // static
82 Profile* Profile::CreateProfile(const FilePath& path) { 83 Profile* Profile::CreateProfile(const FilePath& path) {
83 return new ProfileImpl(path); 84 return new ProfileImpl(path);
84 } 85 }
85 86
86 // static 87 // static
87 URLRequestContext* Profile::GetDefaultRequestContext() { 88 URLRequestContext* Profile::GetDefaultRequestContext() {
88 return default_request_context_; 89 return default_request_context_;
89 } 90 }
90 91
92 #if defined(OS_LINUX)
93 // Temporarily disabled while we figure some stuff out.
94 // http://code.google.com/p/chromium/issues/detail?id=12351
95 // #include "chrome/browser/password_manager/password_store_gnome.h"
96 // #include "chrome/browser/password_manager/password_store_kwallet.h"
97 #elif defined(OS_WIN)
98 #include "chrome/browser/password_manager/password_store_win.h"
99 #endif
91 100
92 //////////////////////////////////////////////////////////////////////////////// 101 ////////////////////////////////////////////////////////////////////////////////
93 // 102 //
94 // OffTheRecordProfileImpl is a profile subclass that wraps an existing profile 103 // OffTheRecordProfileImpl is a profile subclass that wraps an existing profile
95 // to make it suitable for the off the record mode. 104 // to make it suitable for the off the record mode.
96 // 105 //
97 //////////////////////////////////////////////////////////////////////////////// 106 ////////////////////////////////////////////////////////////////////////////////
98 class OffTheRecordProfileImpl : public Profile, 107 class OffTheRecordProfileImpl : public Profile,
99 public NotificationObserver { 108 public NotificationObserver {
100 public: 109 public:
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 191
183 virtual WebDataService* GetWebDataService(ServiceAccessType sat) { 192 virtual WebDataService* GetWebDataService(ServiceAccessType sat) {
184 if (sat == EXPLICIT_ACCESS) { 193 if (sat == EXPLICIT_ACCESS) {
185 return profile_->GetWebDataService(sat); 194 return profile_->GetWebDataService(sat);
186 } else { 195 } else {
187 NOTREACHED() << "This profile is OffTheRecord"; 196 NOTREACHED() << "This profile is OffTheRecord";
188 return NULL; 197 return NULL;
189 } 198 }
190 } 199 }
191 200
201 virtual PasswordStore* GetPasswordStore(ServiceAccessType sat) {
202 if (sat == EXPLICIT_ACCESS) {
203 return profile_->GetPasswordStore(sat);
204 } else {
205 NOTREACHED() << "This profile is OffTheRecord";
206 return NULL;
207 }
208 }
209
192 virtual PrefService* GetPrefs() { 210 virtual PrefService* GetPrefs() {
193 return profile_->GetPrefs(); 211 return profile_->GetPrefs();
194 } 212 }
195 213
196 virtual TemplateURLModel* GetTemplateURLModel() { 214 virtual TemplateURLModel* GetTemplateURLModel() {
197 return profile_->GetTemplateURLModel(); 215 return profile_->GetTemplateURLModel();
198 } 216 }
199 217
200 virtual TemplateURLFetcher* GetTemplateURLFetcher() { 218 virtual TemplateURLFetcher* GetTemplateURLFetcher() {
201 return profile_->GetTemplateURLFetcher(); 219 return profile_->GetTemplateURLFetcher();
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 DISALLOW_EVIL_CONSTRUCTORS(OffTheRecordProfileImpl); 400 DISALLOW_EVIL_CONSTRUCTORS(OffTheRecordProfileImpl);
383 }; 401 };
384 402
385 ProfileImpl::ProfileImpl(const FilePath& path) 403 ProfileImpl::ProfileImpl(const FilePath& path)
386 : path_(path), 404 : path_(path),
387 request_context_(NULL), 405 request_context_(NULL),
388 media_request_context_(NULL), 406 media_request_context_(NULL),
389 extensions_request_context_(NULL), 407 extensions_request_context_(NULL),
390 history_service_created_(false), 408 history_service_created_(false),
391 created_web_data_service_(false), 409 created_web_data_service_(false),
410 created_password_store_(false),
392 created_download_manager_(false), 411 created_download_manager_(false),
393 created_theme_provider_(false), 412 created_theme_provider_(false),
394 start_time_(Time::Now()), 413 start_time_(Time::Now()),
395 spellchecker_(NULL), 414 spellchecker_(NULL),
396 shutdown_session_service_(false) { 415 shutdown_session_service_(false) {
397 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << 416 DCHECK(!path.empty()) << "Using an empty path will attempt to write " <<
398 "profile files to the root directory!"; 417 "profile files to the root directory!";
399 create_session_service_timer_.Start( 418 create_session_service_timer_.Start(
400 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, 419 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this,
401 &ProfileImpl::EnsureSessionServiceCreated); 420 &ProfileImpl::EnsureSessionServiceCreated);
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 774
756 void ProfileImpl::CreateWebDataService() { 775 void ProfileImpl::CreateWebDataService() {
757 DCHECK(!created_web_data_service_ && web_data_service_.get() == NULL); 776 DCHECK(!created_web_data_service_ && web_data_service_.get() == NULL);
758 created_web_data_service_ = true; 777 created_web_data_service_ = true;
759 scoped_refptr<WebDataService> wds(new WebDataService()); 778 scoped_refptr<WebDataService> wds(new WebDataService());
760 if (!wds->Init(GetPath())) 779 if (!wds->Init(GetPath()))
761 return; 780 return;
762 web_data_service_.swap(wds); 781 web_data_service_.swap(wds);
763 } 782 }
764 783
784 PasswordStore* ProfileImpl::GetPasswordStore(ServiceAccessType sat) {
785 if (!created_password_store_)
786 CreatePasswordStore();
787 return password_store_.get();
788 }
789
790 void ProfileImpl::CreatePasswordStore() {
791 DCHECK(!created_password_store_ && password_store_.get() == NULL);
792 created_password_store_ = true;
793 scoped_refptr<PasswordStore> ps;
794 #if defined(OS_LINUX)
795 // Temporarily disabled while we figure some stuff out.
796 // http://code.google.com/p/chromium/issues/detail?id=12351
797 // if (getenv("KDE_FULL_SESSION")) {
798 // ps = new PasswordStoreKWallet();
799 // } else {
800 // ps = new PasswordStoreGnome();
801 // }
802 NOTIMPLEMENTED();
803 #elif defined(OS_WIN)
804 ps = new PasswordStoreWin(GetWebDataService(Profile::IMPLICIT_ACCESS));
805 #else
806 NOTIMPLEMENTED();
807 #endif
808 if (!ps || !ps->Init()) {
809 // Try falling back to the default password manager
810 LOG(WARNING) << "Could not initialise native password manager - "
811 "falling back to default";
812 ps = new PasswordStoreDefault(GetWebDataService(Profile::IMPLICIT_ACCESS));
813 if (!ps->Init())
814 return;
815 }
816 password_store_.swap(ps);
817 }
818
765 DownloadManager* ProfileImpl::GetDownloadManager() { 819 DownloadManager* ProfileImpl::GetDownloadManager() {
766 if (!created_download_manager_) { 820 if (!created_download_manager_) {
767 scoped_refptr<DownloadManager> dlm(new DownloadManager); 821 scoped_refptr<DownloadManager> dlm(new DownloadManager);
768 dlm->Init(this); 822 dlm->Init(this);
769 created_download_manager_ = true; 823 created_download_manager_ = true;
770 download_manager_.swap(dlm); 824 download_manager_.swap(dlm);
771 } 825 }
772 return download_manager_.get(); 826 return download_manager_.get();
773 } 827 }
774 828
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
988 1042
989 void ProfileImpl::StopCreateSessionServiceTimer() { 1043 void ProfileImpl::StopCreateSessionServiceTimer() {
990 create_session_service_timer_.Stop(); 1044 create_session_service_timer_.Stop();
991 } 1045 }
992 1046
993 #ifdef CHROME_PERSONALIZATION 1047 #ifdef CHROME_PERSONALIZATION
994 ProfilePersonalization* ProfileImpl::GetProfilePersonalization() { 1048 ProfilePersonalization* ProfileImpl::GetProfilePersonalization() {
995 return personalization_.get(); 1049 return personalization_.get();
996 } 1050 }
997 #endif 1051 #endif
OLDNEW
« 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