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

Side by Side Diff: chrome/browser/bitmap_fetcher.cc

Issue 263563003: Add referrer & load flag support to BitmapFetcher class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove temp comments Created 6 years, 7 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 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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698