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

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

Issue 1115583002: [chrome/browser/password_manager] favor DCHECK_CURRENTLY_ON for better logs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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/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"
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 318
319 // This ScopedAllowWait should not be here. http://crbug.com/125331 319 // This ScopedAllowWait should not be here. http://crbug.com/125331
320 base::ThreadRestrictions::ScopedAllowWait allow_wait; 320 base::ThreadRestrictions::ScopedAllowWait allow_wait;
321 event.Wait(); 321 event.Wait();
322 return success; 322 return success;
323 } 323 }
324 324
325 void NativeBackendKWallet::InitOnDBThread(scoped_refptr<dbus::Bus> optional_bus, 325 void NativeBackendKWallet::InitOnDBThread(scoped_refptr<dbus::Bus> optional_bus,
326 base::WaitableEvent* event, 326 base::WaitableEvent* event,
327 bool* success) { 327 bool* success) {
328 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 328 DCHECK_CURRENTLY_ON(BrowserThread::DB);
329 DCHECK(!session_bus_.get()); 329 DCHECK(!session_bus_.get());
330 if (optional_bus.get()) { 330 if (optional_bus.get()) {
331 // The optional_bus parameter is given when this method is called in tests. 331 // The optional_bus parameter is given when this method is called in tests.
332 session_bus_ = optional_bus; 332 session_bus_ = optional_bus;
333 } else { 333 } else {
334 // Get a (real) connection to the session bus. 334 // Get a (real) connection to the session bus.
335 dbus::Bus::Options options; 335 dbus::Bus::Options options;
336 options.bus_type = dbus::Bus::SESSION; 336 options.bus_type = dbus::Bus::SESSION;
337 options.connection_type = dbus::Bus::PRIVATE; 337 options.connection_type = dbus::Bus::PRIVATE;
338 session_bus_ = new dbus::Bus(options); 338 session_bus_ = new dbus::Bus(options);
339 } 339 }
340 kwallet_proxy_ = 340 kwallet_proxy_ =
341 session_bus_->GetObjectProxy(kKWalletServiceName, 341 session_bus_->GetObjectProxy(kKWalletServiceName,
342 dbus::ObjectPath(kKWalletPath)); 342 dbus::ObjectPath(kKWalletPath));
343 // kwalletd may not be running. If we get a temporary failure initializing it, 343 // kwalletd may not be running. If we get a temporary failure initializing it,
344 // try to start it and then try again. (Note the short-circuit evaluation.) 344 // try to start it and then try again. (Note the short-circuit evaluation.)
345 const InitResult result = InitWallet(); 345 const InitResult result = InitWallet();
346 *success = (result == INIT_SUCCESS || 346 *success = (result == INIT_SUCCESS ||
347 (result == TEMPORARY_FAIL && 347 (result == TEMPORARY_FAIL &&
348 StartKWalletd() && InitWallet() == INIT_SUCCESS)); 348 StartKWalletd() && InitWallet() == INIT_SUCCESS));
349 event->Signal(); 349 event->Signal();
350 } 350 }
351 351
352 bool NativeBackendKWallet::StartKWalletd() { 352 bool NativeBackendKWallet::StartKWalletd() {
353 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 353 DCHECK_CURRENTLY_ON(BrowserThread::DB);
354 // Sadly kwalletd doesn't use DBus activation, so we have to make a call to 354 // Sadly kwalletd doesn't use DBus activation, so we have to make a call to
355 // klauncher to start it. 355 // klauncher to start it.
356 dbus::ObjectProxy* klauncher = 356 dbus::ObjectProxy* klauncher =
357 session_bus_->GetObjectProxy(kKLauncherServiceName, 357 session_bus_->GetObjectProxy(kKLauncherServiceName,
358 dbus::ObjectPath(kKLauncherPath)); 358 dbus::ObjectPath(kKLauncherPath));
359 359
360 dbus::MethodCall method_call(kKLauncherInterface, 360 dbus::MethodCall method_call(kKLauncherInterface,
361 "start_service_by_desktop_name"); 361 "start_service_by_desktop_name");
362 dbus::MessageWriter builder(&method_call); 362 dbus::MessageWriter builder(&method_call);
363 std::vector<std::string> empty; 363 std::vector<std::string> empty;
(...skipping 23 matching lines...) Expand all
387 if (!error.empty() || ret) { 387 if (!error.empty() || ret) {
388 LOG(ERROR) << "Error launching kwalletd: error '" << error << "' " 388 LOG(ERROR) << "Error launching kwalletd: error '" << error << "' "
389 << " (code " << ret << ")"; 389 << " (code " << ret << ")";
390 return false; 390 return false;
391 } 391 }
392 392
393 return true; 393 return true;
394 } 394 }
395 395
396 NativeBackendKWallet::InitResult NativeBackendKWallet::InitWallet() { 396 NativeBackendKWallet::InitResult NativeBackendKWallet::InitWallet() {
397 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 397 DCHECK_CURRENTLY_ON(BrowserThread::DB);
398 { 398 {
399 // Check that KWallet is enabled. 399 // Check that KWallet is enabled.
400 dbus::MethodCall method_call(kKWalletInterface, "isEnabled"); 400 dbus::MethodCall method_call(kKWalletInterface, "isEnabled");
401 scoped_ptr<dbus::Response> response( 401 scoped_ptr<dbus::Response> response(
402 kwallet_proxy_->CallMethodAndBlock( 402 kwallet_proxy_->CallMethodAndBlock(
403 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 403 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
404 if (!response.get()) { 404 if (!response.get()) {
405 LOG(ERROR) << "Error contacting kwalletd (isEnabled)"; 405 LOG(ERROR) << "Error contacting kwalletd (isEnabled)";
406 return TEMPORARY_FAIL; 406 return TEMPORARY_FAIL;
407 } 407 }
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 // 32-bit machines, in case we're reading a 64-bit pickle. (Probably rare, 917 // 32-bit machines, in case we're reading a 64-bit pickle. (Probably rare,
918 // since mostly we expect upgrades, not downgrades, but both are possible.) 918 // since mostly we expect upgrades, not downgrades, but both are possible.)
919 success = DeserializeValueSize( 919 success = DeserializeValueSize(
920 signon_realm, iter, version, !size_32, false, &forms); 920 signon_realm, iter, version, !size_32, false, &forms);
921 } 921 }
922 UMALogDeserializationStatus(success); 922 UMALogDeserializationStatus(success);
923 return forms.Pass(); 923 return forms.Pass();
924 } 924 }
925 925
926 int NativeBackendKWallet::WalletHandle() { 926 int NativeBackendKWallet::WalletHandle() {
927 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 927 DCHECK_CURRENTLY_ON(BrowserThread::DB);
928 928
929 // Open the wallet. 929 // Open the wallet.
930 // TODO(mdm): Are we leaking these handles? Find out. 930 // TODO(mdm): Are we leaking these handles? Find out.
931 int32_t handle = kInvalidKWalletHandle; 931 int32_t handle = kInvalidKWalletHandle;
932 { 932 {
933 dbus::MethodCall method_call(kKWalletInterface, "open"); 933 dbus::MethodCall method_call(kKWalletInterface, "open");
934 dbus::MessageWriter builder(&method_call); 934 dbus::MessageWriter builder(&method_call);
935 builder.AppendString(wallet_name_); // wallet 935 builder.AppendString(wallet_name_); // wallet
936 builder.AppendInt64(0); // wid 936 builder.AppendInt64(0); // wid
937 builder.AppendString(app_name_); // appid 937 builder.AppendString(app_name_); // appid
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 } 1005 }
1006 1006
1007 return handle; 1007 return handle;
1008 } 1008 }
1009 1009
1010 std::string NativeBackendKWallet::GetProfileSpecificFolderName() const { 1010 std::string NativeBackendKWallet::GetProfileSpecificFolderName() const {
1011 // Originally, the folder name was always just "Chrome Form Data". 1011 // Originally, the folder name was always just "Chrome Form Data".
1012 // Now we use it to distinguish passwords for different profiles. 1012 // Now we use it to distinguish passwords for different profiles.
1013 return base::StringPrintf("%s (%d)", kKWalletFolder, profile_id_); 1013 return base::StringPrintf("%s (%d)", kKWalletFolder, profile_id_);
1014 } 1014 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698