• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_CHROMEOS_LOGIN_IMAGE_DOWNLOADER_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_IMAGE_DOWNLOADER_H_
7 #pragma once
8 
9 #include <string>
10 
11 #include "base/basictypes.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "chrome/browser/chromeos/login/image_decoder.h"
14 #include "chrome/common/net/url_fetcher.h"
15 #include "googleurl/src/gurl.h"
16 
17 namespace chromeos {
18 
19 // Downloads the image, decodes it in a sandboxed process.
20 // This objects deletes itself after OnURLFetchComplete.
21 class ImageDownloader : public URLFetcher::Delegate {
22  public:
23   // Starts downloading the picture. Optional auth_token could be passed.
24   // Object is deleted as reference counted object.
25   ImageDownloader(ImageDecoder::Delegate* delegate,
26                   const GURL& image_url,
27                   const std::string& auth_token);
~ImageDownloader()28   virtual ~ImageDownloader() {}
29 
30  private:
31   // Overriden from URLFetcher::Delegate:
32   virtual void OnURLFetchComplete(const URLFetcher* source,
33                                   const GURL& url,
34                                   const net::URLRequestStatus& status,
35                                   int response_code,
36                                   const ResponseCookies& cookies,
37                                   const std::string& data);
38 
39   ImageDecoder::Delegate* delegate_;
40   scoped_ptr<URLFetcher> image_fetcher_;
41 
42   DISALLOW_COPY_AND_ASSIGN(ImageDownloader);
43 };
44 
45 }  // namespace chromeos
46 
47 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_IMAGE_DOWNLOADER_H_
48