Home | History | Annotate | Download | only in login
      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);
     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