OLD | NEW |
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" | |
23 #include "chrome/browser/profile_manager.h" | 22 #include "chrome/browser/profile_manager.h" |
24 #include "chrome/browser/renderer_host/render_process_host.h" | 23 #include "chrome/browser/renderer_host/render_process_host.h" |
25 #include "chrome/browser/search_engines/template_url_fetcher.h" | 24 #include "chrome/browser/search_engines/template_url_fetcher.h" |
26 #include "chrome/browser/search_engines/template_url_model.h" | 25 #include "chrome/browser/search_engines/template_url_model.h" |
27 #include "chrome/browser/sessions/session_service.h" | 26 #include "chrome/browser/sessions/session_service.h" |
28 #include "chrome/browser/sessions/tab_restore_service.h" | 27 #include "chrome/browser/sessions/tab_restore_service.h" |
29 #include "chrome/browser/spellchecker.h" | 28 #include "chrome/browser/spellchecker.h" |
30 #include "chrome/browser/ssl/ssl_host_state.h" | 29 #include "chrome/browser/ssl/ssl_host_state.h" |
31 #include "chrome/browser/browser_theme_provider.h" | 30 #include "chrome/browser/browser_theme_provider.h" |
32 #include "chrome/browser/visitedlink_master.h" | 31 #include "chrome/browser/visitedlink_master.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 // static | 81 // static |
83 Profile* Profile::CreateProfile(const FilePath& path) { | 82 Profile* Profile::CreateProfile(const FilePath& path) { |
84 return new ProfileImpl(path); | 83 return new ProfileImpl(path); |
85 } | 84 } |
86 | 85 |
87 // static | 86 // static |
88 URLRequestContext* Profile::GetDefaultRequestContext() { | 87 URLRequestContext* Profile::GetDefaultRequestContext() { |
89 return default_request_context_; | 88 return default_request_context_; |
90 } | 89 } |
91 | 90 |
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 | |
100 | 91 |
101 //////////////////////////////////////////////////////////////////////////////// | 92 //////////////////////////////////////////////////////////////////////////////// |
102 // | 93 // |
103 // OffTheRecordProfileImpl is a profile subclass that wraps an existing profile | 94 // OffTheRecordProfileImpl is a profile subclass that wraps an existing profile |
104 // to make it suitable for the off the record mode. | 95 // to make it suitable for the off the record mode. |
105 // | 96 // |
106 //////////////////////////////////////////////////////////////////////////////// | 97 //////////////////////////////////////////////////////////////////////////////// |
107 class OffTheRecordProfileImpl : public Profile, | 98 class OffTheRecordProfileImpl : public Profile, |
108 public NotificationObserver { | 99 public NotificationObserver { |
109 public: | 100 public: |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 | 184 |
194 virtual WebDataService* GetWebDataService(ServiceAccessType sat) { | 185 virtual WebDataService* GetWebDataService(ServiceAccessType sat) { |
195 if (sat == EXPLICIT_ACCESS) { | 186 if (sat == EXPLICIT_ACCESS) { |
196 return profile_->GetWebDataService(sat); | 187 return profile_->GetWebDataService(sat); |
197 } else { | 188 } else { |
198 NOTREACHED() << "This profile is OffTheRecord"; | 189 NOTREACHED() << "This profile is OffTheRecord"; |
199 return NULL; | 190 return NULL; |
200 } | 191 } |
201 } | 192 } |
202 | 193 |
203 virtual PasswordStore* GetPasswordStore(ServiceAccessType sat) { | |
204 if (sat == EXPLICIT_ACCESS) { | |
205 return profile_->GetPasswordStore(sat); | |
206 } else { | |
207 NOTREACHED() << "This profile is OffTheRecord"; | |
208 return NULL; | |
209 } | |
210 } | |
211 | |
212 virtual PrefService* GetPrefs() { | 194 virtual PrefService* GetPrefs() { |
213 return profile_->GetPrefs(); | 195 return profile_->GetPrefs(); |
214 } | 196 } |
215 | 197 |
216 virtual TemplateURLModel* GetTemplateURLModel() { | 198 virtual TemplateURLModel* GetTemplateURLModel() { |
217 return profile_->GetTemplateURLModel(); | 199 return profile_->GetTemplateURLModel(); |
218 } | 200 } |
219 | 201 |
220 virtual TemplateURLFetcher* GetTemplateURLFetcher() { | 202 virtual TemplateURLFetcher* GetTemplateURLFetcher() { |
221 return profile_->GetTemplateURLFetcher(); | 203 return profile_->GetTemplateURLFetcher(); |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
423 DISALLOW_EVIL_CONSTRUCTORS(OffTheRecordProfileImpl); | 405 DISALLOW_EVIL_CONSTRUCTORS(OffTheRecordProfileImpl); |
424 }; | 406 }; |
425 | 407 |
426 ProfileImpl::ProfileImpl(const FilePath& path) | 408 ProfileImpl::ProfileImpl(const FilePath& path) |
427 : path_(path), | 409 : path_(path), |
428 request_context_(NULL), | 410 request_context_(NULL), |
429 media_request_context_(NULL), | 411 media_request_context_(NULL), |
430 extensions_request_context_(NULL), | 412 extensions_request_context_(NULL), |
431 history_service_created_(false), | 413 history_service_created_(false), |
432 created_web_data_service_(false), | 414 created_web_data_service_(false), |
433 created_password_store_(false), | |
434 created_download_manager_(false), | 415 created_download_manager_(false), |
435 created_theme_provider_(false), | 416 created_theme_provider_(false), |
436 start_time_(Time::Now()), | 417 start_time_(Time::Now()), |
437 spellchecker_(NULL), | 418 spellchecker_(NULL), |
438 shutdown_session_service_(false) { | 419 shutdown_session_service_(false) { |
439 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << | 420 DCHECK(!path.empty()) << "Using an empty path will attempt to write " << |
440 "profile files to the root directory!"; | 421 "profile files to the root directory!"; |
441 create_session_service_timer_.Start( | 422 create_session_service_timer_.Start( |
442 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, | 423 TimeDelta::FromMilliseconds(kCreateSessionServiceDelayMS), this, |
443 &ProfileImpl::EnsureSessionServiceCreated); | 424 &ProfileImpl::EnsureSessionServiceCreated); |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
797 | 778 |
798 void ProfileImpl::CreateWebDataService() { | 779 void ProfileImpl::CreateWebDataService() { |
799 DCHECK(!created_web_data_service_ && web_data_service_.get() == NULL); | 780 DCHECK(!created_web_data_service_ && web_data_service_.get() == NULL); |
800 created_web_data_service_ = true; | 781 created_web_data_service_ = true; |
801 scoped_refptr<WebDataService> wds(new WebDataService()); | 782 scoped_refptr<WebDataService> wds(new WebDataService()); |
802 if (!wds->Init(GetPath())) | 783 if (!wds->Init(GetPath())) |
803 return; | 784 return; |
804 web_data_service_.swap(wds); | 785 web_data_service_.swap(wds); |
805 } | 786 } |
806 | 787 |
807 PasswordStore* ProfileImpl::GetPasswordStore(ServiceAccessType sat) { | |
808 if (!created_password_store_) | |
809 CreatePasswordStore(); | |
810 return password_store_.get(); | |
811 } | |
812 | |
813 void ProfileImpl::CreatePasswordStore() { | |
814 DCHECK(!created_password_store_ && password_store_.get() == NULL); | |
815 created_password_store_ = true; | |
816 scoped_refptr<PasswordStore> ps; | |
817 #if defined(OS_LINUX) | |
818 // Temporarily disabled while we figure some stuff out. | |
819 // http://code.google.com/p/chromium/issues/detail?id=12351 | |
820 // if (getenv("KDE_FULL_SESSION")) { | |
821 // ps = new PasswordStoreKWallet(); | |
822 // } else { | |
823 // ps = new PasswordStoreGnome(); | |
824 // } | |
825 NOTIMPLEMENTED(); | |
826 #elif defined(OS_WIN) | |
827 ps = new PasswordStoreWin(GetWebDataService(Profile::IMPLICIT_ACCESS)); | |
828 #else | |
829 NOTIMPLEMENTED(); | |
830 #endif | |
831 if (!ps || !ps->Init()) { | |
832 // Try falling back to the default password manager | |
833 LOG(WARNING) << "Could not initialise native password manager - " | |
834 "falling back to default"; | |
835 ps = new PasswordStoreDefault(GetWebDataService(Profile::IMPLICIT_ACCESS)); | |
836 if (!ps->Init()) | |
837 return; | |
838 } | |
839 password_store_.swap(ps); | |
840 } | |
841 | |
842 DownloadManager* ProfileImpl::GetDownloadManager() { | 788 DownloadManager* ProfileImpl::GetDownloadManager() { |
843 if (!created_download_manager_) { | 789 if (!created_download_manager_) { |
844 scoped_refptr<DownloadManager> dlm(new DownloadManager); | 790 scoped_refptr<DownloadManager> dlm(new DownloadManager); |
845 dlm->Init(this); | 791 dlm->Init(this); |
846 created_download_manager_ = true; | 792 created_download_manager_ = true; |
847 download_manager_.swap(dlm); | 793 download_manager_.swap(dlm); |
848 } | 794 } |
849 return download_manager_.get(); | 795 return download_manager_.get(); |
850 } | 796 } |
851 | 797 |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1065 | 1011 |
1066 void ProfileImpl::StopCreateSessionServiceTimer() { | 1012 void ProfileImpl::StopCreateSessionServiceTimer() { |
1067 create_session_service_timer_.Stop(); | 1013 create_session_service_timer_.Stop(); |
1068 } | 1014 } |
1069 | 1015 |
1070 #ifdef CHROME_PERSONALIZATION | 1016 #ifdef CHROME_PERSONALIZATION |
1071 ProfilePersonalization* ProfileImpl::GetProfilePersonalization() { | 1017 ProfilePersonalization* ProfileImpl::GetProfilePersonalization() { |
1072 return personalization_.get(); | 1018 return personalization_.get(); |
1073 } | 1019 } |
1074 #endif | 1020 #endif |
OLD | NEW |