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_UI_WEBUI_OPTIONS_CHROMEOS_USER_IMAGE_SOURCE_H_
6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_USER_IMAGE_SOURCE_H_
7#pragma once
8
9#include <string>
10#include <vector>
11
12#include "base/basictypes.h"
13#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
14
15namespace chromeos {
16
17// UserImageSource is the data source that serves user images for users that
18// have it.
19class UserImageSource : public ChromeURLDataManager::DataSource {
20 public:
21  UserImageSource();
22
23  // Called when the network layer has requested a resource underneath
24  // the path we registered.
25  virtual void StartDataRequest(const std::string& path,
26                                bool is_incognito,
27                                int request_id);
28
29  virtual std::string GetMimeType(const std::string&) const;
30
31  // Returns PNG encoded image for user with specified email.
32  // If there's no user with such email, returns the default image.
33  std::vector<unsigned char> GetUserImage(const std::string& email) const;
34
35 private:
36  virtual ~UserImageSource();
37
38  DISALLOW_COPY_AND_ASSIGN(UserImageSource);
39};
40
41}  // namespace chromeos
42
43#endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_CHROMEOS_USER_IMAGE_SOURCE_H_
44