| OLD | NEW |
| 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/stringprintf.h" | 7 #include "base/stringprintf.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" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 action = delegate_->HandleJSONData(source, | 95 action = delegate_->HandleJSONData(source, |
| 96 url, | 96 url, |
| 97 response_dict, | 97 response_dict, |
| 98 succeeded); | 98 succeeded); |
| 99 else | 99 else |
| 100 action = RETRY_REQUEST; | 100 action = RETRY_REQUEST; |
| 101 } | 101 } |
| 102 } | 102 } |
| 103 // Retry the request if needed. | 103 // Retry the request if needed. |
| 104 if (action == RETRY_REQUEST) { | 104 if (action == RETRY_REQUEST) { |
| 105 // If the response code is greater than or equal to 500, then the back-off | 105 // Explicitly call ReceivedContentWasMalformed() to ensure the current |
| 106 // period has been increased at the network level; otherwise, explicitly | 106 // request gets counted as a failure for calculation of the back-off |
| 107 // call ReceivedContentWasMalformed() to count the current request as a | 107 // period. If it was already a failure by status code, this call will |
| 108 // failure and increase the back-off period. | 108 // be ignored. |
| 109 if (response_code < 500) | 109 request_->ReceivedContentWasMalformed(); |
| 110 request_->ReceivedContentWasMalformed(); | |
| 111 | 110 |
| 112 ++num_retries_; | 111 ++num_retries_; |
| 113 if ((-1 != source->max_retries()) && | 112 if ((-1 != source->max_retries()) && |
| 114 (num_retries_ > source->max_retries())) { | 113 (num_retries_ > source->max_retries())) { |
| 115 // Retry limit reached. Give up. | 114 // Retry limit reached. Give up. |
| 116 delegate_->OnRequestGiveUp(); | 115 delegate_->OnRequestGiveUp(); |
| 117 } else { | 116 } else { |
| 118 // Either no retry limit specified or retry limit has not yet been | 117 // Either no retry limit specified or retry limit has not yet been |
| 119 // reached. Try again. Set up the request headers again because the token | 118 // reached. Try again. Set up the request headers again because the token |
| 120 // may have changed. | 119 // may have changed. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 | 169 |
| 171 net::URLRequestContextGetter* CloudPrintURLFetcher::GetRequestContextGetter() { | 170 net::URLRequestContextGetter* CloudPrintURLFetcher::GetRequestContextGetter() { |
| 172 ServiceURLRequestContextGetter* getter = | 171 ServiceURLRequestContextGetter* getter = |
| 173 g_service_process->GetServiceURLRequestContextGetter(); | 172 g_service_process->GetServiceURLRequestContextGetter(); |
| 174 // Now set up the user agent for cloudprint. | 173 // Now set up the user agent for cloudprint. |
| 175 std::string user_agent = getter->user_agent(); | 174 std::string user_agent = getter->user_agent(); |
| 176 base::StringAppendF(&user_agent, " %s", kCloudPrintUserAgent); | 175 base::StringAppendF(&user_agent, " %s", kCloudPrintUserAgent); |
| 177 getter->set_user_agent(user_agent); | 176 getter->set_user_agent(user_agent); |
| 178 return getter; | 177 return getter; |
| 179 } | 178 } |
| OLD | NEW |