Index: chrome/utility/importer/external_process_importer_bridge.cc |
diff --git a/chrome/utility/importer/external_process_importer_bridge.cc b/chrome/utility/importer/external_process_importer_bridge.cc |
index 56c82be6be74ae495eaf62bf382dbb9fd5944d2d..fcfc61f20b1a4331d8a5ae2f4cf7a6f707e65164 100644 |
--- a/chrome/utility/importer/external_process_importer_bridge.cc |
+++ b/chrome/utility/importer/external_process_importer_bridge.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/utility/importer/external_process_importer_bridge.h" |
#include "base/bind.h" |
+#include "base/debug/dump_without_crashing.h" |
#include "base/logging.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -26,7 +27,16 @@ const int kNumBookmarksToSend = 100; |
const int kNumHistoryRowsToSend = 100; |
const int kNumFaviconsToSend = 100; |
const int kNumAutofillFormDataToSend = 100; |
+ |
+// http://crbug.com/404012. Let's see where the empty fields come from. |
+void CheckForEmptyUsernameAndPassword(const autofill::PasswordForm& form) { |
+ if (form.username_value.empty() && |
+ form.password_value.empty() && |
+ !form.blacklisted_by_user) { |
+ base::debug::DumpWithoutCrashing(); |
+ } |
} |
+} // namespace |
ExternalProcessImporterBridge::ExternalProcessImporterBridge( |
const base::DictionaryValue& localized_strings, |
@@ -138,6 +148,7 @@ void ExternalProcessImporterBridge::SetFirefoxSearchEnginesXMLData( |
void ExternalProcessImporterBridge::SetPasswordForm( |
const autofill::PasswordForm& form) { |
+ CheckForEmptyUsernameAndPassword(form); |
Send(new ProfileImportProcessHostMsg_NotifyPasswordFormReady(form)); |
} |