| 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/browser/drive/drive_api_service.h" | 5 #include "chrome/browser/drive/drive_api_service.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 320 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 321 DCHECK(!callback.is_null()); | 321 DCHECK(!callback.is_null()); |
| 322 | 322 |
| 323 // The simplest way to fetch the all resources list looks files.list method, | 323 // The simplest way to fetch the all resources list looks files.list method, |
| 324 // but it seems impossible to know the returned list's changestamp. | 324 // but it seems impossible to know the returned list's changestamp. |
| 325 // Thus, instead, we use changes.list method with includeDeleted=false here. | 325 // Thus, instead, we use changes.list method with includeDeleted=false here. |
| 326 // The returned list should contain only resources currently existing. | 326 // The returned list should contain only resources currently existing. |
| 327 return sender_->StartRequestWithRetry( | 327 return sender_->StartRequestWithRetry( |
| 328 new GetChangelistRequest( | 328 new GetChangelistRequest( |
| 329 sender_.get(), | 329 sender_.get(), |
| 330 url_request_context_getter_, | |
| 331 url_generator_, | 330 url_generator_, |
| 332 false, // include deleted | 331 false, // include deleted |
| 333 0, | 332 0, |
| 334 kMaxNumFilesResourcePerRequest, | 333 kMaxNumFilesResourcePerRequest, |
| 335 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); | 334 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); |
| 336 } | 335 } |
| 337 | 336 |
| 338 CancelCallback DriveAPIService::GetResourceListInDirectory( | 337 CancelCallback DriveAPIService::GetResourceListInDirectory( |
| 339 const std::string& directory_resource_id, | 338 const std::string& directory_resource_id, |
| 340 const GetResourceListCallback& callback) { | 339 const GetResourceListCallback& callback) { |
| 341 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 340 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 342 DCHECK(!directory_resource_id.empty()); | 341 DCHECK(!directory_resource_id.empty()); |
| 343 DCHECK(!callback.is_null()); | 342 DCHECK(!callback.is_null()); |
| 344 | 343 |
| 345 // Because children.list method on Drive API v2 returns only the list of | 344 // Because children.list method on Drive API v2 returns only the list of |
| 346 // children's references, but we need all file resource list. | 345 // children's references, but we need all file resource list. |
| 347 // So, here we use files.list method instead, with setting parents query. | 346 // So, here we use files.list method instead, with setting parents query. |
| 348 // After the migration from GData WAPI to Drive API v2, we should clean the | 347 // After the migration from GData WAPI to Drive API v2, we should clean the |
| 349 // code up by moving the responsibility to include "parents" in the query | 348 // code up by moving the responsibility to include "parents" in the query |
| 350 // to client side. | 349 // to client side. |
| 351 // We aren't interested in files in trash in this context, neither. | 350 // We aren't interested in files in trash in this context, neither. |
| 352 return sender_->StartRequestWithRetry( | 351 return sender_->StartRequestWithRetry( |
| 353 new GetFilelistRequest( | 352 new GetFilelistRequest( |
| 354 sender_.get(), | 353 sender_.get(), |
| 355 url_request_context_getter_, | |
| 356 url_generator_, | 354 url_generator_, |
| 357 base::StringPrintf( | 355 base::StringPrintf( |
| 358 "'%s' in parents and trashed = false", | 356 "'%s' in parents and trashed = false", |
| 359 drive::util::EscapeQueryStringValue( | 357 drive::util::EscapeQueryStringValue( |
| 360 directory_resource_id).c_str()), | 358 directory_resource_id).c_str()), |
| 361 kMaxNumFilesResourcePerRequest, | 359 kMaxNumFilesResourcePerRequest, |
| 362 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); | 360 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); |
| 363 } | 361 } |
| 364 | 362 |
| 365 CancelCallback DriveAPIService::Search( | 363 CancelCallback DriveAPIService::Search( |
| 366 const std::string& search_query, | 364 const std::string& search_query, |
| 367 const GetResourceListCallback& callback) { | 365 const GetResourceListCallback& callback) { |
| 368 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 366 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 369 DCHECK(!search_query.empty()); | 367 DCHECK(!search_query.empty()); |
| 370 DCHECK(!callback.is_null()); | 368 DCHECK(!callback.is_null()); |
| 371 | 369 |
| 372 return sender_->StartRequestWithRetry( | 370 return sender_->StartRequestWithRetry( |
| 373 new GetFilelistRequest( | 371 new GetFilelistRequest( |
| 374 sender_.get(), | 372 sender_.get(), |
| 375 url_request_context_getter_, | |
| 376 url_generator_, | 373 url_generator_, |
| 377 drive::util::TranslateQuery(search_query), | 374 drive::util::TranslateQuery(search_query), |
| 378 kMaxNumFilesResourcePerRequestForSearch, | 375 kMaxNumFilesResourcePerRequestForSearch, |
| 379 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); | 376 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); |
| 380 } | 377 } |
| 381 | 378 |
| 382 CancelCallback DriveAPIService::SearchByTitle( | 379 CancelCallback DriveAPIService::SearchByTitle( |
| 383 const std::string& title, | 380 const std::string& title, |
| 384 const std::string& directory_resource_id, | 381 const std::string& directory_resource_id, |
| 385 const GetResourceListCallback& callback) { | 382 const GetResourceListCallback& callback) { |
| 386 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 383 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 387 DCHECK(!title.empty()); | 384 DCHECK(!title.empty()); |
| 388 DCHECK(!callback.is_null()); | 385 DCHECK(!callback.is_null()); |
| 389 | 386 |
| 390 std::string query; | 387 std::string query; |
| 391 base::StringAppendF(&query, "title = '%s'", | 388 base::StringAppendF(&query, "title = '%s'", |
| 392 drive::util::EscapeQueryStringValue(title).c_str()); | 389 drive::util::EscapeQueryStringValue(title).c_str()); |
| 393 if (!directory_resource_id.empty()) { | 390 if (!directory_resource_id.empty()) { |
| 394 base::StringAppendF( | 391 base::StringAppendF( |
| 395 &query, " and '%s' in parents", | 392 &query, " and '%s' in parents", |
| 396 drive::util::EscapeQueryStringValue(directory_resource_id).c_str()); | 393 drive::util::EscapeQueryStringValue(directory_resource_id).c_str()); |
| 397 } | 394 } |
| 398 query += " and trashed = false"; | 395 query += " and trashed = false"; |
| 399 | 396 |
| 400 return sender_->StartRequestWithRetry( | 397 return sender_->StartRequestWithRetry( |
| 401 new GetFilelistRequest( | 398 new GetFilelistRequest( |
| 402 sender_.get(), | 399 sender_.get(), |
| 403 url_request_context_getter_, | |
| 404 url_generator_, | 400 url_generator_, |
| 405 query, | 401 query, |
| 406 kMaxNumFilesResourcePerRequest, | 402 kMaxNumFilesResourcePerRequest, |
| 407 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); | 403 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); |
| 408 } | 404 } |
| 409 | 405 |
| 410 CancelCallback DriveAPIService::GetChangeList( | 406 CancelCallback DriveAPIService::GetChangeList( |
| 411 int64 start_changestamp, | 407 int64 start_changestamp, |
| 412 const GetResourceListCallback& callback) { | 408 const GetResourceListCallback& callback) { |
| 413 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 409 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 414 DCHECK(!callback.is_null()); | 410 DCHECK(!callback.is_null()); |
| 415 | 411 |
| 416 return sender_->StartRequestWithRetry( | 412 return sender_->StartRequestWithRetry( |
| 417 new GetChangelistRequest( | 413 new GetChangelistRequest( |
| 418 sender_.get(), | 414 sender_.get(), |
| 419 url_request_context_getter_, | |
| 420 url_generator_, | 415 url_generator_, |
| 421 true, // include deleted | 416 true, // include deleted |
| 422 start_changestamp, | 417 start_changestamp, |
| 423 kMaxNumFilesResourcePerRequest, | 418 kMaxNumFilesResourcePerRequest, |
| 424 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); | 419 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); |
| 425 } | 420 } |
| 426 | 421 |
| 427 CancelCallback DriveAPIService::ContinueGetResourceList( | 422 CancelCallback DriveAPIService::ContinueGetResourceList( |
| 428 const GURL& override_url, | 423 const GURL& override_url, |
| 429 const GetResourceListCallback& callback) { | 424 const GetResourceListCallback& callback) { |
| 430 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 425 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 431 DCHECK(!callback.is_null()); | 426 DCHECK(!callback.is_null()); |
| 432 | 427 |
| 433 return sender_->StartRequestWithRetry( | 428 return sender_->StartRequestWithRetry( |
| 434 new ContinueGetFileListRequest( | 429 new ContinueGetFileListRequest( |
| 435 sender_.get(), | 430 sender_.get(), |
| 436 url_request_context_getter_, | |
| 437 override_url, | 431 override_url, |
| 438 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); | 432 base::Bind(&ParseResourceListOnBlockingPoolAndRun, callback))); |
| 439 } | 433 } |
| 440 | 434 |
| 441 CancelCallback DriveAPIService::GetResourceEntry( | 435 CancelCallback DriveAPIService::GetResourceEntry( |
| 442 const std::string& resource_id, | 436 const std::string& resource_id, |
| 443 const GetResourceEntryCallback& callback) { | 437 const GetResourceEntryCallback& callback) { |
| 444 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 438 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 445 DCHECK(!callback.is_null()); | 439 DCHECK(!callback.is_null()); |
| 446 | 440 |
| 447 return sender_->StartRequestWithRetry(new GetFileRequest( | 441 return sender_->StartRequestWithRetry(new GetFileRequest( |
| 448 sender_.get(), | 442 sender_.get(), |
| 449 url_request_context_getter_, | |
| 450 url_generator_, | 443 url_generator_, |
| 451 resource_id, | 444 resource_id, |
| 452 base::Bind(&ParseResourceEntryAndRun, callback))); | 445 base::Bind(&ParseResourceEntryAndRun, callback))); |
| 453 } | 446 } |
| 454 | 447 |
| 455 CancelCallback DriveAPIService::GetAboutResource( | 448 CancelCallback DriveAPIService::GetAboutResource( |
| 456 const GetAboutResourceCallback& callback) { | 449 const GetAboutResourceCallback& callback) { |
| 457 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 450 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 458 DCHECK(!callback.is_null()); | 451 DCHECK(!callback.is_null()); |
| 459 | 452 |
| 460 return sender_->StartRequestWithRetry( | 453 return sender_->StartRequestWithRetry( |
| 461 new GetAboutRequest( | 454 new GetAboutRequest( |
| 462 sender_.get(), | 455 sender_.get(), |
| 463 url_request_context_getter_, | |
| 464 url_generator_, | 456 url_generator_, |
| 465 callback)); | 457 callback)); |
| 466 } | 458 } |
| 467 | 459 |
| 468 CancelCallback DriveAPIService::GetAppList(const GetAppListCallback& callback) { | 460 CancelCallback DriveAPIService::GetAppList(const GetAppListCallback& callback) { |
| 469 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 461 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 470 DCHECK(!callback.is_null()); | 462 DCHECK(!callback.is_null()); |
| 471 | 463 |
| 472 return sender_->StartRequestWithRetry(new GetApplistRequest( | 464 return sender_->StartRequestWithRetry(new GetApplistRequest( |
| 473 sender_.get(), | 465 sender_.get(), |
| 474 url_request_context_getter_, | |
| 475 url_generator_, | 466 url_generator_, |
| 476 base::Bind(&ParseAppListAndRun, callback))); | 467 base::Bind(&ParseAppListAndRun, callback))); |
| 477 } | 468 } |
| 478 | 469 |
| 479 CancelCallback DriveAPIService::DownloadFile( | 470 CancelCallback DriveAPIService::DownloadFile( |
| 480 const base::FilePath& local_cache_path, | 471 const base::FilePath& local_cache_path, |
| 481 const GURL& download_url, | 472 const GURL& download_url, |
| 482 const DownloadActionCallback& download_action_callback, | 473 const DownloadActionCallback& download_action_callback, |
| 483 const GetContentCallback& get_content_callback, | 474 const GetContentCallback& get_content_callback, |
| 484 const ProgressCallback& progress_callback) { | 475 const ProgressCallback& progress_callback) { |
| 485 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 476 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 486 DCHECK(!download_action_callback.is_null()); | 477 DCHECK(!download_action_callback.is_null()); |
| 487 // get_content_callback may be null. | 478 // get_content_callback may be null. |
| 488 | 479 |
| 489 return sender_->StartRequestWithRetry( | 480 return sender_->StartRequestWithRetry( |
| 490 new DownloadFileRequest(sender_.get(), | 481 new DownloadFileRequest(sender_.get(), |
| 491 url_request_context_getter_, | |
| 492 download_action_callback, | 482 download_action_callback, |
| 493 get_content_callback, | 483 get_content_callback, |
| 494 progress_callback, | 484 progress_callback, |
| 495 download_url, | 485 download_url, |
| 496 local_cache_path)); | 486 local_cache_path)); |
| 497 } | 487 } |
| 498 | 488 |
| 499 CancelCallback DriveAPIService::DeleteResource( | 489 CancelCallback DriveAPIService::DeleteResource( |
| 500 const std::string& resource_id, | 490 const std::string& resource_id, |
| 501 const std::string& etag, | 491 const std::string& etag, |
| 502 const EntryActionCallback& callback) { | 492 const EntryActionCallback& callback) { |
| 503 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 493 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 504 DCHECK(!callback.is_null()); | 494 DCHECK(!callback.is_null()); |
| 505 | 495 |
| 506 return sender_->StartRequestWithRetry(new TrashResourceRequest( | 496 return sender_->StartRequestWithRetry(new TrashResourceRequest( |
| 507 sender_.get(), | 497 sender_.get(), |
| 508 url_request_context_getter_, | |
| 509 url_generator_, | 498 url_generator_, |
| 510 resource_id, | 499 resource_id, |
| 511 callback)); | 500 callback)); |
| 512 } | 501 } |
| 513 | 502 |
| 514 CancelCallback DriveAPIService::AddNewDirectory( | 503 CancelCallback DriveAPIService::AddNewDirectory( |
| 515 const std::string& parent_resource_id, | 504 const std::string& parent_resource_id, |
| 516 const std::string& directory_name, | 505 const std::string& directory_name, |
| 517 const GetResourceEntryCallback& callback) { | 506 const GetResourceEntryCallback& callback) { |
| 518 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 507 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 519 DCHECK(!callback.is_null()); | 508 DCHECK(!callback.is_null()); |
| 520 | 509 |
| 521 return sender_->StartRequestWithRetry( | 510 return sender_->StartRequestWithRetry( |
| 522 new CreateDirectoryRequest( | 511 new CreateDirectoryRequest( |
| 523 sender_.get(), | 512 sender_.get(), |
| 524 url_request_context_getter_, | |
| 525 url_generator_, | 513 url_generator_, |
| 526 parent_resource_id, | 514 parent_resource_id, |
| 527 directory_name, | 515 directory_name, |
| 528 base::Bind(&ParseResourceEntryAndRun, callback))); | 516 base::Bind(&ParseResourceEntryAndRun, callback))); |
| 529 } | 517 } |
| 530 | 518 |
| 531 CancelCallback DriveAPIService::CopyResource( | 519 CancelCallback DriveAPIService::CopyResource( |
| 532 const std::string& resource_id, | 520 const std::string& resource_id, |
| 533 const std::string& parent_resource_id, | 521 const std::string& parent_resource_id, |
| 534 const std::string& new_name, | 522 const std::string& new_name, |
| 535 const GetResourceEntryCallback& callback) { | 523 const GetResourceEntryCallback& callback) { |
| 536 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 524 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 537 DCHECK(!callback.is_null()); | 525 DCHECK(!callback.is_null()); |
| 538 | 526 |
| 539 return sender_->StartRequestWithRetry( | 527 return sender_->StartRequestWithRetry( |
| 540 new CopyResourceRequest( | 528 new CopyResourceRequest( |
| 541 sender_.get(), | 529 sender_.get(), |
| 542 url_request_context_getter_, | |
| 543 url_generator_, | 530 url_generator_, |
| 544 resource_id, | 531 resource_id, |
| 545 parent_resource_id, | 532 parent_resource_id, |
| 546 new_name, | 533 new_name, |
| 547 base::Bind(&ParseResourceEntryAndRun, callback))); | 534 base::Bind(&ParseResourceEntryAndRun, callback))); |
| 548 } | 535 } |
| 549 | 536 |
| 550 CancelCallback DriveAPIService::CopyHostedDocument( | 537 CancelCallback DriveAPIService::CopyHostedDocument( |
| 551 const std::string& resource_id, | 538 const std::string& resource_id, |
| 552 const std::string& new_name, | 539 const std::string& new_name, |
| 553 const GetResourceEntryCallback& callback) { | 540 const GetResourceEntryCallback& callback) { |
| 554 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 541 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 555 DCHECK(!callback.is_null()); | 542 DCHECK(!callback.is_null()); |
| 556 | 543 |
| 557 return sender_->StartRequestWithRetry( | 544 return sender_->StartRequestWithRetry( |
| 558 new CopyResourceRequest( | 545 new CopyResourceRequest( |
| 559 sender_.get(), | 546 sender_.get(), |
| 560 url_request_context_getter_, | |
| 561 url_generator_, | 547 url_generator_, |
| 562 resource_id, | 548 resource_id, |
| 563 std::string(), // parent_resource_id. | 549 std::string(), // parent_resource_id. |
| 564 new_name, | 550 new_name, |
| 565 base::Bind(&ParseResourceEntryAndRun, callback))); | 551 base::Bind(&ParseResourceEntryAndRun, callback))); |
| 566 } | 552 } |
| 567 | 553 |
| 568 CancelCallback DriveAPIService::RenameResource( | 554 CancelCallback DriveAPIService::RenameResource( |
| 569 const std::string& resource_id, | 555 const std::string& resource_id, |
| 570 const std::string& new_name, | 556 const std::string& new_name, |
| 571 const EntryActionCallback& callback) { | 557 const EntryActionCallback& callback) { |
| 572 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 558 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 573 DCHECK(!callback.is_null()); | 559 DCHECK(!callback.is_null()); |
| 574 | 560 |
| 575 return sender_->StartRequestWithRetry( | 561 return sender_->StartRequestWithRetry( |
| 576 new RenameResourceRequest( | 562 new RenameResourceRequest( |
| 577 sender_.get(), | 563 sender_.get(), |
| 578 url_request_context_getter_, | |
| 579 url_generator_, | 564 url_generator_, |
| 580 resource_id, | 565 resource_id, |
| 581 new_name, | 566 new_name, |
| 582 callback)); | 567 callback)); |
| 583 } | 568 } |
| 584 | 569 |
| 585 CancelCallback DriveAPIService::TouchResource( | 570 CancelCallback DriveAPIService::TouchResource( |
| 586 const std::string& resource_id, | 571 const std::string& resource_id, |
| 587 const base::Time& modified_date, | 572 const base::Time& modified_date, |
| 588 const base::Time& last_viewed_by_me_date, | 573 const base::Time& last_viewed_by_me_date, |
| 589 const GetResourceEntryCallback& callback) { | 574 const GetResourceEntryCallback& callback) { |
| 590 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 575 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 591 DCHECK(!modified_date.is_null()); | 576 DCHECK(!modified_date.is_null()); |
| 592 DCHECK(!last_viewed_by_me_date.is_null()); | 577 DCHECK(!last_viewed_by_me_date.is_null()); |
| 593 DCHECK(!callback.is_null()); | 578 DCHECK(!callback.is_null()); |
| 594 | 579 |
| 595 return sender_->StartRequestWithRetry( | 580 return sender_->StartRequestWithRetry( |
| 596 new TouchResourceRequest( | 581 new TouchResourceRequest( |
| 597 sender_.get(), | 582 sender_.get(), |
| 598 url_request_context_getter_, | |
| 599 url_generator_, | 583 url_generator_, |
| 600 resource_id, | 584 resource_id, |
| 601 modified_date, | 585 modified_date, |
| 602 last_viewed_by_me_date, | 586 last_viewed_by_me_date, |
| 603 base::Bind(&ParseResourceEntryAndRun, callback))); | 587 base::Bind(&ParseResourceEntryAndRun, callback))); |
| 604 } | 588 } |
| 605 | 589 |
| 606 CancelCallback DriveAPIService::AddResourceToDirectory( | 590 CancelCallback DriveAPIService::AddResourceToDirectory( |
| 607 const std::string& parent_resource_id, | 591 const std::string& parent_resource_id, |
| 608 const std::string& resource_id, | 592 const std::string& resource_id, |
| 609 const EntryActionCallback& callback) { | 593 const EntryActionCallback& callback) { |
| 610 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 594 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 611 DCHECK(!callback.is_null()); | 595 DCHECK(!callback.is_null()); |
| 612 | 596 |
| 613 return sender_->StartRequestWithRetry( | 597 return sender_->StartRequestWithRetry( |
| 614 new InsertResourceRequest( | 598 new InsertResourceRequest( |
| 615 sender_.get(), | 599 sender_.get(), |
| 616 url_request_context_getter_, | |
| 617 url_generator_, | 600 url_generator_, |
| 618 parent_resource_id, | 601 parent_resource_id, |
| 619 resource_id, | 602 resource_id, |
| 620 callback)); | 603 callback)); |
| 621 } | 604 } |
| 622 | 605 |
| 623 CancelCallback DriveAPIService::RemoveResourceFromDirectory( | 606 CancelCallback DriveAPIService::RemoveResourceFromDirectory( |
| 624 const std::string& parent_resource_id, | 607 const std::string& parent_resource_id, |
| 625 const std::string& resource_id, | 608 const std::string& resource_id, |
| 626 const EntryActionCallback& callback) { | 609 const EntryActionCallback& callback) { |
| 627 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 610 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 628 DCHECK(!callback.is_null()); | 611 DCHECK(!callback.is_null()); |
| 629 | 612 |
| 630 return sender_->StartRequestWithRetry( | 613 return sender_->StartRequestWithRetry( |
| 631 new DeleteResourceRequest( | 614 new DeleteResourceRequest( |
| 632 sender_.get(), | 615 sender_.get(), |
| 633 url_request_context_getter_, | |
| 634 url_generator_, | 616 url_generator_, |
| 635 parent_resource_id, | 617 parent_resource_id, |
| 636 resource_id, | 618 resource_id, |
| 637 callback)); | 619 callback)); |
| 638 } | 620 } |
| 639 | 621 |
| 640 CancelCallback DriveAPIService::InitiateUploadNewFile( | 622 CancelCallback DriveAPIService::InitiateUploadNewFile( |
| 641 const std::string& content_type, | 623 const std::string& content_type, |
| 642 int64 content_length, | 624 int64 content_length, |
| 643 const std::string& parent_resource_id, | 625 const std::string& parent_resource_id, |
| 644 const std::string& title, | 626 const std::string& title, |
| 645 const InitiateUploadCallback& callback) { | 627 const InitiateUploadCallback& callback) { |
| 646 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 628 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 647 DCHECK(!callback.is_null()); | 629 DCHECK(!callback.is_null()); |
| 648 | 630 |
| 649 return sender_->StartRequestWithRetry( | 631 return sender_->StartRequestWithRetry( |
| 650 new InitiateUploadNewFileRequest( | 632 new InitiateUploadNewFileRequest( |
| 651 sender_.get(), | 633 sender_.get(), |
| 652 url_request_context_getter_, | |
| 653 url_generator_, | 634 url_generator_, |
| 654 content_type, | 635 content_type, |
| 655 content_length, | 636 content_length, |
| 656 parent_resource_id, | 637 parent_resource_id, |
| 657 title, | 638 title, |
| 658 callback)); | 639 callback)); |
| 659 } | 640 } |
| 660 | 641 |
| 661 CancelCallback DriveAPIService::InitiateUploadExistingFile( | 642 CancelCallback DriveAPIService::InitiateUploadExistingFile( |
| 662 const std::string& content_type, | 643 const std::string& content_type, |
| 663 int64 content_length, | 644 int64 content_length, |
| 664 const std::string& resource_id, | 645 const std::string& resource_id, |
| 665 const std::string& etag, | 646 const std::string& etag, |
| 666 const InitiateUploadCallback& callback) { | 647 const InitiateUploadCallback& callback) { |
| 667 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 648 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 668 DCHECK(!callback.is_null()); | 649 DCHECK(!callback.is_null()); |
| 669 | 650 |
| 670 return sender_->StartRequestWithRetry( | 651 return sender_->StartRequestWithRetry( |
| 671 new InitiateUploadExistingFileRequest( | 652 new InitiateUploadExistingFileRequest( |
| 672 sender_.get(), | 653 sender_.get(), |
| 673 url_request_context_getter_, | |
| 674 url_generator_, | 654 url_generator_, |
| 675 content_type, | 655 content_type, |
| 676 content_length, | 656 content_length, |
| 677 resource_id, | 657 resource_id, |
| 678 etag, | 658 etag, |
| 679 callback)); | 659 callback)); |
| 680 } | 660 } |
| 681 | 661 |
| 682 CancelCallback DriveAPIService::ResumeUpload( | 662 CancelCallback DriveAPIService::ResumeUpload( |
| 683 const GURL& upload_url, | 663 const GURL& upload_url, |
| 684 int64 start_position, | 664 int64 start_position, |
| 685 int64 end_position, | 665 int64 end_position, |
| 686 int64 content_length, | 666 int64 content_length, |
| 687 const std::string& content_type, | 667 const std::string& content_type, |
| 688 const base::FilePath& local_file_path, | 668 const base::FilePath& local_file_path, |
| 689 const UploadRangeCallback& callback, | 669 const UploadRangeCallback& callback, |
| 690 const ProgressCallback& progress_callback) { | 670 const ProgressCallback& progress_callback) { |
| 691 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 671 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 692 DCHECK(!callback.is_null()); | 672 DCHECK(!callback.is_null()); |
| 693 | 673 |
| 694 return sender_->StartRequestWithRetry( | 674 return sender_->StartRequestWithRetry( |
| 695 new ResumeUploadRequest( | 675 new ResumeUploadRequest( |
| 696 sender_.get(), | 676 sender_.get(), |
| 697 url_request_context_getter_, | |
| 698 upload_url, | 677 upload_url, |
| 699 start_position, | 678 start_position, |
| 700 end_position, | 679 end_position, |
| 701 content_length, | 680 content_length, |
| 702 content_type, | 681 content_type, |
| 703 local_file_path, | 682 local_file_path, |
| 704 base::Bind(&ParseResourceEntryForUploadRangeAndRun, callback), | 683 base::Bind(&ParseResourceEntryForUploadRangeAndRun, callback), |
| 705 progress_callback)); | 684 progress_callback)); |
| 706 } | 685 } |
| 707 | 686 |
| 708 CancelCallback DriveAPIService::GetUploadStatus( | 687 CancelCallback DriveAPIService::GetUploadStatus( |
| 709 const GURL& upload_url, | 688 const GURL& upload_url, |
| 710 int64 content_length, | 689 int64 content_length, |
| 711 const UploadRangeCallback& callback) { | 690 const UploadRangeCallback& callback) { |
| 712 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 691 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 713 DCHECK(!callback.is_null()); | 692 DCHECK(!callback.is_null()); |
| 714 | 693 |
| 715 return sender_->StartRequestWithRetry(new GetUploadStatusRequest( | 694 return sender_->StartRequestWithRetry(new GetUploadStatusRequest( |
| 716 sender_.get(), | 695 sender_.get(), |
| 717 url_request_context_getter_, | |
| 718 upload_url, | 696 upload_url, |
| 719 content_length, | 697 content_length, |
| 720 base::Bind(&ParseResourceEntryForUploadRangeAndRun, callback))); | 698 base::Bind(&ParseResourceEntryForUploadRangeAndRun, callback))); |
| 721 } | 699 } |
| 722 | 700 |
| 723 CancelCallback DriveAPIService::AuthorizeApp( | 701 CancelCallback DriveAPIService::AuthorizeApp( |
| 724 const std::string& resource_id, | 702 const std::string& resource_id, |
| 725 const std::string& app_id, | 703 const std::string& app_id, |
| 726 const AuthorizeAppCallback& callback) { | 704 const AuthorizeAppCallback& callback) { |
| 727 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 705 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 728 DCHECK(!callback.is_null()); | 706 DCHECK(!callback.is_null()); |
| 729 | 707 |
| 730 return sender_->StartRequestWithRetry(new GetFileRequest( | 708 return sender_->StartRequestWithRetry(new GetFileRequest( |
| 731 sender_.get(), | 709 sender_.get(), |
| 732 url_request_context_getter_, | |
| 733 url_generator_, | 710 url_generator_, |
| 734 resource_id, | 711 resource_id, |
| 735 base::Bind(&ExtractOpenUrlAndRun, app_id, callback))); | 712 base::Bind(&ExtractOpenUrlAndRun, app_id, callback))); |
| 736 } | 713 } |
| 737 | 714 |
| 738 bool DriveAPIService::HasAccessToken() const { | 715 bool DriveAPIService::HasAccessToken() const { |
| 739 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 716 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 740 | 717 |
| 741 return sender_->auth_service()->HasAccessToken(); | 718 return sender_->auth_service()->HasAccessToken(); |
| 742 } | 719 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 762 if (CanSendRequest()) { | 739 if (CanSendRequest()) { |
| 763 FOR_EACH_OBSERVER( | 740 FOR_EACH_OBSERVER( |
| 764 DriveServiceObserver, observers_, OnReadyToSendRequests()); | 741 DriveServiceObserver, observers_, OnReadyToSendRequests()); |
| 765 } else if (!HasRefreshToken()) { | 742 } else if (!HasRefreshToken()) { |
| 766 FOR_EACH_OBSERVER( | 743 FOR_EACH_OBSERVER( |
| 767 DriveServiceObserver, observers_, OnRefreshTokenInvalid()); | 744 DriveServiceObserver, observers_, OnRefreshTokenInvalid()); |
| 768 } | 745 } |
| 769 } | 746 } |
| 770 | 747 |
| 771 } // namespace drive | 748 } // namespace drive |
| OLD | NEW |