cookie_fetcher.cc revision 731df977c0511bca2206b5f333555b1205ff1f43
1// Copyright (c) 2010 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/chromeos/login/cookie_fetcher.h" 6 7#include "base/command_line.h" 8#include "base/path_service.h" 9#include "chrome/browser/browser_process.h" 10#include "chrome/browser/chromeos/boot_times_loader.h" 11#include "chrome/browser/chromeos/login/client_login_response_handler.h" 12#include "chrome/browser/chromeos/login/issue_response_handler.h" 13#include "chrome/browser/chromeos/login/login_utils.h" 14#include "chrome/browser/net/chrome_url_request_context.h" 15#include "chrome/browser/profile.h" 16#include "chrome/browser/profile_manager.h" 17#include "chrome/common/chrome_paths.h" 18#include "chrome/common/net/url_fetcher.h" 19#include "net/url_request/url_request_status.h" 20 21namespace chromeos { 22 23CookieFetcher::CookieFetcher(Profile* profile) : profile_(profile) { 24 CHECK(profile_); 25 client_login_handler_.reset( 26 new ClientLoginResponseHandler(profile_->GetRequestContext())); 27 issue_handler_.reset( 28 new IssueResponseHandler(profile_->GetRequestContext())); 29} 30 31void CookieFetcher::AttemptFetch(const std::string& credentials) { 32 VLOG(1) << "Getting auth token..."; 33 fetcher_.reset(client_login_handler_->Handle(credentials, this)); 34} 35 36void CookieFetcher::OnURLFetchComplete(const URLFetcher* source, 37 const GURL& url, 38 const URLRequestStatus& status, 39 int response_code, 40 const ResponseCookies& cookies, 41 const std::string& data) { 42 if (status.is_success() && response_code == kHttpSuccess) { 43 if (issue_handler_->CanHandle(url)) { 44 VLOG(1) << "Handling auth token"; 45 fetcher_.reset(issue_handler_->Handle(data, this)); 46 return; 47 } 48 } 49 BootTimesLoader::Get()->AddLoginTimeMarker("CookiesFetched", false); 50 delete this; 51} 52 53} // namespace chromeos 54