Home | History | Annotate | Download | only in login
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/ui/webui/chromeos/login/authenticated_user_email_retriever.h"
      6 
      7 #include <utility>
      8 #include <vector>
      9 
     10 #include "google_apis/gaia/gaia_auth_util.h"
     11 #include "google_apis/gaia/gaia_constants.h"
     12 #include "google_apis/gaia/google_service_auth_error.h"
     13 #include "net/url_request/url_request_context_getter.h"
     14 
     15 namespace chromeos {
     16 
     17 AuthenticatedUserEmailRetriever::AuthenticatedUserEmailRetriever(
     18     const AuthenticatedUserEmailCallback& callback,
     19     scoped_refptr<net::URLRequestContextGetter> url_request_context_getter)
     20     : callback_(callback),
     21       gaia_auth_fetcher_(this,
     22                          GaiaConstants::kChromeSource,
     23                          url_request_context_getter) {
     24   gaia_auth_fetcher_.StartListAccounts();
     25 }
     26 
     27 AuthenticatedUserEmailRetriever::~AuthenticatedUserEmailRetriever() {
     28 }
     29 
     30 void AuthenticatedUserEmailRetriever::OnListAccountsSuccess(
     31     const std::string& data) {
     32   std::vector<std::pair<std::string, bool> > accounts;
     33   gaia::ParseListAccountsData(data, &accounts);
     34   if (accounts.size() != 1)
     35     callback_.Run(std::string());
     36   else
     37     callback_.Run(accounts.front().first);
     38 }
     39 
     40 void AuthenticatedUserEmailRetriever::OnListAccountsFailure(
     41     const GoogleServiceAuthError& error) {
     42   callback_.Run(std::string());
     43 }
     44 
     45 }  // namespace chromeos
     46