| Index: components/image_fetcher/ios/ios_image_data_fetcher_wrapper.mm
|
| diff --git a/components/image_fetcher/ios/ios_image_data_fetcher_wrapper.mm b/components/image_fetcher/ios/ios_image_data_fetcher_wrapper.mm
|
| index 6bf24c690c545a74e944eada8636b97af9fa2669..30eeb6b16a5020ede34d0863c39e73aa82c0de32 100644
|
| --- a/components/image_fetcher/ios/ios_image_data_fetcher_wrapper.mm
|
| +++ b/components/image_fetcher/ios/ios_image_data_fetcher_wrapper.mm
|
| @@ -86,28 +86,20 @@ IOSImageDataFetcherWrapper::~IOSImageDataFetcherWrapper() {}
|
| void IOSImageDataFetcherWrapper::FetchImageDataWebpDecoded(
|
| const GURL& image_url,
|
| IOSImageDataFetcherCallback callback) {
|
| + image_data_fetcher_.FetchImageData(image_url,
|
| + CallbackForImageDataFetcher(callback));
|
| +}
|
| +
|
| +void IOSImageDataFetcherWrapper::FetchImageDataWebpDecoded(
|
| + const GURL& image_url,
|
| + IOSImageDataFetcherCallback callback,
|
| + const std::string& referrer,
|
| + net::URLRequest::ReferrerPolicy referrer_policy) {
|
| DCHECK(callback);
|
|
|
| - scoped_refptr<base::TaskRunner> task_runner = task_runner_;
|
| - ImageDataFetcher::ImageDataFetcherCallback local_callback =
|
| - base::BindBlockArc(^(const std::string& image_data) {
|
| - // Create a NSData from the returned data and notify the callback.
|
| - NSData* data =
|
| - [NSData dataWithBytes:image_data.data() length:image_data.size()];
|
| -
|
| - if (data.length < 12 ||
|
| - image_data.compare(0, 4, kWEBPFirstMagicPattern) != 0 ||
|
| - image_data.compare(8, 4, kWEBPSecondMagicPattern) != 0) {
|
| - callback(data);
|
| - return;
|
| - }
|
| -
|
| - // The image is a webp image.
|
| - base::PostTaskAndReplyWithResult(task_runner.get(), FROM_HERE,
|
| - base::Bind(&DecodeWebpImage, data),
|
| - base::BindBlockArc(callback));
|
| - });
|
| - image_data_fetcher_.FetchImageData(image_url, local_callback);
|
| + image_data_fetcher_.FetchImageData(image_url,
|
| + CallbackForImageDataFetcher(callback),
|
| + referrer, referrer_policy);
|
| }
|
|
|
| void IOSImageDataFetcherWrapper::SetDataUseServiceName(
|
| @@ -115,4 +107,28 @@ void IOSImageDataFetcherWrapper::SetDataUseServiceName(
|
| image_data_fetcher_.SetDataUseServiceName(data_use_service_name);
|
| }
|
|
|
| +ImageDataFetcher::ImageDataFetcherCallback
|
| +IOSImageDataFetcherWrapper::CallbackForImageDataFetcher(
|
| + IOSImageDataFetcherCallback callback) {
|
| + scoped_refptr<base::TaskRunner> task_runner = task_runner_;
|
| +
|
| + return base::BindBlockArc(^(const std::string& image_data) {
|
| + // Create a NSData from the returned data and notify the callback.
|
| + NSData* data =
|
| + [NSData dataWithBytes:image_data.data() length:image_data.size()];
|
| +
|
| + if (data.length < 12 ||
|
| + image_data.compare(0, 4, kWEBPFirstMagicPattern) != 0 ||
|
| + image_data.compare(8, 4, kWEBPSecondMagicPattern) != 0) {
|
| + callback(data);
|
| + return;
|
| + }
|
| +
|
| + // The image is a webp image.
|
| + base::PostTaskAndReplyWithResult(task_runner.get(), FROM_HERE,
|
| + base::Bind(&DecodeWebpImage, data),
|
| + base::BindBlockArc(callback));
|
| + });
|
| +}
|
| +
|
| } // namespace image_fetcher
|
|
|