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/service/cloud_print/cloud_print_url_fetcher.cc

Issue 2888763004: Network traffic annotation added to CloudPrintUrlFetcher. (Closed)
Patch Set: nits Created 3 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 } 83 }
84 84
85 CloudPrintURLFetcherFactory* g_test_factory = nullptr; 85 CloudPrintURLFetcherFactory* g_test_factory = nullptr;
86 86
87 } // namespace 87 } // namespace
88 88
89 // virtual 89 // virtual
90 CloudPrintURLFetcherFactory::~CloudPrintURLFetcherFactory() {} 90 CloudPrintURLFetcherFactory::~CloudPrintURLFetcherFactory() {}
91 91
92 // static 92 // static
93 CloudPrintURLFetcher* CloudPrintURLFetcher::Create() { 93 CloudPrintURLFetcher* CloudPrintURLFetcher::Create(
94 const net::PartialNetworkTrafficAnnotationTag& partial_traffic_annotation) {
94 return g_test_factory ? g_test_factory->CreateCloudPrintURLFetcher() 95 return g_test_factory ? g_test_factory->CreateCloudPrintURLFetcher()
95 : new CloudPrintURLFetcher; 96 : new CloudPrintURLFetcher(partial_traffic_annotation);
96 } 97 }
97 98
98 // static 99 // static
99 void CloudPrintURLFetcher::set_test_factory( 100 void CloudPrintURLFetcher::set_test_factory(
100 CloudPrintURLFetcherFactory* factory) { 101 CloudPrintURLFetcherFactory* factory) {
101 g_test_factory = factory; 102 g_test_factory = factory;
102 } 103 }
103 104
104 CloudPrintURLFetcher::ResponseAction 105 CloudPrintURLFetcher::ResponseAction
105 CloudPrintURLFetcher::Delegate::HandleRawResponse( 106 CloudPrintURLFetcher::Delegate::HandleRawResponse(
(...skipping 15 matching lines...) Expand all
121 122
122 CloudPrintURLFetcher::ResponseAction 123 CloudPrintURLFetcher::ResponseAction
123 CloudPrintURLFetcher::Delegate::HandleJSONData( 124 CloudPrintURLFetcher::Delegate::HandleJSONData(
124 const net::URLFetcher* source, 125 const net::URLFetcher* source,
125 const GURL& url, 126 const GURL& url,
126 const base::DictionaryValue* json_data, 127 const base::DictionaryValue* json_data,
127 bool succeeded) { 128 bool succeeded) {
128 return CONTINUE_PROCESSING; 129 return CONTINUE_PROCESSING;
129 } 130 }
130 131
131 CloudPrintURLFetcher::CloudPrintURLFetcher() 132 CloudPrintURLFetcher::CloudPrintURLFetcher(
133 const net::PartialNetworkTrafficAnnotationTag& partial_traffic_annotation)
132 : delegate_(NULL), 134 : delegate_(NULL),
133 num_retries_(0), 135 num_retries_(0),
134 type_(REQUEST_MAX) { 136 type_(REQUEST_MAX),
135 } 137 partial_traffic_annotation_(partial_traffic_annotation) {}
136 138
137 bool CloudPrintURLFetcher::IsSameRequest(const net::URLFetcher* source) { 139 bool CloudPrintURLFetcher::IsSameRequest(const net::URLFetcher* source) {
138 return (request_.get() == source); 140 return (request_.get() == source);
139 } 141 }
140 142
141 void CloudPrintURLFetcher::StartGetRequest( 143 void CloudPrintURLFetcher::StartGetRequest(
142 RequestType type, 144 RequestType type,
143 const GURL& url, 145 const GURL& url,
144 Delegate* delegate, 146 Delegate* delegate,
145 int max_retries, 147 int max_retries,
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 int max_retries, 254 int max_retries,
253 const std::string& post_data_mime_type, 255 const std::string& post_data_mime_type,
254 const std::string& post_data, 256 const std::string& post_data,
255 const std::string& additional_headers) { 257 const std::string& additional_headers) {
256 DCHECK(delegate); 258 DCHECK(delegate);
257 type_ = type; 259 type_ = type;
258 UMA_HISTOGRAM_ENUMERATION("CloudPrint.UrlFetcherRequestType", type, 260 UMA_HISTOGRAM_ENUMERATION("CloudPrint.UrlFetcherRequestType", type,
259 REQUEST_MAX); 261 REQUEST_MAX);
260 // Persist the additional headers in case we need to retry the request. 262 // Persist the additional headers in case we need to retry the request.
261 additional_headers_ = additional_headers; 263 additional_headers_ = additional_headers;
262 request_ = net::URLFetcher::Create(0, url, request_type, this); 264 net::NetworkTrafficAnnotationTag traffic_annotation =
265 net::CompleteNetworkTrafficAnnotation("cloud_print",
266 partial_traffic_annotation_,
267 R"(
268 semantics {
269 sender: "Cloud Print"
270 destination: GOOGLE_OWNED_SERVICE
271 }
272 policy {
273 cookies_allowed: false
274 setting:
275 "This feature cannot be disabled by settings."
276 chrome_policy {
277 CloudPrintProxyEnabled {
278 policy_options {mode: MANDATORY}
279 CloudPrintProxyEnabled: false
280 }
281 }
282 })");
283 request_ =
284 net::URLFetcher::Create(0, url, request_type, this, traffic_annotation);
263 data_use_measurement::DataUseUserData::AttachToFetcher( 285 data_use_measurement::DataUseUserData::AttachToFetcher(
264 request_.get(), data_use_measurement::DataUseUserData::CLOUD_PRINT); 286 request_.get(), data_use_measurement::DataUseUserData::CLOUD_PRINT);
265 request_->SetRequestContext(GetRequestContextGetter()); 287 request_->SetRequestContext(GetRequestContextGetter());
266 // Since we implement our own retry logic, disable the retry in URLFetcher. 288 // Since we implement our own retry logic, disable the retry in URLFetcher.
267 request_->SetAutomaticallyRetryOn5xx(false); 289 request_->SetAutomaticallyRetryOn5xx(false);
268 request_->SetMaxRetriesOn5xx(max_retries); 290 request_->SetMaxRetriesOn5xx(max_retries);
269 delegate_ = delegate; 291 delegate_ = delegate;
270 SetupRequestHeaders(); 292 SetupRequestHeaders();
271 request_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | 293 request_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
272 net::LOAD_DO_NOT_SAVE_COOKIES); 294 net::LOAD_DO_NOT_SAVE_COOKIES);
(...skipping 23 matching lines...) Expand all
296 ServiceURLRequestContextGetter* getter = 318 ServiceURLRequestContextGetter* getter =
297 g_service_process->GetServiceURLRequestContextGetter(); 319 g_service_process->GetServiceURLRequestContextGetter();
298 // Now set up the user agent for cloudprint. 320 // Now set up the user agent for cloudprint.
299 std::string user_agent = getter->user_agent(); 321 std::string user_agent = getter->user_agent();
300 base::StringAppendF(&user_agent, " %s", kCloudPrintUserAgent); 322 base::StringAppendF(&user_agent, " %s", kCloudPrintUserAgent);
301 getter->set_user_agent(user_agent); 323 getter->set_user_agent(user_agent);
302 return getter; 324 return getter;
303 } 325 }
304 326
305 } // namespace cloud_print 327 } // namespace cloud_print
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