From f714afc10a31c42f24f2df68f65189f863ac3680 Mon Sep 17 00:00:00 2001 From: vasilii Date: Thu, 6 Nov 2014 17:22:20 -0800 Subject: Don't import empty passwords from Firefox. BUG=404012 Review URL: https://codereview.chromium.org/698883003 Cr-Commit-Position: refs/heads/master@{#303147} --- .../importer/firefox_importer_browsertest.cc | 10 ++++++- chrome/test/data/firefox35_profile/signons.sqlite | Bin 11264 -> 11264 bytes chrome/test/data/firefox3_profile/signons3.txt | 33 +++++++++++++++++++++ chrome/test/data/firefox_profile/signons.sqlite | Bin 11264 -> 11264 bytes .../importer/external_process_importer_bridge.cc | 9 ------ chrome/utility/importer/firefox_importer.cc | 6 +++- 6 files changed, 47 insertions(+), 11 deletions(-) diff --git a/chrome/browser/importer/firefox_importer_browsertest.cc b/chrome/browser/importer/firefox_importer_browsertest.cc index 2bd2af1..0076597 100644 --- a/chrome/browser/importer/firefox_importer_browsertest.cc +++ b/chrome/browser/importer/firefox_importer_browsertest.cc @@ -67,10 +67,18 @@ const BookmarkInfo kFirefoxBookmarks[] = { }; const PasswordInfo kFirefoxPasswords[] = { + {"http://blacklist.com/", "", "http://blacklist.com/", + "", "", "", "", true}, {"http://localhost:8080/", "http://localhost:8080/", "http://localhost:8080/", "loginuser", "abc", "loginpass", "123", false}, {"http://localhost:8080/", "", "http://localhost:8080/localhost", - "", "http", "", "Http1+1abcdefg", false}, + "", "http", "", "Http1+1abcdefg", false}, + {"http://server.com:1234/", "", "http://server.com:1234/http_realm", + "loginuser", "user", "loginpass", "password", false}, + {"http://server.com:4321/", "", "http://server.com:4321/http_realm", + "loginuser", "user", "loginpass", "", false}, + {"http://server.com:4321/", "", "http://server.com:4321/http_realm", + "loginuser", "", "loginpass", "password", false}, }; const KeywordInfo kFirefoxKeywords[] = { diff --git a/chrome/test/data/firefox35_profile/signons.sqlite b/chrome/test/data/firefox35_profile/signons.sqlite index b3e0aa0..0984513 100644 Binary files a/chrome/test/data/firefox35_profile/signons.sqlite and b/chrome/test/data/firefox35_profile/signons.sqlite differ diff --git a/chrome/test/data/firefox3_profile/signons3.txt b/chrome/test/data/firefox3_profile/signons3.txt index 62cf2c8..68cee91 100644 --- a/chrome/test/data/firefox3_profile/signons3.txt +++ b/chrome/test/data/firefox3_profile/signons3.txt @@ -1,4 +1,5 @@ #2e +http://blacklist.com . http://localhost:8080 loginuser @@ -16,3 +17,35 @@ MDoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECFckjT05RJ8uBBCWqEqv8ciEPf+Q8Fpgbtpf --- . +http://server.com:1234 (http_realm) +loginuser +~ +*loginpass +~ + +--- +. +http://server.com:1234 (http_realm) +loginuser +~dXNlcg== +*loginpass +~cGFzc3dvcmQ= + +--- +. +http://server.com:4321 (http_realm) +loginuser +~dXNlcg== +*loginpass +~ + +--- +. +http://server.com:4321 (http_realm) +loginuser +~ +*loginpass +~cGFzc3dvcmQ= + +--- +. diff --git a/chrome/test/data/firefox_profile/signons.sqlite b/chrome/test/data/firefox_profile/signons.sqlite index b3e0aa0..0984513 100644 Binary files a/chrome/test/data/firefox_profile/signons.sqlite and b/chrome/test/data/firefox_profile/signons.sqlite differ diff --git a/chrome/utility/importer/external_process_importer_bridge.cc b/chrome/utility/importer/external_process_importer_bridge.cc index fcfc61f..0ea6971 100644 --- a/chrome/utility/importer/external_process_importer_bridge.cc +++ b/chrome/utility/importer/external_process_importer_bridge.cc @@ -28,14 +28,6 @@ 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( @@ -148,7 +140,6 @@ void ExternalProcessImporterBridge::SetFirefoxSearchEnginesXMLData( void ExternalProcessImporterBridge::SetPasswordForm( const autofill::PasswordForm& form) { - CheckForEmptyUsernameAndPassword(form); Send(new ProfileImportProcessHostMsg_NotifyPasswordFormReady(form)); } diff --git a/chrome/utility/importer/firefox_importer.cc b/chrome/utility/importer/firefox_importer.cc index fdb14cd..728f51d 100644 --- a/chrome/utility/importer/firefox_importer.cc +++ b/chrome/utility/importer/firefox_importer.cc @@ -370,7 +370,11 @@ void FirefoxImporter::ImportPasswords() { if (!cancelled()) { for (size_t i = 0; i < forms.size(); ++i) { - bridge_->SetPasswordForm(forms[i]); + if (!forms[i].username_value.empty() || + !forms[i].password_value.empty() || + forms[i].blacklisted_by_user) { + bridge_->SetPasswordForm(forms[i]); + } } } } -- cgit v1.1