Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/bitmap_fetcher.h" | 5 #include "chrome/browser/bitmap_fetcher.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | |
| 7 #include "content/public/browser/browser_thread.h" | 8 #include "content/public/browser/browser_thread.h" |
| 9 #include "content/public/common/content_switches.h" | |
| 10 #include "net/base/load_flags.h" | |
| 8 #include "net/url_request/url_fetcher.h" | 11 #include "net/url_request/url_fetcher.h" |
| 9 #include "net/url_request/url_request_context_getter.h" | 12 #include "net/url_request/url_request_context_getter.h" |
| 10 #include "net/url_request/url_request_status.h" | 13 #include "net/url_request/url_request_status.h" |
| 11 | 14 |
| 12 namespace chrome { | 15 namespace chrome { |
| 13 | 16 |
| 14 BitmapFetcher::BitmapFetcher(const GURL& url, | 17 BitmapFetcher::BitmapFetcher(const GURL& url, |
| 15 BitmapFetcherDelegate* delegate) | 18 BitmapFetcherDelegate* delegate) |
| 16 : url_(url), | 19 : url_(url), |
| 17 delegate_(delegate) { | 20 delegate_(delegate) { |
| 18 } | 21 } |
| 19 | 22 |
| 20 BitmapFetcher::~BitmapFetcher() {} | 23 BitmapFetcher::~BitmapFetcher() {} |
| 21 | 24 |
| 25 | |
| 22 void BitmapFetcher::Start(net::URLRequestContextGetter* request_context) { | 26 void BitmapFetcher::Start(net::URLRequestContextGetter* request_context) { |
| 27 Start(request_context, content::Referrer(), net::LOAD_NORMAL); | |
| 28 } | |
| 29 | |
| 30 void BitmapFetcher::Start(net::URLRequestContextGetter* request_context, | |
| 31 const content::Referrer& referrer, | |
| 32 int load_flags) { | |
| 23 if (url_fetcher_ != NULL) | 33 if (url_fetcher_ != NULL) |
| 24 return; | 34 return; |
| 25 | 35 |
| 26 url_fetcher_.reset(net::URLFetcher::Create(url_, net::URLFetcher::GET, this)); | 36 url_fetcher_.reset(net::URLFetcher::Create(url_, net::URLFetcher::GET, this)); |
| 27 url_fetcher_->SetRequestContext(request_context); | 37 url_fetcher_->SetRequestContext(request_context); |
| 38 url_fetcher_->SetLoadFlags(load_flags); | |
|
Kibeom Kim (inactive)
2014/04/30 00:58:56
Similar to ImageFetcher::StartDownload
https://ch
| |
| 39 | |
| 40 if (referrer.url.is_valid()) { | |
| 41 GURL referrer_url = referrer.ReferrerHeaderUrlForNavigation(url_); | |
| 42 if (!referrer_url.is_empty()) { | |
| 43 url_fetcher_->SetReferrer(referrer_url.spec()); | |
| 44 net::URLRequest::ReferrerPolicy net_referrer_policy = | |
| 45 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE; | |
| 46 switch (referrer.policy) { | |
| 47 case blink::WebReferrerPolicyDefault: | |
| 48 break; | |
| 49 case blink::WebReferrerPolicyAlways: | |
| 50 case blink::WebReferrerPolicyNever: | |
| 51 case blink::WebReferrerPolicyOrigin: | |
| 52 net_referrer_policy = net::URLRequest::NEVER_CLEAR_REFERRER; | |
| 53 break; | |
| 54 default: | |
| 55 NOTREACHED(); | |
| 56 } | |
| 57 url_fetcher_->SetReferrerPolicy(net_referrer_policy); | |
| 58 } | |
| 59 } | |
| 60 | |
| 28 url_fetcher_->Start(); | 61 url_fetcher_->Start(); |
| 29 } | 62 } |
| 30 | 63 |
| 31 // Methods inherited from URLFetcherDelegate. | 64 // Methods inherited from URLFetcherDelegate. |
| 32 | 65 |
| 33 void BitmapFetcher::OnURLFetchComplete(const net::URLFetcher* source) { | 66 void BitmapFetcher::OnURLFetchComplete(const net::URLFetcher* source) { |
| 34 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); | 67 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
| 35 | 68 |
| 36 if (source->GetStatus().status() != net::URLRequestStatus::SUCCESS) { | 69 if (source->GetStatus().status() != net::URLRequestStatus::SUCCESS) { |
| 37 ReportFailure(); | 70 ReportFailure(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 71 | 104 |
| 72 void BitmapFetcher::OnDecodeImageFailed(const ImageDecoder* decoder) { | 105 void BitmapFetcher::OnDecodeImageFailed(const ImageDecoder* decoder) { |
| 73 ReportFailure(); | 106 ReportFailure(); |
| 74 } | 107 } |
| 75 | 108 |
| 76 void BitmapFetcher::ReportFailure() { | 109 void BitmapFetcher::ReportFailure() { |
| 77 delegate_->OnFetchComplete(url_, NULL); | 110 delegate_->OnFetchComplete(url_, NULL); |
| 78 } | 111 } |
| 79 | 112 |
| 80 } // namespace chrome | 113 } // namespace chrome |
| OLD | NEW |