Index: chrome/browser/sync/engine/net/gaia_authenticator.cc |
=================================================================== |
--- chrome/browser/sync/engine/net/gaia_authenticator.cc (revision 36499) |
+++ chrome/browser/sync/engine/net/gaia_authenticator.cc (working copy) |
@@ -10,7 +10,7 @@ |
#include "base/basictypes.h" |
#include "base/port.h" |
-#include "base/string_util.h" |
+#include "base/string_split.h" |
#include "chrome/browser/sync/engine/all_status.h" |
#include "chrome/browser/sync/engine/net/http_return.h" |
#include "chrome/browser/sync/engine/net/url_translator.h" |
@@ -21,63 +21,6 @@ |
using std::string; |
using std::vector; |
-// TODO(timsteele): Integrate the following two functions to string_util.h or |
-// somewhere that makes them unit-testable. |
-bool SplitStringIntoKeyValues(const string& line, |
- char key_value_delimiter, |
- string* key, vector<string>* values) { |
- key->clear(); |
- values->clear(); |
- |
- // find the key string |
- size_t end_key_pos = line.find_first_of(key_value_delimiter); |
- if (end_key_pos == string::npos) { |
- DLOG(INFO) << "cannot parse key from line: " << line; |
- return false; // no key |
- } |
- key->assign(line, 0, end_key_pos); |
- |
- // find the values string |
- string remains(line, end_key_pos, line.size() - end_key_pos); |
- size_t begin_values_pos = remains.find_first_not_of(key_value_delimiter); |
- if (begin_values_pos == string::npos) { |
- DLOG(INFO) << "cannot parse value from line: " << line; |
- return false; // no value |
- } |
- string values_string(remains, begin_values_pos, |
- remains.size() - begin_values_pos); |
- |
- // construct the values vector |
- values->push_back(values_string); |
- return true; |
-} |
- |
-bool SplitStringIntoKeyValuePairs(const string& line, |
- char key_value_delimiter, |
- char key_value_pair_delimiter, |
- vector<pair<string, string> >* kv_pairs) { |
- kv_pairs->clear(); |
- |
- vector<string> pairs; |
- SplitString(line, key_value_pair_delimiter, &pairs); |
- |
- bool success = true; |
- for (size_t i = 0; i < pairs.size(); ++i) { |
- string key; |
- vector<string> value; |
- if (!SplitStringIntoKeyValues(pairs[i], |
- key_value_delimiter, |
- &key, &value)) { |
- // Don't return here, to allow for keys without associated |
- // values; just record that our split failed. |
- success = false; |
- } |
- DCHECK_LE(value.size(), 1U); |
- kv_pairs->push_back(make_pair(key, value.empty()? "" : value[0])); |
- } |
- return success; |
-} |
- |
namespace browser_sync { |
static const char kGaiaV1IssueAuthTokenPath[] = "/accounts/IssueAuthToken"; |
@@ -288,7 +231,7 @@ |
} else if (RC_REQUEST_OK == server_response_code) { |
typedef vector<pair<string, string> > Tokens; |
Tokens tokens; |
- SplitStringIntoKeyValuePairs(message_text, '=', '\n', &tokens); |
+ base::SplitStringIntoKeyValuePairs(message_text, '=', '\n', &tokens); |
for (Tokens::iterator i = tokens.begin(); i != tokens.end(); ++i) { |
if ("accountType" == i->first) { |
// We never authenticate an email as a hosted account. |
@@ -356,7 +299,7 @@ |
void GaiaAuthenticator::ExtractTokensFrom(const string& response, |
AuthResults* results) { |
vector<pair<string, string> > tokens; |
- SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens); |
+ base::SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens); |
for (vector<pair<string, string> >::iterator i = tokens.begin(); |
i != tokens.end(); ++i) { |
if (i->first == "SID") { |
@@ -374,7 +317,7 @@ |
void GaiaAuthenticator::ExtractAuthErrorFrom(const string& response, |
AuthResults* results) { |
vector<pair<string, string> > tokens; |
- SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens); |
+ base::SplitStringIntoKeyValuePairs(response, '=', '\n', &tokens); |
for (vector<pair<string, string> >::iterator i = tokens.begin(); |
i != tokens.end(); ++i) { |
if (i->first == "Error") { |