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

Side by Side Diff: chrome/service/cloud_print/cloud_print_url_fetcher.cc

Issue 6523040: Added support to the Windows cloud print proxy to print XPS documents directl... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Code review changes Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/service/cloud_print/cloud_print_url_fetcher.h" 5 #include "chrome/service/cloud_print/cloud_print_url_fetcher.h"
6 6
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/common/net/http_return.h" 9 #include "chrome/common/net/http_return.h"
10 #include "chrome/service/cloud_print/cloud_print_consts.h" 10 #include "chrome/service/cloud_print/cloud_print_consts.h"
11 #include "chrome/service/cloud_print/cloud_print_helpers.h" 11 #include "chrome/service/cloud_print/cloud_print_helpers.h"
12 #include "chrome/service/net/service_url_request_context.h" 12 #include "chrome/service/net/service_url_request_context.h"
13 #include "googleurl/src/gurl.h" 13 #include "googleurl/src/gurl.h"
14 #include "net/url_request/url_request_status.h" 14 #include "net/url_request/url_request_status.h"
15 15
16 CloudPrintURLFetcher::CloudPrintURLFetcher() 16 CloudPrintURLFetcher::CloudPrintURLFetcher()
17 : delegate_(NULL), 17 : delegate_(NULL),
18 num_retries_(0) { 18 num_retries_(0) {
19 } 19 }
20 20
21 void CloudPrintURLFetcher::StartGetRequest(const GURL& url, 21 void CloudPrintURLFetcher::StartGetRequest(
22 Delegate* delegate, 22 const GURL& url,
23 const std::string& auth_token, 23 Delegate* delegate,
24 int max_retries) { 24 const std::string& auth_token,
25 int max_retries,
26 const std::string& additional_headers) {
25 StartRequestHelper(url, URLFetcher::GET, delegate, auth_token, max_retries, 27 StartRequestHelper(url, URLFetcher::GET, delegate, auth_token, max_retries,
26 std::string(), std::string()); 28 std::string(), std::string(), additional_headers);
27 } 29 }
28 30
29 void CloudPrintURLFetcher::StartPostRequest( 31 void CloudPrintURLFetcher::StartPostRequest(
30 const GURL& url, 32 const GURL& url,
31 Delegate* delegate, 33 Delegate* delegate,
32 const std::string& auth_token, 34 const std::string& auth_token,
33 int max_retries, 35 int max_retries,
34 const std::string& post_data_mime_type, 36 const std::string& post_data_mime_type,
35 const std::string& post_data) { 37 const std::string& post_data,
38 const std::string& additional_headers) {
36 StartRequestHelper(url, URLFetcher::POST, delegate, auth_token, max_retries, 39 StartRequestHelper(url, URLFetcher::POST, delegate, auth_token, max_retries,
37 post_data_mime_type, post_data); 40 post_data_mime_type, post_data, additional_headers);
38 } 41 }
39 42
40 // URLFetcher::Delegate implementation. 43 // URLFetcher::Delegate implementation.
41 void CloudPrintURLFetcher::OnURLFetchComplete( 44 void CloudPrintURLFetcher::OnURLFetchComplete(
42 const URLFetcher* source, 45 const URLFetcher* source,
43 const GURL& url, 46 const GURL& url,
44 const net::URLRequestStatus& status, 47 const net::URLRequestStatus& status,
45 int response_code, 48 int response_code,
46 const ResponseCookies& cookies, 49 const ResponseCookies& cookies,
47 const std::string& data) { 50 const std::string& data) {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 } 109 }
107 } 110 }
108 111
109 void CloudPrintURLFetcher::StartRequestHelper( 112 void CloudPrintURLFetcher::StartRequestHelper(
110 const GURL& url, 113 const GURL& url,
111 URLFetcher::RequestType request_type, 114 URLFetcher::RequestType request_type,
112 Delegate* delegate, 115 Delegate* delegate,
113 const std::string& auth_token, 116 const std::string& auth_token,
114 int max_retries, 117 int max_retries,
115 const std::string& post_data_mime_type, 118 const std::string& post_data_mime_type,
116 const std::string& post_data) { 119 const std::string& post_data,
120 const std::string& additional_headers) {
117 DCHECK(delegate); 121 DCHECK(delegate);
118 request_.reset(new URLFetcher(url, request_type, this)); 122 request_.reset(new URLFetcher(url, request_type, this));
119 request_->set_request_context(GetRequestContextGetter()); 123 request_->set_request_context(GetRequestContextGetter());
120 // Since we implement our own retry logic, disable the retry in URLFetcher. 124 // Since we implement our own retry logic, disable the retry in URLFetcher.
121 request_->set_automatically_retry_on_5xx(false); 125 request_->set_automatically_retry_on_5xx(false);
122 request_->set_max_retries(max_retries); 126 request_->set_max_retries(max_retries);
123 delegate_ = delegate; 127 delegate_ = delegate;
124 std::string headers = "Authorization: GoogleLogin auth="; 128 std::string headers = "Authorization: GoogleLogin auth=";
125 headers += auth_token; 129 headers += auth_token;
126 headers += "\r\n"; 130 headers += "\r\n";
127 headers += kChromeCloudPrintProxyHeader; 131 headers += kChromeCloudPrintProxyHeader;
132 if (!additional_headers.empty()) {
133 headers += "\r\n";
134 headers += additional_headers;
135 }
128 request_->set_extra_request_headers(headers); 136 request_->set_extra_request_headers(headers);
129 if (request_type == URLFetcher::POST) { 137 if (request_type == URLFetcher::POST) {
130 request_->set_upload_data(post_data_mime_type, post_data); 138 request_->set_upload_data(post_data_mime_type, post_data);
131 } 139 }
132 140
133 request_->Start(); 141 request_->Start();
134 } 142 }
135 143
136 CloudPrintURLFetcher::~CloudPrintURLFetcher() {} 144 CloudPrintURLFetcher::~CloudPrintURLFetcher() {}
137 145
138 URLRequestContextGetter* CloudPrintURLFetcher::GetRequestContextGetter() { 146 URLRequestContextGetter* CloudPrintURLFetcher::GetRequestContextGetter() {
139 ServiceURLRequestContextGetter* getter = 147 ServiceURLRequestContextGetter* getter =
140 new ServiceURLRequestContextGetter(); 148 new ServiceURLRequestContextGetter();
141 // Now set up the user agent for cloudprint. 149 // Now set up the user agent for cloudprint.
142 std::string user_agent = getter->user_agent(); 150 std::string user_agent = getter->user_agent();
143 base::StringAppendF(&user_agent, " %s", kCloudPrintUserAgent); 151 base::StringAppendF(&user_agent, " %s", kCloudPrintUserAgent);
144 getter->set_user_agent(user_agent); 152 getter->set_user_agent(user_agent);
145 return getter; 153 return getter;
146 } 154 }
147 155
OLDNEW
« no previous file with comments | « chrome/service/cloud_print/cloud_print_url_fetcher.h ('k') | chrome/service/cloud_print/cloud_print_url_fetcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698