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