summaryrefslogtreecommitdiffstats
path: root/chrome/browser/profiles/profile_downloader_delegate.h
blob: 4b6e19c70dabc5e1dc8a4629dee8e0e7672becd0 (plain)
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
// 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 <string>

#include "base/basictypes.h"
#include "base/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:
  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) = 0;
};

#endif  // CHROME_BROWSER_PROFILES_PROFILE_DOWNLOADER_DELEGATE_H_