1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
// Copyright 2012 The Chromium Authors
// 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 <string>
class ProfileDownloader;
namespace signin {
class IdentityManager;
} // namespace signin
namespace network {
namespace mojom {
class URLLoaderFactory;
} // namespace mojom
} // namespace network
// 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.
INVALID_PROFILE_PICTURE_URL // The profile picture URL is invalid.
};
virtual ~ProfileDownloaderDelegate() = default;
// 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 IdentityManager associated with this download request.
virtual signin::IdentityManager* GetIdentityManager() = 0;
// Returns the URLLoaderFactory to use for this download request.
virtual network::mojom::URLLoaderFactory* GetURLLoaderFactory() = 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_
|