Index: chrome/browser/password_manager/chrome_password_manager_client.cc |
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc |
index e0b00b7cc4953bd3d4aaeb24bb1f65c2f5ae73f1..4ccb43568d40fec8f834500f830b4b7fbd3c0ffc 100644 |
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc |
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc |
@@ -50,6 +50,17 @@ |
#include "chrome/browser/password_manager/generated_password_saved_infobar_delegate_android.h" |
#endif |
+namespace { |
+void ReportOsPassword() { |
vabr (Chromium)
2014/12/09 10:08:16
nit: The example snippet for unnamed namespaces in
vasilii
2014/12/09 11:02:53
Done. The same snippet suggests wrong indent for '
vabr (Chromium)
2014/12/09 11:29:16
Good point! :) Time to leave your trace in the Chr
|
+ password_manager_util::OsPasswordStatus status = |
+ password_manager_util::GetOsPasswordStatus(); |
+ |
+ UMA_HISTOGRAM_ENUMERATION("PasswordManager.OsPasswordStatus", |
+ status, |
+ password_manager_util::MAX_PASSWORD_STATUS); |
+} |
+} // namespace |
+ |
using password_manager::ContentPasswordManagerDriverFactory; |
using password_manager::PasswordManagerInternalsService; |
using password_manager::PasswordManagerInternalsServiceFactory; |
@@ -94,6 +105,12 @@ ChromePasswordManagerClient::ChromePasswordManagerClient( |
if (service) |
can_use_log_router_ = service->RegisterClient(this); |
SetUpAutofillSyncState(); |
+ // Avoid checking OS password until later on in browser startup |
+ // since it calls a few Windows APIs. |
+ base::MessageLoopProxy::current()->PostDelayedTask( |
+ FROM_HERE, |
+ base::Bind(&ReportOsPassword), |
+ base::TimeDelta::FromSeconds(10)); |
} |
ChromePasswordManagerClient::~ChromePasswordManagerClient() { |