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

Side by Side Diff: chrome/browser/google_apis/base_operations.cc

Issue 11421170: google_apis: Clean up base_operations.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: polish Created 8 years 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
« no previous file with comments | « chrome/browser/google_apis/base_operations.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/browser/google_apis/base_operations.h" 5 #include "chrome/browser/google_apis/base_operations.h"
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "base/task_runner_util.h" 10 #include "base/task_runner_util.h"
(...skipping 28 matching lines...) Expand all
39 scoped_ptr<base::Value> value(base::JSONReader::ReadAndReturnError( 39 scoped_ptr<base::Value> value(base::JSONReader::ReadAndReturnError(
40 data, base::JSON_PARSE_RFC, &error_code, &error_message)); 40 data, base::JSON_PARSE_RFC, &error_code, &error_message));
41 41
42 if (!value.get()) { 42 if (!value.get()) {
43 LOG(ERROR) << "Error while parsing entry response: " << error_message 43 LOG(ERROR) << "Error while parsing entry response: " << error_message
44 << ", code: " << error_code << ", data:\n" << data; 44 << ", code: " << error_code << ", data:\n" << data;
45 } 45 }
46 return value.Pass(); 46 return value.Pass();
47 } 47 }
48 48
49 // Returns response headers as a string. Returns a warning message if
50 // |url_fetcher| does not contain a valid response. Used only for debugging.
51 std::string GetResponseHeadersAsString(
52 const URLFetcher* url_fetcher) {
53 // net::HttpResponseHeaders::raw_headers(), as the name implies, stores
54 // all headers in their raw format, i.e each header is null-terminated.
55 // So logging raw_headers() only shows the first header, which is probably
56 // the status line. GetNormalizedHeaders, on the other hand, will show all
57 // the headers, one per line, which is probably what we want.
58 std::string headers;
59 // Check that response code indicates response headers are valid (i.e. not
60 // malformed) before we retrieve the headers.
61 if (url_fetcher->GetResponseCode() == URLFetcher::RESPONSE_CODE_INVALID) {
62 headers.assign("Response headers are malformed!!");
63 } else {
64 url_fetcher->GetResponseHeaders()->GetNormalizedHeaders(&headers);
65 }
66 return headers;
67 }
68
49 } // namespace 69 } // namespace
50 70
51 namespace google_apis { 71 namespace google_apis {
52 72
53 //============================ UrlFetchOperationBase =========================== 73 //============================ UrlFetchOperationBase ===========================
54 74
55 UrlFetchOperationBase::UrlFetchOperationBase(OperationRegistry* registry) 75 UrlFetchOperationBase::UrlFetchOperationBase(OperationRegistry* registry)
56 : OperationRegistry::Operation(registry), 76 : OperationRegistry::Operation(registry),
77 save_temp_file_(false),
57 re_authenticate_count_(0), 78 re_authenticate_count_(0),
58 save_temp_file_(false),
59 started_(false), 79 started_(false),
60 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { 80 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
61 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 81 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
62 } 82 }
63 83
64 UrlFetchOperationBase::UrlFetchOperationBase(OperationRegistry* registry, 84 UrlFetchOperationBase::UrlFetchOperationBase(OperationRegistry* registry,
65 OperationType type, 85 OperationType type,
66 const FilePath& path) 86 const FilePath& path)
67 : OperationRegistry::Operation(registry, type, path), 87 : OperationRegistry::Operation(registry, type, path),
88 save_temp_file_(false),
68 re_authenticate_count_(0), 89 re_authenticate_count_(0),
69 save_temp_file_(false),
70 started_(false), 90 started_(false),
71 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { 91 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
72 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 92 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
73 } 93 }
74 94
75 UrlFetchOperationBase::~UrlFetchOperationBase() {} 95 UrlFetchOperationBase::~UrlFetchOperationBase() {}
76 96
77 void UrlFetchOperationBase::Start(const std::string& auth_token, 97 void UrlFetchOperationBase::Start(const std::string& auth_token,
78 const std::string& custom_user_agent) { 98 const std::string& custom_user_agent) {
79 DCHECK(!auth_token.empty()); 99 DCHECK(!auth_token.empty());
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 bool UrlFetchOperationBase::GetContentData(std::string* upload_content_type, 164 bool UrlFetchOperationBase::GetContentData(std::string* upload_content_type,
145 std::string* upload_content) { 165 std::string* upload_content) {
146 return false; 166 return false;
147 } 167 }
148 168
149 void UrlFetchOperationBase::DoCancel() { 169 void UrlFetchOperationBase::DoCancel() {
150 url_fetcher_.reset(NULL); 170 url_fetcher_.reset(NULL);
151 RunCallbackOnPrematureFailure(GDATA_CANCELLED); 171 RunCallbackOnPrematureFailure(GDATA_CANCELLED);
152 } 172 }
153 173
154 GDataErrorCode UrlFetchOperationBase::GetErrorCode( 174 // static
155 const URLFetcher* source) const { 175 GDataErrorCode UrlFetchOperationBase::GetErrorCode(const URLFetcher* source) {
156 GDataErrorCode code = static_cast<GDataErrorCode>(source->GetResponseCode()); 176 GDataErrorCode code = static_cast<GDataErrorCode>(source->GetResponseCode());
157 if (code == HTTP_SUCCESS && !source->GetStatus().is_success()) { 177 if (code == HTTP_SUCCESS && !source->GetStatus().is_success()) {
158 // If the HTTP response code is SUCCESS yet the URL request failed, it is 178 // If the HTTP response code is SUCCESS yet the URL request failed, it is
159 // likely that the failure is due to loss of connection. 179 // likely that the failure is due to loss of connection.
160 code = GDATA_NO_CONNECTION; 180 code = GDATA_NO_CONNECTION;
161 } 181 }
162 return code; 182 return code;
163 } 183 }
164 184
165 void UrlFetchOperationBase::OnProcessURLFetchResultsComplete(bool result) { 185 void UrlFetchOperationBase::OnProcessURLFetchResultsComplete(bool result) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 if (!started_) 227 if (!started_)
208 NotifyStart(); 228 NotifyStart();
209 229
210 // Note: NotifyFinish() must be invoked at the end, after all other callbacks 230 // Note: NotifyFinish() must be invoked at the end, after all other callbacks
211 // and notifications. Once NotifyFinish() is called, the current instance of 231 // and notifications. Once NotifyFinish() is called, the current instance of
212 // gdata operation will be deleted from the OperationRegistry and become 232 // gdata operation will be deleted from the OperationRegistry and become
213 // invalid. 233 // invalid.
214 NotifyFinish(OPERATION_FAILED); 234 NotifyFinish(OPERATION_FAILED);
215 } 235 }
216 236
217 std::string UrlFetchOperationBase::GetResponseHeadersAsString(
218 const URLFetcher* url_fetcher) {
219 // net::HttpResponseHeaders::raw_headers(), as the name implies, stores
220 // all headers in their raw format, i.e each header is null-terminated.
221 // So logging raw_headers() only shows the first header, which is probably
222 // the status line. GetNormalizedHeaders, on the other hand, will show all
223 // the headers, one per line, which is probably what we want.
224 std::string headers;
225 // Check that response code indicates response headers are valid (i.e. not
226 // malformed) before we retrieve the headers.
227 if (url_fetcher->GetResponseCode() == URLFetcher::RESPONSE_CODE_INVALID) {
228 headers.assign("Response headers are malformed!!");
229 } else {
230 url_fetcher->GetResponseHeaders()->GetNormalizedHeaders(&headers);
231 }
232 return headers;
233 }
234
235 base::WeakPtr<AuthenticatedOperationInterface> 237 base::WeakPtr<AuthenticatedOperationInterface>
236 UrlFetchOperationBase::GetWeakPtr() { 238 UrlFetchOperationBase::GetWeakPtr() {
237 return weak_ptr_factory_.GetWeakPtr(); 239 return weak_ptr_factory_.GetWeakPtr();
238 } 240 }
239 241
240 242
241 //============================ EntryActionOperation ============================ 243 //============================ EntryActionOperation ============================
242 244
243 EntryActionOperation::EntryActionOperation(OperationRegistry* registry, 245 EntryActionOperation::EntryActionOperation(OperationRegistry* registry,
244 const EntryActionCallback& callback) 246 const EntryActionCallback& callback)
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 } 334 }
333 335
334 void GetDataOperation::RunCallback(GDataErrorCode fetch_error_code, 336 void GetDataOperation::RunCallback(GDataErrorCode fetch_error_code,
335 scoped_ptr<base::Value> value) { 337 scoped_ptr<base::Value> value) {
336 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 338 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
337 if (!callback_.is_null()) 339 if (!callback_.is_null())
338 callback_.Run(fetch_error_code, value.Pass()); 340 callback_.Run(fetch_error_code, value.Pass());
339 } 341 }
340 342
341 } // namespace google_apis 343 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/base_operations.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698