// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_PROFILES_PROFILE_DOWNLOADER_DELEGATE_H_ #define CHROME_BROWSER_PROFILES_PROFILE_DOWNLOADER_DELEGATE_H_ #include #include "base/basictypes.h" #include "base/strings/string16.h" class Profile; class ProfileDownloader; // Reports on success or failure of Profile download. It is OK to delete the // |ProfileImageDownloader| instance in any of these handlers. class ProfileDownloaderDelegate { public: // Error codes passed to OnProfileDownloadFailure. enum FailureReason { TOKEN_ERROR, // Cannot fetch OAuth2 token. NETWORK_ERROR, // Network failure while downloading profile. SERVICE_ERROR, // Service returned an error or malformed reply. IMAGE_DECODE_FAILED // Cannot decode fetched image. }; virtual ~ProfileDownloaderDelegate() {} // Whether the delegate need profile picture to be downloaded. virtual bool NeedsProfilePicture() const = 0; // Returns the desired side length of the profile image. If 0, returns image // of the originally uploaded size. virtual int GetDesiredImageSideLength() const = 0; // Returns the cached URL. If the cache URL matches the new image URL // the image will not be downloaded. Return an empty string when there is no // cached URL. virtual std::string GetCachedPictureURL() const = 0; // Returns the browser profile associated with this download request. virtual Profile* GetBrowserProfile() = 0; // Called when the profile download has completed successfully. Delegate can // query the downloader for the picture and full name. virtual void OnProfileDownloadSuccess(ProfileDownloader* downloader) = 0; // Called when the profile download has failed. virtual void OnProfileDownloadFailure( ProfileDownloader* downloader, ProfileDownloaderDelegate::FailureReason reason) = 0; }; #endif // CHROME_BROWSER_PROFILES_PROFILE_DOWNLOADER_DELEGATE_H_