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_factory.h" | 5 #include "chrome/browser/password_manager/password_store_factory.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/environment.h" | 8 #include "base/environment.h" |
9 #include "base/metrics/histogram_macros.h" | 9 #include "base/metrics/histogram_macros.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 scoped_refptr<PasswordStore> ps; | 168 scoped_refptr<PasswordStore> ps; |
169 #if defined(OS_WIN) | 169 #if defined(OS_WIN) |
170 ps = new PasswordStoreWin(main_thread_runner, | 170 ps = new PasswordStoreWin(main_thread_runner, |
171 db_thread_runner, | 171 db_thread_runner, |
172 login_db.release(), | 172 login_db.release(), |
173 WebDataServiceFactory::GetPasswordWebDataForProfile( | 173 WebDataServiceFactory::GetPasswordWebDataForProfile( |
174 profile, Profile::EXPLICIT_ACCESS)); | 174 profile, Profile::EXPLICIT_ACCESS)); |
175 #elif defined(OS_MACOSX) | 175 #elif defined(OS_MACOSX) |
176 crypto::AppleKeychain* keychain = | 176 crypto::AppleKeychain* keychain = |
177 CommandLine::ForCurrentProcess()->HasSwitch( | 177 base::CommandLine::ForCurrentProcess()->HasSwitch( |
178 os_crypt::switches::kUseMockKeychain) ? | 178 os_crypt::switches::kUseMockKeychain) |
179 new crypto::MockAppleKeychain() : new crypto::AppleKeychain(); | 179 ? new crypto::MockAppleKeychain() |
| 180 : new crypto::AppleKeychain(); |
180 ps = new PasswordStoreMac( | 181 ps = new PasswordStoreMac( |
181 main_thread_runner, db_thread_runner, keychain, login_db.release()); | 182 main_thread_runner, db_thread_runner, keychain, login_db.release()); |
182 #elif defined(OS_CHROMEOS) || defined(OS_ANDROID) | 183 #elif defined(OS_CHROMEOS) || defined(OS_ANDROID) |
183 // For now, we use PasswordStoreDefault. We might want to make a native | 184 // For now, we use PasswordStoreDefault. We might want to make a native |
184 // backend for PasswordStoreX (see below) in the future though. | 185 // backend for PasswordStoreX (see below) in the future though. |
185 ps = new password_manager::PasswordStoreDefault( | 186 ps = new password_manager::PasswordStoreDefault( |
186 main_thread_runner, db_thread_runner, login_db.release()); | 187 main_thread_runner, db_thread_runner, login_db.release()); |
187 #elif defined(USE_X11) | 188 #elif defined(USE_X11) |
188 // On POSIX systems, we try to use the "native" password management system of | 189 // On POSIX systems, we try to use the "native" password management system of |
189 // the desktop environment currently running, allowing GNOME Keyring in XFCE. | 190 // the desktop environment currently running, allowing GNOME Keyring in XFCE. |
190 // (In all cases we fall back on the basic store in case of failure.) | 191 // (In all cases we fall back on the basic store in case of failure.) |
191 base::nix::DesktopEnvironment desktop_env; | 192 base::nix::DesktopEnvironment desktop_env; |
192 std::string store_type = | 193 std::string store_type = |
193 CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 194 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
194 switches::kPasswordStore); | 195 switches::kPasswordStore); |
195 if (store_type == "kwallet") { | 196 if (store_type == "kwallet") { |
196 desktop_env = base::nix::DESKTOP_ENVIRONMENT_KDE4; | 197 desktop_env = base::nix::DESKTOP_ENVIRONMENT_KDE4; |
197 } else if (store_type == "gnome") { | 198 } else if (store_type == "gnome") { |
198 desktop_env = base::nix::DESKTOP_ENVIRONMENT_GNOME; | 199 desktop_env = base::nix::DESKTOP_ENVIRONMENT_GNOME; |
199 } else if (store_type == "basic") { | 200 } else if (store_type == "basic") { |
200 desktop_env = base::nix::DESKTOP_ENVIRONMENT_OTHER; | 201 desktop_env = base::nix::DESKTOP_ENVIRONMENT_OTHER; |
201 } else { | 202 } else { |
202 // Detect the store to use automatically. | 203 // Detect the store to use automatically. |
203 scoped_ptr<base::Environment> env(base::Environment::Create()); | 204 scoped_ptr<base::Environment> env(base::Environment::Create()); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 } | 272 } |
272 | 273 |
273 content::BrowserContext* PasswordStoreFactory::GetBrowserContextToUse( | 274 content::BrowserContext* PasswordStoreFactory::GetBrowserContextToUse( |
274 content::BrowserContext* context) const { | 275 content::BrowserContext* context) const { |
275 return chrome::GetBrowserContextRedirectedInIncognito(context); | 276 return chrome::GetBrowserContextRedirectedInIncognito(context); |
276 } | 277 } |
277 | 278 |
278 bool PasswordStoreFactory::ServiceIsNULLWhileTesting() const { | 279 bool PasswordStoreFactory::ServiceIsNULLWhileTesting() const { |
279 return true; | 280 return true; |
280 } | 281 } |
OLD | NEW |