 Chromium Code Reviews
 Chromium Code Reviews Issue 2674653003:
  Use IOSImageDataFetcherWrapper in BrowserViewController  (Closed)
    
  
    Issue 2674653003:
  Use IOSImageDataFetcherWrapper in BrowserViewController  (Closed) 
  | OLD | NEW | 
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "components/image_fetcher/image_data_fetcher.h" | 5 #include "components/image_fetcher/image_data_fetcher.h" | 
| 6 | 6 | 
| 7 #include "net/base/load_flags.h" | 7 #include "net/base/load_flags.h" | 
| 8 #include "net/url_request/url_fetcher.h" | 8 #include "net/url_request/url_fetcher.h" | 
| 9 #include "net/url_request/url_request.h" | 9 #include "net/url_request/url_request.h" | 
| 10 #include "net/url_request/url_request_context_getter.h" | 10 #include "net/url_request/url_request_context_getter.h" | 
| (...skipping 28 matching lines...) Expand all Loading... | |
| 39 next_url_fetcher_id_(0) {} | 39 next_url_fetcher_id_(0) {} | 
| 40 | 40 | 
| 41 ImageDataFetcher::~ImageDataFetcher() {} | 41 ImageDataFetcher::~ImageDataFetcher() {} | 
| 42 | 42 | 
| 43 void ImageDataFetcher::SetDataUseServiceName( | 43 void ImageDataFetcher::SetDataUseServiceName( | 
| 44 DataUseServiceName data_use_service_name) { | 44 DataUseServiceName data_use_service_name) { | 
| 45 data_use_service_name_ = data_use_service_name; | 45 data_use_service_name_ = data_use_service_name; | 
| 46 } | 46 } | 
| 47 | 47 | 
| 48 void ImageDataFetcher::FetchImageData( | 48 void ImageDataFetcher::FetchImageData( | 
| 49 const GURL& url, const ImageDataFetcherCallback& callback) { | 49 const GURL& image_url, | 
| 50 std::unique_ptr<net::URLFetcher> url_fetcher = | 50 const ImageDataFetcherCallback& callback) { | 
| 51 net::URLFetcher::Create( | 51 ImageDataFetcher::FetchImageData( | 
| 
Marc Treib
2017/02/03 14:10:30
"ImageDataFetcher::" isn't needed.
 
gambard
2017/02/03 14:56:47
Done.
 | |
| 52 next_url_fetcher_id_++, url, net::URLFetcher::GET, this); | 52 image_url, callback, /*referrer=*/std::string(), | 
| 53 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE); | |
| 
Marc Treib
2017/02/03 14:10:30
It's unfortunate that we have to bake in the defau
 
gambard
2017/02/03 14:56:47
I agree this not a perfect solution. I would have
 | |
| 54 } | |
| 55 | |
| 56 void ImageDataFetcher::FetchImageData( | |
| 57 const GURL& image_url, | |
| 58 const ImageDataFetcherCallback& callback, | |
| 59 const std::string& referrer, | |
| 60 net::URLRequest::ReferrerPolicy referrer_policy) { | |
| 61 std::unique_ptr<net::URLFetcher> url_fetcher = net::URLFetcher::Create( | |
| 62 next_url_fetcher_id_++, image_url, net::URLFetcher::GET, this); | |
| 53 | 63 | 
| 54 DataUseUserData::AttachToFetcher(url_fetcher.get(), data_use_service_name_); | 64 DataUseUserData::AttachToFetcher(url_fetcher.get(), data_use_service_name_); | 
| 55 | 65 | 
| 56 std::unique_ptr<ImageDataFetcherRequest> request( | 66 std::unique_ptr<ImageDataFetcherRequest> request( | 
| 57 new ImageDataFetcherRequest(callback, std::move(url_fetcher))); | 67 new ImageDataFetcherRequest(callback, std::move(url_fetcher))); | 
| 58 request->url_fetcher->SetRequestContext(url_request_context_getter_.get()); | 68 request->url_fetcher->SetRequestContext(url_request_context_getter_.get()); | 
| 69 request->url_fetcher->SetReferrer(referrer); | |
| 70 request->url_fetcher->SetReferrerPolicy(referrer_policy); | |
| 59 request->url_fetcher->Start(); | 71 request->url_fetcher->Start(); | 
| 60 | 72 | 
| 61 pending_requests_[request->url_fetcher.get()] = std::move(request); | 73 pending_requests_[request->url_fetcher.get()] = std::move(request); | 
| 62 } | 74 } | 
| 63 | 75 | 
| 64 void ImageDataFetcher::OnURLFetchComplete(const net::URLFetcher* source) { | 76 void ImageDataFetcher::OnURLFetchComplete(const net::URLFetcher* source) { | 
| 65 auto request_iter = pending_requests_.find(source); | 77 auto request_iter = pending_requests_.find(source); | 
| 66 DCHECK(request_iter != pending_requests_.end()); | 78 DCHECK(request_iter != pending_requests_.end()); | 
| 67 | 79 | 
| 68 std::string image_data; | 80 std::string image_data; | 
| 69 if (source->GetStatus().status() == net::URLRequestStatus::SUCCESS) { | 81 if (source->GetStatus().status() == net::URLRequestStatus::SUCCESS) { | 
| 70 source->GetResponseAsString(&image_data); | 82 source->GetResponseAsString(&image_data); | 
| 71 } | 83 } | 
| 72 request_iter->second->callback.Run(image_data); | 84 request_iter->second->callback.Run(image_data); | 
| 73 | 85 | 
| 74 // Remove the finished request. | 86 // Remove the finished request. | 
| 75 pending_requests_.erase(request_iter); | 87 pending_requests_.erase(request_iter); | 
| 76 } | 88 } | 
| 77 | 89 | 
| 78 } // namespace image_fetcher | 90 } // namespace image_fetcher | 
| OLD | NEW |