| OLD | NEW | 
|---|
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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 | 
| OLD | NEW | 
|---|