| 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" |
| 11 #include "base/strings/stringprintf.h" | 11 #include "base/strings/stringprintf.h" |
| 12 #include "chrome/browser/drive/drive_api_util.h" | 12 #include "chrome/browser/drive/drive_api_util.h" |
| 13 #include "google_apis/drive/auth_service.h" | 13 #include "google_apis/drive/auth_service.h" |
| 14 #include "google_apis/drive/base_requests.h" | 14 #include "google_apis/drive/base_requests.h" |
| 15 #include "google_apis/drive/drive_api_parser.h" | 15 #include "google_apis/drive/drive_api_parser.h" |
| 16 #include "google_apis/drive/drive_api_requests.h" | 16 #include "google_apis/drive/drive_api_requests.h" |
| 17 #include "google_apis/drive/files_list_request_runner.h" |
| 17 #include "google_apis/drive/request_sender.h" | 18 #include "google_apis/drive/request_sender.h" |
| 18 #include "google_apis/google_api_keys.h" | 19 #include "google_apis/google_api_keys.h" |
| 19 #include "net/url_request/url_request_context_getter.h" | 20 #include "net/url_request/url_request_context_getter.h" |
| 20 | 21 |
| 21 using google_apis::AboutResourceCallback; | 22 using google_apis::AboutResourceCallback; |
| 22 using google_apis::AppList; | 23 using google_apis::AppList; |
| 23 using google_apis::AppListCallback; | 24 using google_apis::AppListCallback; |
| 24 using google_apis::AuthStatusCallback; | 25 using google_apis::AuthStatusCallback; |
| 25 using google_apis::AuthorizeAppCallback; | 26 using google_apis::AuthorizeAppCallback; |
| 26 using google_apis::CancelCallback; | 27 using google_apis::CancelCallback; |
| 27 using google_apis::ChangeList; | 28 using google_apis::ChangeList; |
| 28 using google_apis::ChangeListCallback; | 29 using google_apis::ChangeListCallback; |
| 29 using google_apis::DownloadActionCallback; | 30 using google_apis::DownloadActionCallback; |
| 30 using google_apis::EntryActionCallback; | 31 using google_apis::EntryActionCallback; |
| 31 using google_apis::FileList; | 32 using google_apis::FileList; |
| 32 using google_apis::FileListCallback; | 33 using google_apis::FileListCallback; |
| 33 using google_apis::FileResource; | 34 using google_apis::FileResource; |
| 34 using google_apis::FileResourceCallback; | 35 using google_apis::FileResourceCallback; |
| 35 using google_apis::DRIVE_OTHER_ERROR; | 36 using google_apis::DRIVE_OTHER_ERROR; |
| 36 using google_apis::DRIVE_PARSE_ERROR; | 37 using google_apis::DRIVE_PARSE_ERROR; |
| 37 using google_apis::DriveApiErrorCode; | 38 using google_apis::DriveApiErrorCode; |
| 38 using google_apis::GetContentCallback; | 39 using google_apis::GetContentCallback; |
| 39 using google_apis::GetShareUrlCallback; | 40 using google_apis::GetShareUrlCallback; |
| 40 using google_apis::HTTP_NOT_IMPLEMENTED; | 41 using google_apis::HTTP_NOT_IMPLEMENTED; |
| 41 using google_apis::HTTP_SUCCESS; | 42 using google_apis::HTTP_SUCCESS; |
| 42 using google_apis::InitiateUploadCallback; | 43 using google_apis::InitiateUploadCallback; |
| 43 using google_apis::ProgressCallback; | 44 using google_apis::ProgressCallback; |
| 44 using google_apis::RequestSender; | 45 using google_apis::RequestSender; |
| 46 using google_apis::FilesListRequestRunner; |
| 45 using google_apis::UploadRangeResponse; | 47 using google_apis::UploadRangeResponse; |
| 46 using google_apis::drive::AboutGetRequest; | 48 using google_apis::drive::AboutGetRequest; |
| 47 using google_apis::drive::AppsListRequest; | 49 using google_apis::drive::AppsListRequest; |
| 48 using google_apis::drive::ChangesListRequest; | 50 using google_apis::drive::ChangesListRequest; |
| 49 using google_apis::drive::ChangesListNextPageRequest; | 51 using google_apis::drive::ChangesListNextPageRequest; |
| 50 using google_apis::drive::ChildrenDeleteRequest; | 52 using google_apis::drive::ChildrenDeleteRequest; |
| 51 using google_apis::drive::ChildrenInsertRequest; | 53 using google_apis::drive::ChildrenInsertRequest; |
| 52 using google_apis::drive::DownloadFileRequest; | 54 using google_apis::drive::DownloadFileRequest; |
| 53 using google_apis::drive::FilesCopyRequest; | 55 using google_apis::drive::FilesCopyRequest; |
| 54 using google_apis::drive::FilesGetRequest; | 56 using google_apis::drive::FilesGetRequest; |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 | 277 |
| 276 sender_.reset(new RequestSender( | 278 sender_.reset(new RequestSender( |
| 277 new google_apis::AuthService(oauth2_token_service_, | 279 new google_apis::AuthService(oauth2_token_service_, |
| 278 account_id, | 280 account_id, |
| 279 url_request_context_getter_.get(), | 281 url_request_context_getter_.get(), |
| 280 scopes), | 282 scopes), |
| 281 url_request_context_getter_.get(), | 283 url_request_context_getter_.get(), |
| 282 blocking_task_runner_.get(), | 284 blocking_task_runner_.get(), |
| 283 custom_user_agent_)); | 285 custom_user_agent_)); |
| 284 sender_->auth_service()->AddObserver(this); | 286 sender_->auth_service()->AddObserver(this); |
| 287 |
| 288 files_list_request_runner_.reset( |
| 289 new FilesListRequestRunner(sender_.get(), url_generator_)); |
| 285 } | 290 } |
| 286 | 291 |
| 287 void DriveAPIService::AddObserver(DriveServiceObserver* observer) { | 292 void DriveAPIService::AddObserver(DriveServiceObserver* observer) { |
| 288 observers_.AddObserver(observer); | 293 observers_.AddObserver(observer); |
| 289 } | 294 } |
| 290 | 295 |
| 291 void DriveAPIService::RemoveObserver(DriveServiceObserver* observer) { | 296 void DriveAPIService::RemoveObserver(DriveServiceObserver* observer) { |
| 292 observers_.RemoveObserver(observer); | 297 observers_.RemoveObserver(observer); |
| 293 } | 298 } |
| 294 | 299 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 305 CancelCallback DriveAPIService::GetAllFileList( | 310 CancelCallback DriveAPIService::GetAllFileList( |
| 306 const FileListCallback& callback) { | 311 const FileListCallback& callback) { |
| 307 DCHECK(thread_checker_.CalledOnValidThread()); | 312 DCHECK(thread_checker_.CalledOnValidThread()); |
| 308 DCHECK(!callback.is_null()); | 313 DCHECK(!callback.is_null()); |
| 309 | 314 |
| 310 FilesListRequest* request = new FilesListRequest( | 315 FilesListRequest* request = new FilesListRequest( |
| 311 sender_.get(), url_generator_, callback); | 316 sender_.get(), url_generator_, callback); |
| 312 request->set_max_results(kMaxNumFilesResourcePerRequest); | 317 request->set_max_results(kMaxNumFilesResourcePerRequest); |
| 313 request->set_q("trashed = false"); // Exclude trashed files. | 318 request->set_q("trashed = false"); // Exclude trashed files. |
| 314 request->set_fields(kFileListFields); | 319 request->set_fields(kFileListFields); |
| 315 return sender_->StartRequestWithRetry(request); | 320 return sender_->StartRequestWithAuthRetry(request); |
| 316 } | 321 } |
| 317 | 322 |
| 318 CancelCallback DriveAPIService::GetFileListInDirectory( | 323 CancelCallback DriveAPIService::GetFileListInDirectory( |
| 319 const std::string& directory_resource_id, | 324 const std::string& directory_resource_id, |
| 320 const FileListCallback& callback) { | 325 const FileListCallback& callback) { |
| 321 DCHECK(thread_checker_.CalledOnValidThread()); | 326 DCHECK(thread_checker_.CalledOnValidThread()); |
| 322 DCHECK(!directory_resource_id.empty()); | 327 DCHECK(!directory_resource_id.empty()); |
| 323 DCHECK(!callback.is_null()); | 328 DCHECK(!callback.is_null()); |
| 324 | 329 |
| 325 // Because children.list method on Drive API v2 returns only the list of | 330 // Because children.list method on Drive API v2 returns only the list of |
| 326 // children's references, but we need all file resource list. | 331 // children's references, but we need all file resource list. |
| 327 // So, here we use files.list method instead, with setting parents query. | 332 // So, here we use files.list method instead, with setting parents query. |
| 328 // After the migration from GData WAPI to Drive API v2, we should clean the | 333 // After the migration from GData WAPI to Drive API v2, we should clean the |
| 329 // code up by moving the responsibility to include "parents" in the query | 334 // code up by moving the responsibility to include "parents" in the query |
| 330 // to client side. | 335 // to client side. |
| 331 // We aren't interested in files in trash in this context, neither. | 336 // We aren't interested in files in trash in this context, neither. |
| 332 FilesListRequest* request = new FilesListRequest( | 337 return files_list_request_runner_->CreateAndStartWithSizeBackoff( |
| 333 sender_.get(), url_generator_, callback); | 338 kMaxNumFilesResourcePerRequest, |
| 334 request->set_max_results(kMaxNumFilesResourcePerRequest); | 339 base::StringPrintf( |
| 335 request->set_q(base::StringPrintf( | 340 "'%s' in parents and trashed = false", |
| 336 "'%s' in parents and trashed = false", | 341 util::EscapeQueryStringValue(directory_resource_id).c_str()), |
| 337 util::EscapeQueryStringValue(directory_resource_id).c_str())); | 342 kFileListFields, callback); |
| 338 request->set_fields(kFileListFields); | |
| 339 return sender_->StartRequestWithRetry(request); | |
| 340 } | 343 } |
| 341 | 344 |
| 342 CancelCallback DriveAPIService::Search( | 345 CancelCallback DriveAPIService::Search( |
| 343 const std::string& search_query, | 346 const std::string& search_query, |
| 344 const FileListCallback& callback) { | 347 const FileListCallback& callback) { |
| 345 DCHECK(thread_checker_.CalledOnValidThread()); | 348 DCHECK(thread_checker_.CalledOnValidThread()); |
| 346 DCHECK(!search_query.empty()); | 349 DCHECK(!search_query.empty()); |
| 347 DCHECK(!callback.is_null()); | 350 DCHECK(!callback.is_null()); |
| 348 | 351 |
| 349 FilesListRequest* request = new FilesListRequest( | 352 return files_list_request_runner_->CreateAndStartWithSizeBackoff( |
| 350 sender_.get(), url_generator_, callback); | 353 kMaxNumFilesResourcePerRequestForSearch, |
| 351 request->set_max_results(kMaxNumFilesResourcePerRequestForSearch); | 354 util::TranslateQuery(search_query), kFileListFields, callback); |
| 352 request->set_q(util::TranslateQuery(search_query)); | |
| 353 request->set_fields(kFileListFields); | |
| 354 return sender_->StartRequestWithRetry(request); | |
| 355 } | 355 } |
| 356 | 356 |
| 357 CancelCallback DriveAPIService::SearchByTitle( | 357 CancelCallback DriveAPIService::SearchByTitle( |
| 358 const std::string& title, | 358 const std::string& title, |
| 359 const std::string& directory_resource_id, | 359 const std::string& directory_resource_id, |
| 360 const FileListCallback& callback) { | 360 const FileListCallback& callback) { |
| 361 DCHECK(thread_checker_.CalledOnValidThread()); | 361 DCHECK(thread_checker_.CalledOnValidThread()); |
| 362 DCHECK(!title.empty()); | 362 DCHECK(!title.empty()); |
| 363 DCHECK(!callback.is_null()); | 363 DCHECK(!callback.is_null()); |
| 364 | 364 |
| 365 std::string query; | 365 std::string query; |
| 366 base::StringAppendF(&query, "title = '%s'", | 366 base::StringAppendF(&query, "title = '%s'", |
| 367 util::EscapeQueryStringValue(title).c_str()); | 367 util::EscapeQueryStringValue(title).c_str()); |
| 368 if (!directory_resource_id.empty()) { | 368 if (!directory_resource_id.empty()) { |
| 369 base::StringAppendF( | 369 base::StringAppendF( |
| 370 &query, " and '%s' in parents", | 370 &query, " and '%s' in parents", |
| 371 util::EscapeQueryStringValue(directory_resource_id).c_str()); | 371 util::EscapeQueryStringValue(directory_resource_id).c_str()); |
| 372 } | 372 } |
| 373 query += " and trashed = false"; | 373 query += " and trashed = false"; |
| 374 | 374 |
| 375 FilesListRequest* request = new FilesListRequest( | 375 FilesListRequest* request = new FilesListRequest( |
| 376 sender_.get(), url_generator_, callback); | 376 sender_.get(), url_generator_, callback); |
| 377 request->set_max_results(kMaxNumFilesResourcePerRequest); | 377 request->set_max_results(kMaxNumFilesResourcePerRequest); |
| 378 request->set_q(query); | 378 request->set_q(query); |
| 379 request->set_fields(kFileListFields); | 379 request->set_fields(kFileListFields); |
| 380 return sender_->StartRequestWithRetry(request); | 380 return sender_->StartRequestWithAuthRetry(request); |
| 381 } | 381 } |
| 382 | 382 |
| 383 CancelCallback DriveAPIService::GetChangeList( | 383 CancelCallback DriveAPIService::GetChangeList( |
| 384 int64 start_changestamp, | 384 int64 start_changestamp, |
| 385 const ChangeListCallback& callback) { | 385 const ChangeListCallback& callback) { |
| 386 DCHECK(thread_checker_.CalledOnValidThread()); | 386 DCHECK(thread_checker_.CalledOnValidThread()); |
| 387 DCHECK(!callback.is_null()); | 387 DCHECK(!callback.is_null()); |
| 388 | 388 |
| 389 ChangesListRequest* request = new ChangesListRequest( | 389 ChangesListRequest* request = new ChangesListRequest( |
| 390 sender_.get(), url_generator_, callback); | 390 sender_.get(), url_generator_, callback); |
| 391 request->set_max_results(kMaxNumFilesResourcePerRequest); | 391 request->set_max_results(kMaxNumFilesResourcePerRequest); |
| 392 request->set_start_change_id(start_changestamp); | 392 request->set_start_change_id(start_changestamp); |
| 393 request->set_fields(kChangeListFields); | 393 request->set_fields(kChangeListFields); |
| 394 return sender_->StartRequestWithRetry(request); | 394 return sender_->StartRequestWithAuthRetry(request); |
| 395 } | 395 } |
| 396 | 396 |
| 397 CancelCallback DriveAPIService::GetRemainingChangeList( | 397 CancelCallback DriveAPIService::GetRemainingChangeList( |
| 398 const GURL& next_link, | 398 const GURL& next_link, |
| 399 const ChangeListCallback& callback) { | 399 const ChangeListCallback& callback) { |
| 400 DCHECK(thread_checker_.CalledOnValidThread()); | 400 DCHECK(thread_checker_.CalledOnValidThread()); |
| 401 DCHECK(!next_link.is_empty()); | 401 DCHECK(!next_link.is_empty()); |
| 402 DCHECK(!callback.is_null()); | 402 DCHECK(!callback.is_null()); |
| 403 | 403 |
| 404 ChangesListNextPageRequest* request = new ChangesListNextPageRequest( | 404 ChangesListNextPageRequest* request = new ChangesListNextPageRequest( |
| 405 sender_.get(), callback); | 405 sender_.get(), callback); |
| 406 request->set_next_link(next_link); | 406 request->set_next_link(next_link); |
| 407 request->set_fields(kChangeListFields); | 407 request->set_fields(kChangeListFields); |
| 408 return sender_->StartRequestWithRetry(request); | 408 return sender_->StartRequestWithAuthRetry(request); |
| 409 } | 409 } |
| 410 | 410 |
| 411 CancelCallback DriveAPIService::GetRemainingFileList( | 411 CancelCallback DriveAPIService::GetRemainingFileList( |
| 412 const GURL& next_link, | 412 const GURL& next_link, |
| 413 const FileListCallback& callback) { | 413 const FileListCallback& callback) { |
| 414 DCHECK(thread_checker_.CalledOnValidThread()); | 414 DCHECK(thread_checker_.CalledOnValidThread()); |
| 415 DCHECK(!next_link.is_empty()); | 415 DCHECK(!next_link.is_empty()); |
| 416 DCHECK(!callback.is_null()); | 416 DCHECK(!callback.is_null()); |
| 417 | 417 |
| 418 FilesListNextPageRequest* request = new FilesListNextPageRequest( | 418 FilesListNextPageRequest* request = new FilesListNextPageRequest( |
| 419 sender_.get(), callback); | 419 sender_.get(), callback); |
| 420 request->set_next_link(next_link); | 420 request->set_next_link(next_link); |
| 421 request->set_fields(kFileListFields); | 421 request->set_fields(kFileListFields); |
| 422 return sender_->StartRequestWithRetry(request); | 422 return sender_->StartRequestWithAuthRetry(request); |
| 423 } | 423 } |
| 424 | 424 |
| 425 CancelCallback DriveAPIService::GetFileResource( | 425 CancelCallback DriveAPIService::GetFileResource( |
| 426 const std::string& resource_id, | 426 const std::string& resource_id, |
| 427 const FileResourceCallback& callback) { | 427 const FileResourceCallback& callback) { |
| 428 DCHECK(thread_checker_.CalledOnValidThread()); | 428 DCHECK(thread_checker_.CalledOnValidThread()); |
| 429 DCHECK(!callback.is_null()); | 429 DCHECK(!callback.is_null()); |
| 430 | 430 |
| 431 FilesGetRequest* request = new FilesGetRequest( | 431 FilesGetRequest* request = new FilesGetRequest( |
| 432 sender_.get(), url_generator_, google_apis::IsGoogleChromeAPIKeyUsed(), | 432 sender_.get(), url_generator_, google_apis::IsGoogleChromeAPIKeyUsed(), |
| 433 callback); | 433 callback); |
| 434 request->set_file_id(resource_id); | 434 request->set_file_id(resource_id); |
| 435 request->set_fields(kFileResourceFields); | 435 request->set_fields(kFileResourceFields); |
| 436 return sender_->StartRequestWithRetry(request); | 436 return sender_->StartRequestWithAuthRetry(request); |
| 437 } | 437 } |
| 438 | 438 |
| 439 CancelCallback DriveAPIService::GetShareUrl( | 439 CancelCallback DriveAPIService::GetShareUrl( |
| 440 const std::string& resource_id, | 440 const std::string& resource_id, |
| 441 const GURL& embed_origin, | 441 const GURL& embed_origin, |
| 442 const GetShareUrlCallback& callback) { | 442 const GetShareUrlCallback& callback) { |
| 443 DCHECK(thread_checker_.CalledOnValidThread()); | 443 DCHECK(thread_checker_.CalledOnValidThread()); |
| 444 DCHECK(!callback.is_null()); | 444 DCHECK(!callback.is_null()); |
| 445 | 445 |
| 446 if (!google_apis::IsGoogleChromeAPIKeyUsed()) { | 446 if (!google_apis::IsGoogleChromeAPIKeyUsed()) { |
| 447 LOG(ERROR) << "Only the official build of Chrome OS can open share dialogs " | 447 LOG(ERROR) << "Only the official build of Chrome OS can open share dialogs " |
| 448 << "from the file manager."; | 448 << "from the file manager."; |
| 449 } | 449 } |
| 450 | 450 |
| 451 FilesGetRequest* request = new FilesGetRequest( | 451 FilesGetRequest* request = new FilesGetRequest( |
| 452 sender_.get(), url_generator_, google_apis::IsGoogleChromeAPIKeyUsed(), | 452 sender_.get(), url_generator_, google_apis::IsGoogleChromeAPIKeyUsed(), |
| 453 base::Bind(&ExtractShareUrlAndRun, callback)); | 453 base::Bind(&ExtractShareUrlAndRun, callback)); |
| 454 request->set_file_id(resource_id); | 454 request->set_file_id(resource_id); |
| 455 request->set_fields(kFileResourceShareLinkFields); | 455 request->set_fields(kFileResourceShareLinkFields); |
| 456 request->set_embed_origin(embed_origin); | 456 request->set_embed_origin(embed_origin); |
| 457 return sender_->StartRequestWithRetry(request); | 457 return sender_->StartRequestWithAuthRetry(request); |
| 458 } | 458 } |
| 459 | 459 |
| 460 CancelCallback DriveAPIService::GetAboutResource( | 460 CancelCallback DriveAPIService::GetAboutResource( |
| 461 const AboutResourceCallback& callback) { | 461 const AboutResourceCallback& callback) { |
| 462 DCHECK(thread_checker_.CalledOnValidThread()); | 462 DCHECK(thread_checker_.CalledOnValidThread()); |
| 463 DCHECK(!callback.is_null()); | 463 DCHECK(!callback.is_null()); |
| 464 | 464 |
| 465 AboutGetRequest* request = | 465 AboutGetRequest* request = |
| 466 new AboutGetRequest(sender_.get(), url_generator_, callback); | 466 new AboutGetRequest(sender_.get(), url_generator_, callback); |
| 467 request->set_fields(kAboutResourceFields); | 467 request->set_fields(kAboutResourceFields); |
| 468 return sender_->StartRequestWithRetry(request); | 468 return sender_->StartRequestWithAuthRetry(request); |
| 469 } | 469 } |
| 470 | 470 |
| 471 CancelCallback DriveAPIService::GetAppList(const AppListCallback& callback) { | 471 CancelCallback DriveAPIService::GetAppList(const AppListCallback& callback) { |
| 472 DCHECK(thread_checker_.CalledOnValidThread()); | 472 DCHECK(thread_checker_.CalledOnValidThread()); |
| 473 DCHECK(!callback.is_null()); | 473 DCHECK(!callback.is_null()); |
| 474 | 474 |
| 475 return sender_->StartRequestWithRetry( | 475 return sender_->StartRequestWithAuthRetry( |
| 476 new AppsListRequest(sender_.get(), url_generator_, | 476 new AppsListRequest(sender_.get(), url_generator_, |
| 477 google_apis::IsGoogleChromeAPIKeyUsed(), | 477 google_apis::IsGoogleChromeAPIKeyUsed(), callback)); |
| 478 callback)); | |
| 479 } | 478 } |
| 480 | 479 |
| 481 CancelCallback DriveAPIService::DownloadFile( | 480 CancelCallback DriveAPIService::DownloadFile( |
| 482 const base::FilePath& local_cache_path, | 481 const base::FilePath& local_cache_path, |
| 483 const std::string& resource_id, | 482 const std::string& resource_id, |
| 484 const DownloadActionCallback& download_action_callback, | 483 const DownloadActionCallback& download_action_callback, |
| 485 const GetContentCallback& get_content_callback, | 484 const GetContentCallback& get_content_callback, |
| 486 const ProgressCallback& progress_callback) { | 485 const ProgressCallback& progress_callback) { |
| 487 DCHECK(thread_checker_.CalledOnValidThread()); | 486 DCHECK(thread_checker_.CalledOnValidThread()); |
| 488 DCHECK(!download_action_callback.is_null()); | 487 DCHECK(!download_action_callback.is_null()); |
| 489 // get_content_callback may be null. | 488 // get_content_callback may be null. |
| 490 | 489 |
| 491 return sender_->StartRequestWithRetry( | 490 return sender_->StartRequestWithAuthRetry(new DownloadFileRequest( |
| 492 new DownloadFileRequest(sender_.get(), | 491 sender_.get(), url_generator_, resource_id, local_cache_path, |
| 493 url_generator_, | 492 download_action_callback, get_content_callback, progress_callback)); |
| 494 resource_id, | |
| 495 local_cache_path, | |
| 496 download_action_callback, | |
| 497 get_content_callback, | |
| 498 progress_callback)); | |
| 499 } | 493 } |
| 500 | 494 |
| 501 CancelCallback DriveAPIService::DeleteResource( | 495 CancelCallback DriveAPIService::DeleteResource( |
| 502 const std::string& resource_id, | 496 const std::string& resource_id, |
| 503 const std::string& etag, | 497 const std::string& etag, |
| 504 const EntryActionCallback& callback) { | 498 const EntryActionCallback& callback) { |
| 505 DCHECK(thread_checker_.CalledOnValidThread()); | 499 DCHECK(thread_checker_.CalledOnValidThread()); |
| 506 DCHECK(!callback.is_null()); | 500 DCHECK(!callback.is_null()); |
| 507 | 501 |
| 508 FilesDeleteRequest* request = new FilesDeleteRequest( | 502 FilesDeleteRequest* request = new FilesDeleteRequest( |
| 509 sender_.get(), url_generator_, callback); | 503 sender_.get(), url_generator_, callback); |
| 510 request->set_file_id(resource_id); | 504 request->set_file_id(resource_id); |
| 511 request->set_etag(etag); | 505 request->set_etag(etag); |
| 512 return sender_->StartRequestWithRetry(request); | 506 return sender_->StartRequestWithAuthRetry(request); |
| 513 } | 507 } |
| 514 | 508 |
| 515 CancelCallback DriveAPIService::TrashResource( | 509 CancelCallback DriveAPIService::TrashResource( |
| 516 const std::string& resource_id, | 510 const std::string& resource_id, |
| 517 const EntryActionCallback& callback) { | 511 const EntryActionCallback& callback) { |
| 518 DCHECK(thread_checker_.CalledOnValidThread()); | 512 DCHECK(thread_checker_.CalledOnValidThread()); |
| 519 DCHECK(!callback.is_null()); | 513 DCHECK(!callback.is_null()); |
| 520 | 514 |
| 521 FilesTrashRequest* request = new FilesTrashRequest( | 515 FilesTrashRequest* request = new FilesTrashRequest( |
| 522 sender_.get(), url_generator_, | 516 sender_.get(), url_generator_, |
| 523 base::Bind(&EntryActionCallbackAdapter, callback)); | 517 base::Bind(&EntryActionCallbackAdapter, callback)); |
| 524 request->set_file_id(resource_id); | 518 request->set_file_id(resource_id); |
| 525 request->set_fields(kFileResourceFields); | 519 request->set_fields(kFileResourceFields); |
| 526 return sender_->StartRequestWithRetry(request); | 520 return sender_->StartRequestWithAuthRetry(request); |
| 527 } | 521 } |
| 528 | 522 |
| 529 CancelCallback DriveAPIService::AddNewDirectory( | 523 CancelCallback DriveAPIService::AddNewDirectory( |
| 530 const std::string& parent_resource_id, | 524 const std::string& parent_resource_id, |
| 531 const std::string& directory_title, | 525 const std::string& directory_title, |
| 532 const AddNewDirectoryOptions& options, | 526 const AddNewDirectoryOptions& options, |
| 533 const FileResourceCallback& callback) { | 527 const FileResourceCallback& callback) { |
| 534 DCHECK(thread_checker_.CalledOnValidThread()); | 528 DCHECK(thread_checker_.CalledOnValidThread()); |
| 535 DCHECK(!callback.is_null()); | 529 DCHECK(!callback.is_null()); |
| 536 | 530 |
| 537 FilesInsertRequest* request = new FilesInsertRequest( | 531 FilesInsertRequest* request = new FilesInsertRequest( |
| 538 sender_.get(), url_generator_, callback); | 532 sender_.get(), url_generator_, callback); |
| 539 request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); | 533 request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); |
| 540 request->set_mime_type(kFolderMimeType); | 534 request->set_mime_type(kFolderMimeType); |
| 541 request->set_modified_date(options.modified_date); | 535 request->set_modified_date(options.modified_date); |
| 542 request->add_parent(parent_resource_id); | 536 request->add_parent(parent_resource_id); |
| 543 request->set_title(directory_title); | 537 request->set_title(directory_title); |
| 544 request->set_properties(options.properties); | 538 request->set_properties(options.properties); |
| 545 request->set_fields(kFileResourceFields); | 539 request->set_fields(kFileResourceFields); |
| 546 return sender_->StartRequestWithRetry(request); | 540 return sender_->StartRequestWithAuthRetry(request); |
| 547 } | 541 } |
| 548 | 542 |
| 549 CancelCallback DriveAPIService::CopyResource( | 543 CancelCallback DriveAPIService::CopyResource( |
| 550 const std::string& resource_id, | 544 const std::string& resource_id, |
| 551 const std::string& parent_resource_id, | 545 const std::string& parent_resource_id, |
| 552 const std::string& new_title, | 546 const std::string& new_title, |
| 553 const base::Time& last_modified, | 547 const base::Time& last_modified, |
| 554 const FileResourceCallback& callback) { | 548 const FileResourceCallback& callback) { |
| 555 DCHECK(thread_checker_.CalledOnValidThread()); | 549 DCHECK(thread_checker_.CalledOnValidThread()); |
| 556 DCHECK(!callback.is_null()); | 550 DCHECK(!callback.is_null()); |
| 557 | 551 |
| 558 FilesCopyRequest* request = new FilesCopyRequest( | 552 FilesCopyRequest* request = new FilesCopyRequest( |
| 559 sender_.get(), url_generator_, callback); | 553 sender_.get(), url_generator_, callback); |
| 560 request->set_file_id(resource_id); | 554 request->set_file_id(resource_id); |
| 561 request->add_parent(parent_resource_id); | 555 request->add_parent(parent_resource_id); |
| 562 request->set_title(new_title); | 556 request->set_title(new_title); |
| 563 request->set_modified_date(last_modified); | 557 request->set_modified_date(last_modified); |
| 564 request->set_fields(kFileResourceFields); | 558 request->set_fields(kFileResourceFields); |
| 565 return sender_->StartRequestWithRetry(request); | 559 return sender_->StartRequestWithAuthRetry(request); |
| 566 } | 560 } |
| 567 | 561 |
| 568 CancelCallback DriveAPIService::UpdateResource( | 562 CancelCallback DriveAPIService::UpdateResource( |
| 569 const std::string& resource_id, | 563 const std::string& resource_id, |
| 570 const std::string& parent_resource_id, | 564 const std::string& parent_resource_id, |
| 571 const std::string& new_title, | 565 const std::string& new_title, |
| 572 const base::Time& last_modified, | 566 const base::Time& last_modified, |
| 573 const base::Time& last_viewed_by_me, | 567 const base::Time& last_viewed_by_me, |
| 574 const google_apis::drive::Properties& properties, | 568 const google_apis::drive::Properties& properties, |
| 575 const FileResourceCallback& callback) { | 569 const FileResourceCallback& callback) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 588 request->set_modified_date(last_modified); | 582 request->set_modified_date(last_modified); |
| 589 } | 583 } |
| 590 if (!last_viewed_by_me.is_null()) { | 584 if (!last_viewed_by_me.is_null()) { |
| 591 // Need to set updateViewedDate to false, otherwise the lastViewedByMeDate | 585 // Need to set updateViewedDate to false, otherwise the lastViewedByMeDate |
| 592 // will be set to the request time (not the specified time via request). | 586 // will be set to the request time (not the specified time via request). |
| 593 request->set_update_viewed_date(false); | 587 request->set_update_viewed_date(false); |
| 594 request->set_last_viewed_by_me_date(last_viewed_by_me); | 588 request->set_last_viewed_by_me_date(last_viewed_by_me); |
| 595 } | 589 } |
| 596 request->set_fields(kFileResourceFields); | 590 request->set_fields(kFileResourceFields); |
| 597 request->set_properties(properties); | 591 request->set_properties(properties); |
| 598 return sender_->StartRequestWithRetry(request); | 592 return sender_->StartRequestWithAuthRetry(request); |
| 599 } | 593 } |
| 600 | 594 |
| 601 CancelCallback DriveAPIService::AddResourceToDirectory( | 595 CancelCallback DriveAPIService::AddResourceToDirectory( |
| 602 const std::string& parent_resource_id, | 596 const std::string& parent_resource_id, |
| 603 const std::string& resource_id, | 597 const std::string& resource_id, |
| 604 const EntryActionCallback& callback) { | 598 const EntryActionCallback& callback) { |
| 605 DCHECK(thread_checker_.CalledOnValidThread()); | 599 DCHECK(thread_checker_.CalledOnValidThread()); |
| 606 DCHECK(!callback.is_null()); | 600 DCHECK(!callback.is_null()); |
| 607 | 601 |
| 608 ChildrenInsertRequest* request = | 602 ChildrenInsertRequest* request = |
| 609 new ChildrenInsertRequest(sender_.get(), url_generator_, callback); | 603 new ChildrenInsertRequest(sender_.get(), url_generator_, callback); |
| 610 request->set_folder_id(parent_resource_id); | 604 request->set_folder_id(parent_resource_id); |
| 611 request->set_id(resource_id); | 605 request->set_id(resource_id); |
| 612 return sender_->StartRequestWithRetry(request); | 606 return sender_->StartRequestWithAuthRetry(request); |
| 613 } | 607 } |
| 614 | 608 |
| 615 CancelCallback DriveAPIService::RemoveResourceFromDirectory( | 609 CancelCallback DriveAPIService::RemoveResourceFromDirectory( |
| 616 const std::string& parent_resource_id, | 610 const std::string& parent_resource_id, |
| 617 const std::string& resource_id, | 611 const std::string& resource_id, |
| 618 const EntryActionCallback& callback) { | 612 const EntryActionCallback& callback) { |
| 619 DCHECK(thread_checker_.CalledOnValidThread()); | 613 DCHECK(thread_checker_.CalledOnValidThread()); |
| 620 DCHECK(!callback.is_null()); | 614 DCHECK(!callback.is_null()); |
| 621 | 615 |
| 622 ChildrenDeleteRequest* request = | 616 ChildrenDeleteRequest* request = |
| 623 new ChildrenDeleteRequest(sender_.get(), url_generator_, callback); | 617 new ChildrenDeleteRequest(sender_.get(), url_generator_, callback); |
| 624 request->set_child_id(resource_id); | 618 request->set_child_id(resource_id); |
| 625 request->set_folder_id(parent_resource_id); | 619 request->set_folder_id(parent_resource_id); |
| 626 return sender_->StartRequestWithRetry(request); | 620 return sender_->StartRequestWithAuthRetry(request); |
| 627 } | 621 } |
| 628 | 622 |
| 629 CancelCallback DriveAPIService::InitiateUploadNewFile( | 623 CancelCallback DriveAPIService::InitiateUploadNewFile( |
| 630 const std::string& content_type, | 624 const std::string& content_type, |
| 631 int64 content_length, | 625 int64 content_length, |
| 632 const std::string& parent_resource_id, | 626 const std::string& parent_resource_id, |
| 633 const std::string& title, | 627 const std::string& title, |
| 634 const UploadNewFileOptions& options, | 628 const UploadNewFileOptions& options, |
| 635 const InitiateUploadCallback& callback) { | 629 const InitiateUploadCallback& callback) { |
| 636 DCHECK(thread_checker_.CalledOnValidThread()); | 630 DCHECK(thread_checker_.CalledOnValidThread()); |
| 637 DCHECK(!callback.is_null()); | 631 DCHECK(!callback.is_null()); |
| 638 | 632 |
| 639 InitiateUploadNewFileRequest* request = | 633 InitiateUploadNewFileRequest* request = |
| 640 new InitiateUploadNewFileRequest(sender_.get(), | 634 new InitiateUploadNewFileRequest(sender_.get(), |
| 641 url_generator_, | 635 url_generator_, |
| 642 content_type, | 636 content_type, |
| 643 content_length, | 637 content_length, |
| 644 parent_resource_id, | 638 parent_resource_id, |
| 645 title, | 639 title, |
| 646 callback); | 640 callback); |
| 647 request->set_modified_date(options.modified_date); | 641 request->set_modified_date(options.modified_date); |
| 648 request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); | 642 request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); |
| 649 request->set_properties(options.properties); | 643 request->set_properties(options.properties); |
| 650 return sender_->StartRequestWithRetry(request); | 644 return sender_->StartRequestWithAuthRetry(request); |
| 651 } | 645 } |
| 652 | 646 |
| 653 CancelCallback DriveAPIService::InitiateUploadExistingFile( | 647 CancelCallback DriveAPIService::InitiateUploadExistingFile( |
| 654 const std::string& content_type, | 648 const std::string& content_type, |
| 655 int64 content_length, | 649 int64 content_length, |
| 656 const std::string& resource_id, | 650 const std::string& resource_id, |
| 657 const UploadExistingFileOptions& options, | 651 const UploadExistingFileOptions& options, |
| 658 const InitiateUploadCallback& callback) { | 652 const InitiateUploadCallback& callback) { |
| 659 DCHECK(thread_checker_.CalledOnValidThread()); | 653 DCHECK(thread_checker_.CalledOnValidThread()); |
| 660 DCHECK(!callback.is_null()); | 654 DCHECK(!callback.is_null()); |
| 661 | 655 |
| 662 InitiateUploadExistingFileRequest* request = | 656 InitiateUploadExistingFileRequest* request = |
| 663 new InitiateUploadExistingFileRequest(sender_.get(), | 657 new InitiateUploadExistingFileRequest(sender_.get(), |
| 664 url_generator_, | 658 url_generator_, |
| 665 content_type, | 659 content_type, |
| 666 content_length, | 660 content_length, |
| 667 resource_id, | 661 resource_id, |
| 668 options.etag, | 662 options.etag, |
| 669 callback); | 663 callback); |
| 670 request->set_parent_resource_id(options.parent_resource_id); | 664 request->set_parent_resource_id(options.parent_resource_id); |
| 671 request->set_title(options.title); | 665 request->set_title(options.title); |
| 672 request->set_modified_date(options.modified_date); | 666 request->set_modified_date(options.modified_date); |
| 673 request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); | 667 request->set_last_viewed_by_me_date(options.last_viewed_by_me_date); |
| 674 request->set_properties(options.properties); | 668 request->set_properties(options.properties); |
| 675 return sender_->StartRequestWithRetry(request); | 669 return sender_->StartRequestWithAuthRetry(request); |
| 676 } | 670 } |
| 677 | 671 |
| 678 CancelCallback DriveAPIService::ResumeUpload( | 672 CancelCallback DriveAPIService::ResumeUpload( |
| 679 const GURL& upload_url, | 673 const GURL& upload_url, |
| 680 int64 start_position, | 674 int64 start_position, |
| 681 int64 end_position, | 675 int64 end_position, |
| 682 int64 content_length, | 676 int64 content_length, |
| 683 const std::string& content_type, | 677 const std::string& content_type, |
| 684 const base::FilePath& local_file_path, | 678 const base::FilePath& local_file_path, |
| 685 const UploadRangeCallback& callback, | 679 const UploadRangeCallback& callback, |
| 686 const ProgressCallback& progress_callback) { | 680 const ProgressCallback& progress_callback) { |
| 687 DCHECK(thread_checker_.CalledOnValidThread()); | 681 DCHECK(thread_checker_.CalledOnValidThread()); |
| 688 DCHECK(!callback.is_null()); | 682 DCHECK(!callback.is_null()); |
| 689 | 683 |
| 690 return sender_->StartRequestWithRetry( | 684 return sender_->StartRequestWithAuthRetry(new ResumeUploadRequest( |
| 691 new ResumeUploadRequest( | 685 sender_.get(), upload_url, start_position, end_position, content_length, |
| 692 sender_.get(), | 686 content_type, local_file_path, callback, progress_callback)); |
| 693 upload_url, | |
| 694 start_position, | |
| 695 end_position, | |
| 696 content_length, | |
| 697 content_type, | |
| 698 local_file_path, | |
| 699 callback, | |
| 700 progress_callback)); | |
| 701 } | 687 } |
| 702 | 688 |
| 703 CancelCallback DriveAPIService::GetUploadStatus( | 689 CancelCallback DriveAPIService::GetUploadStatus( |
| 704 const GURL& upload_url, | 690 const GURL& upload_url, |
| 705 int64 content_length, | 691 int64 content_length, |
| 706 const UploadRangeCallback& callback) { | 692 const UploadRangeCallback& callback) { |
| 707 DCHECK(thread_checker_.CalledOnValidThread()); | 693 DCHECK(thread_checker_.CalledOnValidThread()); |
| 708 DCHECK(!callback.is_null()); | 694 DCHECK(!callback.is_null()); |
| 709 | 695 |
| 710 return sender_->StartRequestWithRetry(new GetUploadStatusRequest( | 696 return sender_->StartRequestWithAuthRetry(new GetUploadStatusRequest( |
| 711 sender_.get(), | 697 sender_.get(), upload_url, content_length, callback)); |
| 712 upload_url, | |
| 713 content_length, | |
| 714 callback)); | |
| 715 } | 698 } |
| 716 | 699 |
| 717 CancelCallback DriveAPIService::MultipartUploadNewFile( | 700 CancelCallback DriveAPIService::MultipartUploadNewFile( |
| 718 const std::string& content_type, | 701 const std::string& content_type, |
| 719 int64 content_length, | 702 int64 content_length, |
| 720 const std::string& parent_resource_id, | 703 const std::string& parent_resource_id, |
| 721 const std::string& title, | 704 const std::string& title, |
| 722 const base::FilePath& local_file_path, | 705 const base::FilePath& local_file_path, |
| 723 const drive::UploadNewFileOptions& options, | 706 const drive::UploadNewFileOptions& options, |
| 724 const FileResourceCallback& callback, | 707 const FileResourceCallback& callback, |
| 725 const google_apis::ProgressCallback& progress_callback) { | 708 const google_apis::ProgressCallback& progress_callback) { |
| 726 DCHECK(thread_checker_.CalledOnValidThread()); | 709 DCHECK(thread_checker_.CalledOnValidThread()); |
| 727 DCHECK(!callback.is_null()); | 710 DCHECK(!callback.is_null()); |
| 728 | 711 |
| 729 return sender_->StartRequestWithRetry( | 712 return sender_->StartRequestWithAuthRetry( |
| 730 new google_apis::drive::SingleBatchableDelegateRequest( | 713 new google_apis::drive::SingleBatchableDelegateRequest( |
| 731 sender_.get(), | 714 sender_.get(), |
| 732 new google_apis::drive::MultipartUploadNewFileDelegate( | 715 new google_apis::drive::MultipartUploadNewFileDelegate( |
| 733 sender_->blocking_task_runner(), title, parent_resource_id, | 716 sender_->blocking_task_runner(), title, parent_resource_id, |
| 734 content_type, content_length, options.modified_date, | 717 content_type, content_length, options.modified_date, |
| 735 options.last_viewed_by_me_date, local_file_path, | 718 options.last_viewed_by_me_date, local_file_path, |
| 736 options.properties, url_generator_, callback, | 719 options.properties, url_generator_, callback, |
| 737 progress_callback))); | 720 progress_callback))); |
| 738 } | 721 } |
| 739 | 722 |
| 740 CancelCallback DriveAPIService::MultipartUploadExistingFile( | 723 CancelCallback DriveAPIService::MultipartUploadExistingFile( |
| 741 const std::string& content_type, | 724 const std::string& content_type, |
| 742 int64 content_length, | 725 int64 content_length, |
| 743 const std::string& resource_id, | 726 const std::string& resource_id, |
| 744 const base::FilePath& local_file_path, | 727 const base::FilePath& local_file_path, |
| 745 const drive::UploadExistingFileOptions& options, | 728 const drive::UploadExistingFileOptions& options, |
| 746 const FileResourceCallback& callback, | 729 const FileResourceCallback& callback, |
| 747 const google_apis::ProgressCallback& progress_callback) { | 730 const google_apis::ProgressCallback& progress_callback) { |
| 748 DCHECK(thread_checker_.CalledOnValidThread()); | 731 DCHECK(thread_checker_.CalledOnValidThread()); |
| 749 DCHECK(!callback.is_null()); | 732 DCHECK(!callback.is_null()); |
| 750 | 733 |
| 751 return sender_->StartRequestWithRetry( | 734 return sender_->StartRequestWithAuthRetry( |
| 752 new google_apis::drive::SingleBatchableDelegateRequest( | 735 new google_apis::drive::SingleBatchableDelegateRequest( |
| 753 sender_.get(), | 736 sender_.get(), |
| 754 new google_apis::drive::MultipartUploadExistingFileDelegate( | 737 new google_apis::drive::MultipartUploadExistingFileDelegate( |
| 755 sender_->blocking_task_runner(), options.title, resource_id, | 738 sender_->blocking_task_runner(), options.title, resource_id, |
| 756 options.parent_resource_id, content_type, content_length, | 739 options.parent_resource_id, content_type, content_length, |
| 757 options.modified_date, options.last_viewed_by_me_date, | 740 options.modified_date, options.last_viewed_by_me_date, |
| 758 local_file_path, options.etag, options.properties, url_generator_, | 741 local_file_path, options.etag, options.properties, url_generator_, |
| 759 callback, progress_callback))); | 742 callback, progress_callback))); |
| 760 } | 743 } |
| 761 | 744 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 772 // the app can open if it was authorized by other means (from whitelisted | 755 // the app can open if it was authorized by other means (from whitelisted |
| 773 // clients or drive.google.com web UI.) | 756 // clients or drive.google.com web UI.) |
| 774 if (google_apis::IsGoogleChromeAPIKeyUsed()) { | 757 if (google_apis::IsGoogleChromeAPIKeyUsed()) { |
| 775 google_apis::drive::FilesAuthorizeRequest* request = | 758 google_apis::drive::FilesAuthorizeRequest* request = |
| 776 new google_apis::drive::FilesAuthorizeRequest( | 759 new google_apis::drive::FilesAuthorizeRequest( |
| 777 sender_.get(), url_generator_, | 760 sender_.get(), url_generator_, |
| 778 base::Bind(&ExtractOpenUrlAndRun, app_id, callback)); | 761 base::Bind(&ExtractOpenUrlAndRun, app_id, callback)); |
| 779 request->set_app_id(app_id); | 762 request->set_app_id(app_id); |
| 780 request->set_file_id(resource_id); | 763 request->set_file_id(resource_id); |
| 781 request->set_fields(kFileResourceOpenWithLinksFields); | 764 request->set_fields(kFileResourceOpenWithLinksFields); |
| 782 return sender_->StartRequestWithRetry(request); | 765 return sender_->StartRequestWithAuthRetry(request); |
| 783 } else { | 766 } else { |
| 784 FilesGetRequest* request = new FilesGetRequest( | 767 FilesGetRequest* request = new FilesGetRequest( |
| 785 sender_.get(), url_generator_, google_apis::IsGoogleChromeAPIKeyUsed(), | 768 sender_.get(), url_generator_, google_apis::IsGoogleChromeAPIKeyUsed(), |
| 786 base::Bind(&ExtractOpenUrlAndRun, app_id, callback)); | 769 base::Bind(&ExtractOpenUrlAndRun, app_id, callback)); |
| 787 request->set_file_id(resource_id); | 770 request->set_file_id(resource_id); |
| 788 request->set_fields(kFileResourceOpenWithLinksFields); | 771 request->set_fields(kFileResourceOpenWithLinksFields); |
| 789 return sender_->StartRequestWithRetry(request); | 772 return sender_->StartRequestWithAuthRetry(request); |
| 790 } | 773 } |
| 791 } | 774 } |
| 792 | 775 |
| 793 CancelCallback DriveAPIService::UninstallApp( | 776 CancelCallback DriveAPIService::UninstallApp( |
| 794 const std::string& app_id, | 777 const std::string& app_id, |
| 795 const google_apis::EntryActionCallback& callback) { | 778 const google_apis::EntryActionCallback& callback) { |
| 796 DCHECK(thread_checker_.CalledOnValidThread()); | 779 DCHECK(thread_checker_.CalledOnValidThread()); |
| 797 DCHECK(!callback.is_null()); | 780 DCHECK(!callback.is_null()); |
| 798 | 781 |
| 799 google_apis::drive::AppsDeleteRequest* request = | 782 google_apis::drive::AppsDeleteRequest* request = |
| 800 new google_apis::drive::AppsDeleteRequest(sender_.get(), url_generator_, | 783 new google_apis::drive::AppsDeleteRequest(sender_.get(), url_generator_, |
| 801 callback); | 784 callback); |
| 802 request->set_app_id(app_id); | 785 request->set_app_id(app_id); |
| 803 return sender_->StartRequestWithRetry(request); | 786 return sender_->StartRequestWithAuthRetry(request); |
| 804 } | 787 } |
| 805 | 788 |
| 806 google_apis::CancelCallback DriveAPIService::AddPermission( | 789 google_apis::CancelCallback DriveAPIService::AddPermission( |
| 807 const std::string& resource_id, | 790 const std::string& resource_id, |
| 808 const std::string& email, | 791 const std::string& email, |
| 809 google_apis::drive::PermissionRole role, | 792 google_apis::drive::PermissionRole role, |
| 810 const google_apis::EntryActionCallback& callback) { | 793 const google_apis::EntryActionCallback& callback) { |
| 811 DCHECK(thread_checker_.CalledOnValidThread()); | 794 DCHECK(thread_checker_.CalledOnValidThread()); |
| 812 DCHECK(!callback.is_null()); | 795 DCHECK(!callback.is_null()); |
| 813 | 796 |
| 814 google_apis::drive::PermissionsInsertRequest* request = | 797 google_apis::drive::PermissionsInsertRequest* request = |
| 815 new google_apis::drive::PermissionsInsertRequest(sender_.get(), | 798 new google_apis::drive::PermissionsInsertRequest(sender_.get(), |
| 816 url_generator_, | 799 url_generator_, |
| 817 callback); | 800 callback); |
| 818 request->set_id(resource_id); | 801 request->set_id(resource_id); |
| 819 request->set_role(role); | 802 request->set_role(role); |
| 820 request->set_type(google_apis::drive::PERMISSION_TYPE_USER); | 803 request->set_type(google_apis::drive::PERMISSION_TYPE_USER); |
| 821 request->set_value(email); | 804 request->set_value(email); |
| 822 return sender_->StartRequestWithRetry(request); | 805 return sender_->StartRequestWithAuthRetry(request); |
| 823 } | 806 } |
| 824 | 807 |
| 825 bool DriveAPIService::HasAccessToken() const { | 808 bool DriveAPIService::HasAccessToken() const { |
| 826 DCHECK(thread_checker_.CalledOnValidThread()); | 809 DCHECK(thread_checker_.CalledOnValidThread()); |
| 827 return sender_->auth_service()->HasAccessToken(); | 810 return sender_->auth_service()->HasAccessToken(); |
| 828 } | 811 } |
| 829 | 812 |
| 830 void DriveAPIService::RequestAccessToken(const AuthStatusCallback& callback) { | 813 void DriveAPIService::RequestAccessToken(const AuthStatusCallback& callback) { |
| 831 DCHECK(thread_checker_.CalledOnValidThread()); | 814 DCHECK(thread_checker_.CalledOnValidThread()); |
| 832 DCHECK(!callback.is_null()); | 815 DCHECK(!callback.is_null()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 873 new google_apis::drive::BatchUploadRequest(sender_.get(), | 856 new google_apis::drive::BatchUploadRequest(sender_.get(), |
| 874 url_generator_)); | 857 url_generator_)); |
| 875 const base::WeakPtr<google_apis::drive::BatchUploadRequest> weak_ref = | 858 const base::WeakPtr<google_apis::drive::BatchUploadRequest> weak_ref = |
| 876 request->GetWeakPtrAsBatchUploadRequest(); | 859 request->GetWeakPtrAsBatchUploadRequest(); |
| 877 // Have sender_ manage the lifetime of the request. | 860 // Have sender_ manage the lifetime of the request. |
| 878 // TODO(hirono): Currently we need to pass the ownership of the request to | 861 // TODO(hirono): Currently we need to pass the ownership of the request to |
| 879 // RequestSender before the request is committed because the request has a | 862 // RequestSender before the request is committed because the request has a |
| 880 // reference to RequestSender and we should ensure to delete the request when | 863 // reference to RequestSender and we should ensure to delete the request when |
| 881 // the sender is deleted. Resolve the circulating dependency and fix it. | 864 // the sender is deleted. Resolve the circulating dependency and fix it. |
| 882 const google_apis::CancelCallback callback = | 865 const google_apis::CancelCallback callback = |
| 883 sender_->StartRequestWithRetry(request.release()); | 866 sender_->StartRequestWithAuthRetry(request.release()); |
| 884 return make_scoped_ptr<BatchRequestConfiguratorInterface>( | 867 return make_scoped_ptr<BatchRequestConfiguratorInterface>( |
| 885 new BatchRequestConfigurator(weak_ref, sender_->blocking_task_runner(), | 868 new BatchRequestConfigurator(weak_ref, sender_->blocking_task_runner(), |
| 886 url_generator_, callback)); | 869 url_generator_, callback)); |
| 887 } | 870 } |
| 888 | 871 |
| 889 } // namespace drive | 872 } // namespace drive |
| OLD | NEW |