Home | History | Annotate | Download | only in login
      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/issue_response_handler.h"
      6 
      7 #include <string>
      8 
      9 #include "base/stringprintf.h"
     10 #include "chrome/browser/net/chrome_url_request_context.h"
     11 #include "chrome/common/net/url_fetcher.h"
     12 #include "net/base/load_flags.h"
     13 
     14 namespace chromeos {
     15 
     16 // Overridden from AuthResponseHandler.
     17 bool IssueResponseHandler::CanHandle(const GURL& url) {
     18   return (url.spec().find(AuthResponseHandler::kIssueAuthTokenUrl) !=
     19           std::string::npos);
     20 }
     21 
     22 // Overridden from AuthResponseHandler.
     23 URLFetcher* IssueResponseHandler::Handle(
     24     const std::string& to_process,
     25     URLFetcher::Delegate* catcher) {
     26   VLOG(1) << "Handling IssueAuthToken response";
     27   token_url_.assign(base::StringPrintf("%s%s",
     28       AuthResponseHandler::kTokenAuthUrl, to_process.c_str()));
     29   URLFetcher* fetcher =
     30       new URLFetcher(GURL(token_url_), URLFetcher::GET, catcher);
     31   fetcher->set_load_flags(net::LOAD_DO_NOT_SEND_COOKIES);
     32   if (getter_) {
     33     VLOG(1) << "Fetching " << AuthResponseHandler::kTokenAuthUrl;
     34     fetcher->set_request_context(getter_);
     35     fetcher->Start();
     36   }
     37   return fetcher;
     38 }
     39 
     40 }  // namespace chromeos
     41