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

Side by Side Diff: chrome/browser/password_manager/password_store_factory.cc

Issue 1383303002: Use kwalletd5 in KDE 5 environments (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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
OLDNEW
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/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/metrics/histogram_macros.h" 10 #include "base/metrics/histogram_macros.h"
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 // the desktop environment currently running, allowing GNOME Keyring in XFCE. 269 // the desktop environment currently running, allowing GNOME Keyring in XFCE.
270 // (In all cases we fall back on the basic store in case of failure.) 270 // (In all cases we fall back on the basic store in case of failure.)
271 base::nix::DesktopEnvironment desktop_env = GetDesktopEnvironment(); 271 base::nix::DesktopEnvironment desktop_env = GetDesktopEnvironment();
272 base::nix::DesktopEnvironment used_desktop_env; 272 base::nix::DesktopEnvironment used_desktop_env;
273 std::string store_type = 273 std::string store_type =
274 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 274 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
275 switches::kPasswordStore); 275 switches::kPasswordStore);
276 LinuxBackendUsed used_backend = PLAINTEXT; 276 LinuxBackendUsed used_backend = PLAINTEXT;
277 if (store_type == "kwallet") { 277 if (store_type == "kwallet") {
278 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_KDE4; 278 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_KDE4;
279 } else if (store_type == "kwallet5") {
280 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_KDE5;
279 } else if (store_type == "gnome") { 281 } else if (store_type == "gnome") {
280 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_GNOME; 282 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_GNOME;
281 } else if (store_type == "basic") { 283 } else if (store_type == "basic") {
282 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_OTHER; 284 used_desktop_env = base::nix::DESKTOP_ENVIRONMENT_OTHER;
283 } else { 285 } else {
284 // Detect the store to use automatically. 286 // Detect the store to use automatically.
285 used_desktop_env = desktop_env; 287 used_desktop_env = desktop_env;
286 const char* name = base::nix::GetDesktopEnvironmentName(desktop_env); 288 const char* name = base::nix::GetDesktopEnvironmentName(desktop_env);
287 VLOG(1) << "Password storage detected desktop environment: " 289 VLOG(1) << "Password storage detected desktop environment: "
288 << (name ? name : "(unknown)"); 290 << (name ? name : "(unknown)");
289 } 291 }
290 292
291 PrefService* prefs = profile->GetPrefs(); 293 PrefService* prefs = profile->GetPrefs();
292 LocalProfileId id = GetLocalProfileId(prefs); 294 LocalProfileId id = GetLocalProfileId(prefs);
293 295
294 scoped_ptr<PasswordStoreX::NativeBackend> backend; 296 scoped_ptr<PasswordStoreX::NativeBackend> backend;
295 if (used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_KDE4 || 297 if (used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_KDE4 ||
296 used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_KDE5) { 298 used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_KDE5) {
297 // KDE3 didn't use DBus, which our KWallet store uses. 299 // KDE3 didn't use DBus, which our KWallet store uses.
298 VLOG(1) << "Trying KWallet for password storage."; 300 VLOG(1) << "Trying KWallet for password storage.";
299 backend.reset(new NativeBackendKWallet(id)); 301 backend.reset(new NativeBackendKWallet(id, used_desktop_env));
300 if (backend->Init()) { 302 if (backend->Init()) {
301 VLOG(1) << "Using KWallet for password storage."; 303 VLOG(1) << "Using KWallet for password storage.";
302 used_backend = KWALLET; 304 used_backend = KWALLET;
303 } else { 305 } else {
304 backend.reset(); 306 backend.reset();
305 } 307 }
306 } else if (used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_GNOME || 308 } else if (used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_GNOME ||
307 used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_UNITY || 309 used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_UNITY ||
308 used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_XFCE) { 310 used_desktop_env == base::nix::DESKTOP_ENVIRONMENT_XFCE) {
309 #if defined(USE_LIBSECRET) 311 #if defined(USE_LIBSECRET)
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 break; 439 break;
438 case LIBSECRET: 440 case LIBSECRET:
439 usage = OTHER_LIBSECRET; 441 usage = OTHER_LIBSECRET;
440 break; 442 break;
441 } 443 }
442 } 444 }
443 UMA_HISTOGRAM_ENUMERATION("PasswordManager.LinuxBackendStatistics", usage, 445 UMA_HISTOGRAM_ENUMERATION("PasswordManager.LinuxBackendStatistics", usage,
444 MAX_BACKEND_USAGE_VALUE); 446 MAX_BACKEND_USAGE_VALUE);
445 } 447 }
446 #endif 448 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698