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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_uploader.cc

Issue 10877006: Rename GDataErrorCode to DriveErrorCode, GDataFileError to DriveFileError (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor local variable name fix. Created 8 years, 4 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) 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/chromeos/gdata/gdata_uploader.h" 5 #include "chrome/browser/chromeos/gdata/gdata_uploader.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 << "\" for reading: " << net::ErrorToString(result) 242 << "\" for reading: " << net::ErrorToString(result)
243 << ", tries=" << upload_file_info->num_file_open_tries; 243 << ", tries=" << upload_file_info->num_file_open_tries;
244 244
245 // Stop trying to open this file if we exceed kMaxFileOpenTries. 245 // Stop trying to open this file if we exceed kMaxFileOpenTries.
246 const bool exceeded_max_attempts = 246 const bool exceeded_max_attempts =
247 upload_file_info->num_file_open_tries >= kMaxFileOpenTries; 247 upload_file_info->num_file_open_tries >= kMaxFileOpenTries;
248 upload_file_info->should_retry_file_open = !exceeded_max_attempts; 248 upload_file_info->should_retry_file_open = !exceeded_max_attempts;
249 } 249 }
250 if (!upload_file_info->should_retry_file_open) { 250 if (!upload_file_info->should_retry_file_open) {
251 UploadFailed(scoped_ptr<UploadFileInfo>(upload_file_info), 251 UploadFailed(scoped_ptr<UploadFileInfo>(upload_file_info),
252 GDATA_FILE_ERROR_NOT_FOUND); 252 DRIVE_FILE_ERROR_NOT_FOUND);
253 } 253 }
254 return; 254 return;
255 } 255 }
256 256
257 // Open succeeded, initiate the upload. 257 // Open succeeded, initiate the upload.
258 upload_file_info->should_retry_file_open = false; 258 upload_file_info->should_retry_file_open = false;
259 if (upload_file_info->initial_upload_location.is_empty()) { 259 if (upload_file_info->initial_upload_location.is_empty()) {
260 UploadFailed(scoped_ptr<UploadFileInfo>(upload_file_info), 260 UploadFailed(scoped_ptr<UploadFileInfo>(upload_file_info),
261 GDATA_FILE_ERROR_ABORT); 261 DRIVE_FILE_ERROR_ABORT);
262 return; 262 return;
263 } 263 }
264 drive_service_->InitiateUpload( 264 drive_service_->InitiateUpload(
265 InitiateUploadParams(upload_file_info->upload_mode, 265 InitiateUploadParams(upload_file_info->upload_mode,
266 upload_file_info->title, 266 upload_file_info->title,
267 upload_file_info->content_type, 267 upload_file_info->content_type,
268 upload_file_info->content_length, 268 upload_file_info->content_length,
269 upload_file_info->initial_upload_location, 269 upload_file_info->initial_upload_location,
270 upload_file_info->gdata_path), 270 upload_file_info->gdata_path),
271 base::Bind(&GDataUploader::OnUploadLocationReceived, 271 base::Bind(&GDataUploader::OnUploadLocationReceived,
(...skipping 10 matching lines...) Expand all
282 UploadFileInfo* upload_file_info = GetUploadFileInfo(upload_id); 282 UploadFileInfo* upload_file_info = GetUploadFileInfo(upload_id);
283 if (!upload_file_info) 283 if (!upload_file_info)
284 return; 284 return;
285 285
286 DVLOG(1) << "Got upload location [" << upload_location.spec() 286 DVLOG(1) << "Got upload location [" << upload_location.spec()
287 << "] for [" << upload_file_info->title << "]"; 287 << "] for [" << upload_file_info->title << "]";
288 288
289 if (code != HTTP_SUCCESS) { 289 if (code != HTTP_SUCCESS) {
290 // TODO(achuith): Handle error codes from Google Docs server. 290 // TODO(achuith): Handle error codes from Google Docs server.
291 UploadFailed(scoped_ptr<UploadFileInfo>(upload_file_info), 291 UploadFailed(scoped_ptr<UploadFileInfo>(upload_file_info),
292 GDATA_FILE_ERROR_ABORT); 292 DRIVE_FILE_ERROR_ABORT);
293 return; 293 return;
294 } 294 }
295 295
296 upload_file_info->upload_location = upload_location; 296 upload_file_info->upload_location = upload_location;
297 297
298 // Start the upload from the beginning of the file. 298 // Start the upload from the beginning of the file.
299 UploadNextChunk(upload_file_info); 299 UploadNextChunk(upload_file_info);
300 } 300 }
301 301
302 void GDataUploader::UploadNextChunk(UploadFileInfo* upload_file_info) { 302 void GDataUploader::UploadNextChunk(UploadFileInfo* upload_file_info) {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 << upload_file_info->title; 418 << upload_file_info->title;
419 419
420 // Remove |upload_id| from the UploadFileInfoMap. The UploadFileInfo object 420 // Remove |upload_id| from the UploadFileInfoMap. The UploadFileInfo object
421 // will be deleted upon completion of completion_callback. 421 // will be deleted upon completion of completion_callback.
422 RemoveUpload(upload_id); 422 RemoveUpload(upload_id);
423 423
424 // Done uploading. 424 // Done uploading.
425 upload_file_info->entry = entry.Pass(); 425 upload_file_info->entry = entry.Pass();
426 if (!upload_file_info->completion_callback.is_null()) { 426 if (!upload_file_info->completion_callback.is_null()) {
427 upload_file_info->completion_callback.Run( 427 upload_file_info->completion_callback.Run(
428 GDATA_FILE_OK, 428 DRIVE_FILE_OK,
429 scoped_ptr<UploadFileInfo>(upload_file_info)); 429 scoped_ptr<UploadFileInfo>(upload_file_info));
430 } 430 }
431 return; 431 return;
432 } 432 }
433 433
434 // If code is 308 (RESUME_INCOMPLETE) and range_received is what has been 434 // If code is 308 (RESUME_INCOMPLETE) and range_received is what has been
435 // previously uploaded (i.e. = upload_file_info->end_range), proceed to 435 // previously uploaded (i.e. = upload_file_info->end_range), proceed to
436 // upload the next chunk. 436 // upload the next chunk.
437 if (response.code != HTTP_RESUME_INCOMPLETE || 437 if (response.code != HTTP_RESUME_INCOMPLETE ||
438 response.start_range_received != 0 || 438 response.start_range_received != 0 ||
439 response.end_range_received != upload_file_info->end_range) { 439 response.end_range_received != upload_file_info->end_range) {
440 // TODO(achuith): Handle error cases, e.g. 440 // TODO(achuith): Handle error cases, e.g.
441 // - when previously uploaded data wasn't received by Google Docs server, 441 // - when previously uploaded data wasn't received by Google Docs server,
442 // i.e. when end_range_received < upload_file_info->end_range 442 // i.e. when end_range_received < upload_file_info->end_range
443 LOG(ERROR) << "UploadNextChunk http code=" << response.code 443 LOG(ERROR) << "UploadNextChunk http code=" << response.code
444 << ", start_range_received=" << response.start_range_received 444 << ", start_range_received=" << response.start_range_received
445 << ", end_range_received=" << response.end_range_received 445 << ", end_range_received=" << response.end_range_received
446 << ", expected end range=" << upload_file_info->end_range; 446 << ", expected end range=" << upload_file_info->end_range;
447 UploadFailed( 447 UploadFailed(
448 scoped_ptr<UploadFileInfo>(upload_file_info), 448 scoped_ptr<UploadFileInfo>(upload_file_info),
449 response.code == HTTP_FORBIDDEN ? 449 response.code == HTTP_FORBIDDEN ?
450 GDATA_FILE_ERROR_NO_SPACE : 450 DRIVE_FILE_ERROR_NO_SPACE :
451 GDATA_FILE_ERROR_ABORT); 451 DRIVE_FILE_ERROR_ABORT);
452 return; 452 return;
453 } 453 }
454 454
455 DVLOG(1) << "Received range " << response.start_range_received 455 DVLOG(1) << "Received range " << response.start_range_received
456 << "-" << response.end_range_received 456 << "-" << response.end_range_received
457 << " for [" << upload_file_info->title << "]"; 457 << " for [" << upload_file_info->title << "]";
458 458
459 // Continue uploading. 459 // Continue uploading.
460 UploadNextChunk(upload_file_info); 460 UploadNextChunk(upload_file_info);
461 } 461 }
462 462
463 void GDataUploader::UploadFailed(scoped_ptr<UploadFileInfo> upload_file_info, 463 void GDataUploader::UploadFailed(scoped_ptr<UploadFileInfo> upload_file_info,
464 GDataFileError error) { 464 DriveFileError error) {
465 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 465 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
466 466
467 RemoveUpload(upload_file_info->upload_id); 467 RemoveUpload(upload_file_info->upload_id);
468 468
469 LOG(ERROR) << "Upload failed " << upload_file_info->DebugString(); 469 LOG(ERROR) << "Upload failed " << upload_file_info->DebugString();
470 // This is subtle but we should take the callback reference before 470 // This is subtle but we should take the callback reference before
471 // calling upload_file_info.Pass(). Otherwise, it'll crash. 471 // calling upload_file_info.Pass(). Otherwise, it'll crash.
472 const UploadFileInfo::UploadCompletionCallback& callback = 472 const UploadFileInfo::UploadCompletionCallback& callback =
473 upload_file_info->completion_callback; 473 upload_file_info->completion_callback;
474 if (!callback.is_null()) 474 if (!callback.is_null())
475 callback.Run(error, upload_file_info.Pass()); 475 callback.Run(error, upload_file_info.Pass());
476 } 476 }
477 477
478 void GDataUploader::RemoveUpload(int upload_id) { 478 void GDataUploader::RemoveUpload(int upload_id) {
479 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 479 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
480 pending_uploads_.erase(upload_id); 480 pending_uploads_.erase(upload_id);
481 } 481 }
482 482
483 } // namespace gdata 483 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_uploader.h ('k') | chrome/browser/chromeos/gdata/gdata_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698