Chromium Code Reviews| Index: components/image_fetcher/ios/raw_image_fetcher.mm |
| diff --git a/ios/chrome/browser/net/image_fetcher.mm b/components/image_fetcher/ios/raw_image_fetcher.mm |
| similarity index 78% |
| copy from ios/chrome/browser/net/image_fetcher.mm |
| copy to components/image_fetcher/ios/raw_image_fetcher.mm |
| index f8bc5d1d08dbc180dcd8b5baf069bce8b9f521b4..c8b27c306fa80320abb4a45d5a2b4c7badc75a88 100644 |
| --- a/ios/chrome/browser/net/image_fetcher.mm |
| +++ b/components/image_fetcher/ios/raw_image_fetcher.mm |
| @@ -2,7 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#import "ios/chrome/browser/net/image_fetcher.h" |
| +#import "components/image_fetcher/ios/raw_image_fetcher.h" |
| #import <Foundation/Foundation.h> |
| #include <stddef.h> |
| @@ -11,7 +11,7 @@ |
| #include "base/location.h" |
| #include "base/mac/scoped_nsobject.h" |
| #include "base/task_runner.h" |
| -#include "ios/chrome/browser/webp_transcode/webp_decoder.h" |
| +#include "components/image_fetcher/ios/webp_decoder.h" |
| #include "ios/web/public/web_thread.h" |
|
sdefresne
2016/11/23 14:40:33
Remove.
gambard
2016/11/23 15:01:21
Done.
|
| #include "net/base/load_flags.h" |
| #include "net/http/http_response_headers.h" |
| @@ -38,6 +38,7 @@ class WebpDecoderDelegate : public webp_transcode::WebpDecoder::Delegate { |
| DCHECK(decoded_image_); |
| [decoded_image_ appendData:data]; |
| } |
| + |
| private: |
| ~WebpDecoderDelegate() override {} |
| base::scoped_nsobject<NSMutableData> decoded_image_; |
| @@ -60,14 +61,17 @@ base::scoped_nsobject<NSData> DecodeWebpImage( |
| } // namespace |
| -ImageFetcher::ImageFetcher(const scoped_refptr<base::TaskRunner>& task_runner) |
| +namespace image_fetcher { |
| + |
| +RawImageFetcher::RawImageFetcher( |
| + const scoped_refptr<base::TaskRunner>& task_runner) |
| : request_context_getter_(nullptr), |
| task_runner_(task_runner), |
| weak_factory_(this) { |
| DCHECK(task_runner_.get()); |
| } |
| -ImageFetcher::~ImageFetcher() { |
| +RawImageFetcher::~RawImageFetcher() { |
| // Delete all the entries in the |downloads_in_progress_| map. This will in |
| // turn cancel all of the requests. |
| for (const auto& pair : downloads_in_progress_) { |
| @@ -76,7 +80,7 @@ ImageFetcher::~ImageFetcher() { |
| } |
| } |
| -void ImageFetcher::StartDownload( |
| +void RawImageFetcher::StartDownload( |
| const GURL& url, |
| ImageFetchedCallback callback, |
| const std::string& referrer, |
| @@ -85,25 +89,25 @@ void ImageFetcher::StartDownload( |
| net::URLFetcher* fetcher = |
| net::URLFetcher::Create(url, net::URLFetcher::GET, this).release(); |
| downloads_in_progress_[fetcher] = [callback copy]; |
| - fetcher->SetLoadFlags( |
| - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | |
| - net::LOAD_DO_NOT_SEND_AUTH_DATA); |
| + fetcher->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | |
| + net::LOAD_DO_NOT_SAVE_COOKIES | |
| + net::LOAD_DO_NOT_SEND_AUTH_DATA); |
| fetcher->SetRequestContext(request_context_getter_.get()); |
| fetcher->SetReferrer(referrer); |
| fetcher->SetReferrerPolicy(referrer_policy); |
| fetcher->Start(); |
| } |
| -void ImageFetcher::StartDownload( |
| - const GURL& url, ImageFetchedCallback callback) { |
| - ImageFetcher::StartDownload( |
| - url, callback, std::string(), net::URLRequest::NEVER_CLEAR_REFERRER); |
| +void RawImageFetcher::StartDownload(const GURL& url, |
| + ImageFetchedCallback callback) { |
| + RawImageFetcher::StartDownload(url, callback, std::string(), |
| + net::URLRequest::NEVER_CLEAR_REFERRER); |
| } |
| // Delegate callback that is called when URLFetcher completes. If the image |
| // was fetched successfully, creates a new NSData and returns it to the |
| // callback, otherwise returns nil to the callback. |
| -void ImageFetcher::OnURLFetchComplete(const net::URLFetcher* fetcher) { |
| +void RawImageFetcher::OnURLFetchComplete(const net::URLFetcher* fetcher) { |
| if (downloads_in_progress_.find(fetcher) == downloads_in_progress_.end()) { |
| LOG(ERROR) << "Received callback for unknown URLFetcher " << fetcher; |
| return; |
| @@ -124,8 +128,8 @@ void ImageFetcher::OnURLFetchComplete(const net::URLFetcher* fetcher) { |
| // code has no meaning, because there is no actual server (data is encoded |
| // directly in the URL). In that case, set the response code to 200 (OK). |
| const GURL& original_url = fetcher->GetOriginalURL(); |
| - const int http_response_code = original_url.SchemeIs("data") ? |
| - 200 : fetcher->GetResponseCode(); |
| + const int http_response_code = |
| + original_url.SchemeIs("data") ? 200 : fetcher->GetResponseCode(); |
|
sdefresne
2016/11/23 14:40:33
Please use url::kDataScheme instead of "data".
gambard
2016/11/23 15:01:21
Done.
|
| if (http_response_code != 200) { |
| (callback.get())(original_url, http_response_code, nil); |
| return; |
| @@ -146,21 +150,17 @@ void ImageFetcher::OnURLFetchComplete(const net::URLFetcher* fetcher) { |
| std::string mime_type; |
| fetcher->GetResponseHeaders()->GetMimeType(&mime_type); |
| if (mime_type == kWEBPMimeType) { |
| - base::PostTaskAndReplyWithResult(task_runner_.get(), |
| - FROM_HERE, |
| - base::Bind(&DecodeWebpImage, data), |
| - base::Bind(&ImageFetcher::RunCallback, |
| - weak_factory_.GetWeakPtr(), |
| - callback, |
| - original_url, |
| - http_response_code)); |
| + base::PostTaskAndReplyWithResult( |
| + task_runner_.get(), FROM_HERE, base::Bind(&DecodeWebpImage, data), |
| + base::Bind(&RawImageFetcher::RunCallback, weak_factory_.GetWeakPtr(), |
| + callback, original_url, http_response_code)); |
| return; |
| } |
| } |
| (callback.get())(original_url, http_response_code, data); |
| } |
| -void ImageFetcher::RunCallback( |
| +void RawImageFetcher::RunCallback( |
| const base::mac::ScopedBlock<ImageFetchedCallback>& callback, |
| const GURL& url, |
| int http_response_code, |
| @@ -168,7 +168,9 @@ void ImageFetcher::RunCallback( |
| (callback.get())(url, http_response_code, data); |
| } |
| -void ImageFetcher::SetRequestContextGetter( |
| +void RawImageFetcher::SetRequestContextGetter( |
| const scoped_refptr<net::URLRequestContextGetter>& request_context_getter) { |
| request_context_getter_ = request_context_getter; |
| } |
| + |
| +} // namespace image_fetcher |