Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(683)

Side by Side Diff: components/image_fetcher/image_data_fetcher.cc

Issue 2674653003: Use IOSImageDataFetcherWrapper in BrowserViewController (Closed)
Patch Set: Address comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698