Home | History | Annotate | Download | only in auth
      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.
      4 
      5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_AUTH_PREWARMER_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_AUTH_PREWARMER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/callback.h"
     10 #include "chromeos/network/network_state_handler_observer.h"
     11 #include "content/public/browser/notification_observer.h"
     12 #include "content/public/browser/notification_registrar.h"
     13 
     14 namespace net {
     15 class URLRequestContextGetter;
     16 }  // namespace net
     17 
     18 namespace chromeos {
     19 
     20 class NetworkState;
     21 
     22 // Class for prewarming authentication network connection.
     23 class AuthPrewarmer : public NetworkStateHandlerObserver,
     24                       public content::NotificationObserver {
     25  public:
     26   AuthPrewarmer();
     27   virtual ~AuthPrewarmer();
     28 
     29   void PrewarmAuthentication(const base::Closure& completion_callback);
     30 
     31  private:
     32   // chromeos::NetworkStateHandlerObserver overrides.
     33   virtual void DefaultNetworkChanged(const NetworkState* network) OVERRIDE;
     34 
     35   // content::NotificationObserver overrides.
     36   virtual void Observe(int type,
     37                        const content::NotificationSource& source,
     38                        const content::NotificationDetails& details) OVERRIDE;
     39 
     40   bool IsNetworkConnected() const;
     41   net::URLRequestContextGetter* GetRequestContext() const;
     42   void DoPrewarm();
     43 
     44   content::NotificationRegistrar registrar_;
     45   base::Closure completion_callback_;
     46   bool doing_prewarm_;
     47 
     48   DISALLOW_COPY_AND_ASSIGN(AuthPrewarmer);
     49 };
     50 
     51 }  // namespace chromeos
     52 
     53 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_AUTH_PREWARMER_H_
     54