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

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

Issue 9363045: Revert 121920 - dbus: add ObjectPath type (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 10 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
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/native_backend_kwallet_x.h" 5 #include "chrome/browser/password_manager/native_backend_kwallet_x.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/pickle.h" 11 #include "base/pickle.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "base/stringprintf.h" 13 #include "base/stringprintf.h"
14 #include "base/synchronization/waitable_event.h" 14 #include "base/synchronization/waitable_event.h"
15 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
16 #include "dbus/bus.h" 16 #include "dbus/bus.h"
17 #include "dbus/message.h" 17 #include "dbus/message.h"
18 #include "dbus/object_path.h"
19 #include "dbus/object_proxy.h" 18 #include "dbus/object_proxy.h"
20 #include "grit/chromium_strings.h" 19 #include "grit/chromium_strings.h"
21 #include "ui/base/l10n/l10n_util.h" 20 #include "ui/base/l10n/l10n_util.h"
22 21
23 using content::BrowserThread; 22 using content::BrowserThread;
24 using webkit::forms::PasswordForm; 23 using webkit::forms::PasswordForm;
25 24
26 // We could localize this string, but then changing your locale would cause 25 // We could localize this string, but then changing your locale would cause
27 // you to lose access to all your stored passwords. Maybe best not to do that. 26 // you to lose access to all your stored passwords. Maybe best not to do that.
28 const char NativeBackendKWallet::kKWalletFolder[] = "Chrome Form Data"; 27 const char NativeBackendKWallet::kKWalletFolder[] = "Chrome Form Data";
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 // The optional_bus parameter is given when this method is called in tests. 96 // The optional_bus parameter is given when this method is called in tests.
98 session_bus_ = optional_bus; 97 session_bus_ = optional_bus;
99 } else { 98 } else {
100 // Get a (real) connection to the session bus. 99 // Get a (real) connection to the session bus.
101 dbus::Bus::Options options; 100 dbus::Bus::Options options;
102 options.bus_type = dbus::Bus::SESSION; 101 options.bus_type = dbus::Bus::SESSION;
103 options.connection_type = dbus::Bus::PRIVATE; 102 options.connection_type = dbus::Bus::PRIVATE;
104 session_bus_ = new dbus::Bus(options); 103 session_bus_ = new dbus::Bus(options);
105 } 104 }
106 kwallet_proxy_ = 105 kwallet_proxy_ =
107 session_bus_->GetObjectProxy(kKWalletServiceName, 106 session_bus_->GetObjectProxy(kKWalletServiceName, kKWalletPath);
108 dbus::ObjectPath(kKWalletPath));
109 // kwalletd may not be running. If we get a temporary failure initializing it, 107 // kwalletd may not be running. If we get a temporary failure initializing it,
110 // try to start it and then try again. (Note the short-circuit evaluation.) 108 // try to start it and then try again. (Note the short-circuit evaluation.)
111 const InitResult result = InitWallet(); 109 const InitResult result = InitWallet();
112 *success = (result == INIT_SUCCESS || 110 *success = (result == INIT_SUCCESS ||
113 (result == TEMPORARY_FAIL && 111 (result == TEMPORARY_FAIL &&
114 StartKWalletd() && InitWallet() == INIT_SUCCESS)); 112 StartKWalletd() && InitWallet() == INIT_SUCCESS));
115 event->Signal(); 113 event->Signal();
116 } 114 }
117 115
118 bool NativeBackendKWallet::StartKWalletd() { 116 bool NativeBackendKWallet::StartKWalletd() {
119 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 117 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB));
120 // Sadly kwalletd doesn't use DBus activation, so we have to make a call to 118 // Sadly kwalletd doesn't use DBus activation, so we have to make a call to
121 // klauncher to start it. 119 // klauncher to start it.
122 dbus::ObjectProxy* klauncher = 120 dbus::ObjectProxy* klauncher =
123 session_bus_->GetObjectProxy(kKLauncherServiceName, 121 session_bus_->GetObjectProxy(kKLauncherServiceName, kKLauncherPath);
124 dbus::ObjectPath(kKLauncherPath));
125 122
126 dbus::MethodCall method_call(kKLauncherInterface, 123 dbus::MethodCall method_call(kKLauncherInterface,
127 "start_service_by_desktop_name"); 124 "start_service_by_desktop_name");
128 dbus::MessageWriter builder(&method_call); 125 dbus::MessageWriter builder(&method_call);
129 std::vector<std::string> empty; 126 std::vector<std::string> empty;
130 builder.AppendString("kwalletd"); // serviceName 127 builder.AppendString("kwalletd"); // serviceName
131 builder.AppendArrayOfStrings(empty); // urls 128 builder.AppendArrayOfStrings(empty); // urls
132 builder.AppendArrayOfStrings(empty); // envs 129 builder.AppendArrayOfStrings(empty); // envs
133 builder.AppendString(""); // startup_id 130 builder.AppendString(""); // startup_id
134 builder.AppendBool(false); // blind 131 builder.AppendBool(false); // blind
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 // Each other profile must be able to migrate the shared data as well, 890 // Each other profile must be able to migrate the shared data as well,
894 // so we must leave it alone. After a few releases, we'll add code to 891 // so we must leave it alone. After a few releases, we'll add code to
895 // delete them, and eventually remove this migration code. 892 // delete them, and eventually remove this migration code.
896 // TODO(mdm): follow through with the plan above. 893 // TODO(mdm): follow through with the plan above.
897 PasswordStoreX::SetPasswordsUseLocalProfileId(prefs_); 894 PasswordStoreX::SetPasswordsUseLocalProfileId(prefs_);
898 } else { 895 } else {
899 // We failed to migrate for some reason. Use the old folder name. 896 // We failed to migrate for some reason. Use the old folder name.
900 folder_name_ = kKWalletFolder; 897 folder_name_ = kKWalletFolder;
901 } 898 }
902 } 899 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698