Home | History | Annotate | Download | only in profiles
      1 // Copyright (c) 2011 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_PROFILES_PROFILE_INFO_INTERFACE_H_
      6 #define CHROME_BROWSER_PROFILES_PROFILE_INFO_INTERFACE_H_
      7 
      8 #include "base/files/file_path.h"
      9 #include "base/strings/string16.h"
     10 
     11 namespace gfx {
     12 class Image;
     13 }
     14 
     15 // This abstract interface is used to query the profiles backend for information
     16 // about the different profiles. Its sole concrete implementation is the
     17 // ProfileInfoCache. This interface exists largely to assist in testing.
     18 class ProfileInfoInterface {
     19  public:
     20   virtual size_t GetNumberOfProfiles() const = 0;
     21 
     22   virtual size_t GetIndexOfProfileWithPath(
     23       const base::FilePath& profile_path) const = 0;
     24 
     25   virtual string16 GetNameOfProfileAtIndex(size_t index) const = 0;
     26 
     27   virtual string16 GetShortcutNameOfProfileAtIndex(size_t index) const = 0;
     28 
     29   virtual base::FilePath GetPathOfProfileAtIndex(size_t index) const = 0;
     30 
     31   virtual string16 GetUserNameOfProfileAtIndex(size_t index) const = 0;
     32 
     33   virtual const gfx::Image& GetAvatarIconOfProfileAtIndex(
     34       size_t index) const = 0;
     35 
     36   // Returns true if the profile at the given index is currently running any
     37   // background apps.
     38   virtual bool GetBackgroundStatusOfProfileAtIndex(
     39       size_t index) const = 0;
     40 
     41   virtual string16 GetGAIANameOfProfileAtIndex(size_t index) const = 0;
     42 
     43   // Checks if the GAIA name should be used as the profile's name.
     44   virtual bool IsUsingGAIANameOfProfileAtIndex(size_t index) const = 0;
     45 
     46   virtual const gfx::Image* GetGAIAPictureOfProfileAtIndex(
     47       size_t index) const = 0;
     48 
     49   // Checks if the GAIA picture should be used as the profile's avatar icon.
     50   virtual bool IsUsingGAIAPictureOfProfileAtIndex(size_t index) const = 0;
     51 
     52   virtual bool ProfileIsManagedAtIndex(size_t index) const = 0;
     53 
     54   virtual std::string GetManagedUserIdOfProfileAtIndex(size_t index) const = 0;
     55 
     56   // This profile is associated with an account but has been signed-out.
     57   virtual bool ProfileIsSigninRequiredAtIndex(size_t index) const = 0;
     58 
     59  protected:
     60   virtual ~ProfileInfoInterface() {}
     61 };
     62 
     63 #endif  // CHROME_BROWSER_PROFILES_PROFILE_INFO_INTERFACE_H_
     64