Index: net/ftp/ftp_directory_listing_parser.cc |
diff --git a/net/ftp/ftp_directory_listing_parser.cc b/net/ftp/ftp_directory_listing_parser.cc |
index a1aabf3f971f39fe6d898b7681e97ae600cc99e1..73e831f66a11454ea3a4c3ffe9607c5ccd46474a 100644 |
--- a/net/ftp/ftp_directory_listing_parser.cc |
+++ b/net/ftp/ftp_directory_listing_parser.cc |
@@ -6,7 +6,7 @@ |
#include "base/bind.h" |
#include "base/callback.h" |
-#include "base/i18n/icu_encoding_detection.h" |
+#include "base/i18n/encoding_detection.h" |
#include "base/i18n/icu_string_conversions.h" |
#include "base/stl_util.h" |
#include "base/strings/string_util.h" |
@@ -84,29 +84,23 @@ int DecodeAndParse(const std::string& text, |
const base::Time& current_time, |
std::vector<FtpDirectoryListingEntry>* entries, |
FtpServerType* server_type) { |
- const char* const kNewlineSeparators[] = { "\n", "\r\n" }; |
- |
- std::vector<std::string> encodings; |
- if (!base::DetectAllEncodings(text, &encodings)) |
+ std::string encoding; |
+ if (!base::DetectEncoding(text, &encoding)) |
return ERR_ENCODING_DETECTION_FAILED; |
- |
- // Use first encoding that can be used to decode the text. |
- for (size_t i = 0; i < encodings.size(); i++) { |
- base::string16 converted_text; |
- if (base::CodepageToUTF16(text, |
- encodings[i].c_str(), |
- base::OnStringConversionError::FAIL, |
- &converted_text)) { |
- for (size_t j = 0; j < arraysize(kNewlineSeparators); j++) { |
- int rv = ParseListing(converted_text, |
- base::ASCIIToUTF16(kNewlineSeparators[j]), |
- encodings[i], |
- current_time, |
- entries, |
- server_type); |
- if (rv == OK) |
- return rv; |
- } |
+ const char* encoding_name = encoding.c_str(); |
+ |
+ base::string16 converted_text; |
+ if (base::CodepageToUTF16(text, encoding_name, |
+ base::OnStringConversionError::FAIL, |
+ &converted_text)) { |
+ const char* const kNewlineSeparators[] = {"\n", "\r\n"}; |
+ |
+ for (size_t j = 0; j < arraysize(kNewlineSeparators); j++) { |
+ int rv = ParseListing(converted_text, |
+ base::ASCIIToUTF16(kNewlineSeparators[j]), |
+ encoding_name, current_time, entries, server_type); |
+ if (rv == OK) |
+ return rv; |
} |
} |