summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/sync_setup_flow.cc
diff options
context:
space:
mode:
authortim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-11 21:57:27 +0000
committertim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-11 21:57:27 +0000
commit96209ccda702ea92fd257a17d8a70f93bce0ddb5 (patch)
tree65c94e91dc281bf8ed5f66a7c3f28a270f09ac6f /chrome/browser/sync/sync_setup_flow.cc
parentf0b97f1ddf05cdca3cbba263ba663a2cc1ace7b3 (diff)
downloadchromium_src-96209ccda702ea92fd257a17d8a70f93bce0ddb5.zip
chromium_src-96209ccda702ea92fd257a17d8a70f93bce0ddb5.tar.gz
chromium_src-96209ccda702ea92fd257a17d8a70f93bce0ddb5.tar.bz2
sync: second factor auth support
BUG=58712 TEST=Sign in to sync with two-step verification account. SigninManagerTest. Review URL: http://codereview.chromium.org/3702002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62191 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/sync_setup_flow.cc')
-rw-r--r--chrome/browser/sync/sync_setup_flow.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/sync/sync_setup_flow.cc b/chrome/browser/sync/sync_setup_flow.cc
index 0931a3f..594b0e0 100644
--- a/chrome/browser/sync/sync_setup_flow.cc
+++ b/chrome/browser/sync/sync_setup_flow.cc
@@ -44,7 +44,10 @@ void FlowHandler::RegisterMessages() {
}
static bool GetAuthData(const std::string& json,
- std::string* username, std::string* password, std::string* captcha) {
+ std::string* username,
+ std::string* password,
+ std::string* captcha,
+ std::string* access_code) {
scoped_ptr<Value> parsed_value(base::JSONReader::Read(json, false));
if (!parsed_value.get() || !parsed_value->IsType(Value::TYPE_DICTIONARY))
return false;
@@ -52,7 +55,8 @@ static bool GetAuthData(const std::string& json,
DictionaryValue* result = static_cast<DictionaryValue*>(parsed_value.get());
if (!result->GetString("user", username) ||
!result->GetString("pass", password) ||
- !result->GetString("captcha", captcha)) {
+ !result->GetString("captcha", captcha) ||
+ !result->GetString("access_code", access_code)) {
return false;
}
return true;
@@ -123,11 +127,11 @@ static bool GetDataTypeChoiceData(const std::string& json,
void FlowHandler::HandleSubmitAuth(const ListValue* args) {
std::string json(dom_ui_util::GetJsonResponseFromFirstArgumentInList(args));
- std::string username, password, captcha;
+ std::string username, password, captcha, access_code;
if (json.empty())
return;
- if (!GetAuthData(json, &username, &password, &captcha)) {
+ if (!GetAuthData(json, &username, &password, &captcha, &access_code)) {
// The page sent us something that we didn't understand.
// This probably indicates a programming error.
NOTREACHED();
@@ -135,7 +139,7 @@ void FlowHandler::HandleSubmitAuth(const ListValue* args) {
}
if (flow_)
- flow_->OnUserSubmittedAuth(username, password, captcha);
+ flow_->OnUserSubmittedAuth(username, password, captcha, access_code);
}
void FlowHandler::HandleChooseDataTypes(const ListValue* args) {