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