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.
5 #include "chrome/browser/ui/webui/chromeos/login/authenticated_user_email_retriever.h"
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"
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
.get()) {
24 gaia_auth_fetcher_
.StartListAccounts();
27 AuthenticatedUserEmailRetriever::~AuthenticatedUserEmailRetriever() {
30 void AuthenticatedUserEmailRetriever::OnListAccountsSuccess(
31 const std::string
& data
) {
32 std::vector
<gaia::ListedAccount
> accounts
;
33 gaia::ParseListAccountsData(data
, &accounts
);
34 if (accounts
.size() != 1)
35 callback_
.Run(std::string());
37 callback_
.Run(accounts
.front().email
);
40 void AuthenticatedUserEmailRetriever::OnListAccountsFailure(
41 const GoogleServiceAuthError
& error
) {
42 callback_
.Run(std::string());
45 } // namespace chromeos