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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_RESPONSE_HANDLER_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_RESPONSE_HANDLER_H_
      7 #pragma once
      8 
      9 #include <string>
     10 
     11 #include "chrome/common/net/url_fetcher.h"
     12 
     13 class GURL;
     14 
     15 namespace chromeos {
     16 
     17 // The success code specified by the HTTP spec.
     18 extern const int kHttpSuccess;
     19 
     20 class AuthResponseHandler {
     21  public:
     22   AuthResponseHandler() {}
     23   virtual ~AuthResponseHandler() {}
     24 
     25   // True if this object can handle responses from |url|, false otherwise.
     26   virtual bool CanHandle(const GURL& url) = 0;
     27 
     28   // Caller takes ownership of return value.
     29   // Takes in |to_process|, creates an appropriate URLFetcher to handle
     30   // the next step, sets |catcher| to get called back when that fetcher is done.
     31   // Starts the fetch and returns the fetcher, so the the caller can handle
     32   // the object lifetime.
     33   virtual URLFetcher* Handle(const std::string& to_process,
     34                              URLFetcher::Delegate* catcher) = 0;
     35 
     36   // The URLs for different calls in the Google Accounts programmatic login API.
     37   static const char kClientLoginUrl[];
     38   static const char kIssueAuthTokenUrl[];
     39   static const char kTokenAuthUrl[];
     40 };
     41 
     42 }  // namespace chromeos
     43 
     44 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_RESPONSE_HANDLER_H_
     45