Index: google_apis/drive/base_requests.cc |
diff --git a/google_apis/drive/base_requests.cc b/google_apis/drive/base_requests.cc |
index 6a485e621d8262344bce1ac8611cfde967b550d5..757b2de8ad78b81d7389aff5f6a9d1672e587fce 100644 |
--- a/google_apis/drive/base_requests.cc |
+++ b/google_apis/drive/base_requests.cc |
@@ -561,31 +561,6 @@ UrlFetchRequestBase::GetWeakPtr() { |
return weak_ptr_factory_.GetWeakPtr(); |
} |
-//============================ BatchableRequestBase ============================ |
- |
-net::URLFetcher::RequestType BatchableRequestBase::GetRequestType() const { |
- return UrlFetchRequestBase::GetRequestType(); |
-} |
- |
-std::vector<std::string> BatchableRequestBase::GetExtraRequestHeaders() const { |
- return UrlFetchRequestBase::GetExtraRequestHeaders(); |
-} |
- |
-void BatchableRequestBase::Prepare(const PrepareCallback& callback) { |
- return UrlFetchRequestBase::Prepare(callback); |
-} |
- |
-bool BatchableRequestBase::GetContentData( |
- std::string* upload_content_type, std::string* upload_content) { |
- return UrlFetchRequestBase::GetContentData( |
- upload_content_type, upload_content); |
-} |
- |
-void BatchableRequestBase::ProcessURLFetchResults( |
- const net::URLFetcher* source) { |
- ProcessURLFetchResults(GetErrorCode(), response_writer()->data()); |
-} |
- |
//============================ EntryActionRequest ============================ |
EntryActionRequest::EntryActionRequest(RequestSender* sender, |
@@ -855,14 +830,14 @@ GetUploadStatusRequestBase::GetExtraRequestHeaders() const { |
//========================= MultipartUploadRequestBase ======================== |
MultipartUploadRequestBase::MultipartUploadRequestBase( |
- RequestSender* sender, |
+ base::SequencedTaskRunner* blocking_task_runner, |
const std::string& metadata_json, |
const std::string& content_type, |
int64 content_length, |
const base::FilePath& local_file_path, |
const FileResourceCallback& callback, |
const ProgressCallback& progress_callback) |
- : BatchableRequestBase(sender), |
+ : blocking_task_runner_(blocking_task_runner), |
metadata_json_(metadata_json), |
content_type_(content_type), |
local_path_(local_file_path), |
@@ -878,13 +853,18 @@ MultipartUploadRequestBase::MultipartUploadRequestBase( |
MultipartUploadRequestBase::~MultipartUploadRequestBase() { |
} |
+std::vector<std::string> MultipartUploadRequestBase::GetExtraRequestHeaders() |
+ const { |
+ return std::vector<std::string>(); |
+} |
+ |
void MultipartUploadRequestBase::Prepare(const PrepareCallback& callback) { |
// If the request is cancelled, the request instance will be deleted in |
// |UrlFetchRequestBase::Cancel| and OnPrepareUploadContent won't be called. |
std::string* const upload_content_type = new std::string(); |
std::string* const upload_content_data = new std::string(); |
PostTaskAndReplyWithResult( |
- blocking_task_runner(), FROM_HERE, |
+ blocking_task_runner_.get(), FROM_HERE, |
base::Bind(&GetMultipartContent, boundary_, metadata_json_, content_type_, |
local_path_, base::Unretained(upload_content_type), |
base::Unretained(upload_content_data)), |
@@ -922,26 +902,29 @@ bool MultipartUploadRequestBase::GetContentData( |
return true; |
} |
-void MultipartUploadRequestBase::ProcessURLFetchResults( |
- DriveApiErrorCode code, const std::string& body) { |
+void MultipartUploadRequestBase::NotifyResult( |
+ DriveApiErrorCode code, |
+ const std::string& body, |
+ const base::Closure& notify_complete_callback) { |
// The upload is successfully done. Parse the response which should be |
// the entry's metadata. |
if (code == HTTP_CREATED || code == HTTP_SUCCESS) { |
ParseJsonOnBlockingPool( |
- blocking_task_runner(), body, |
+ blocking_task_runner_.get(), body, |
base::Bind(&MultipartUploadRequestBase::OnDataParsed, |
- weak_ptr_factory_.GetWeakPtr(), code)); |
+ weak_ptr_factory_.GetWeakPtr(), code, |
+ notify_complete_callback)); |
} else { |
- OnDataParsed(code, scoped_ptr<base::Value>()); |
+ NotifyError(code); |
+ notify_complete_callback.Run(); |
} |
} |
-void MultipartUploadRequestBase::RunCallbackOnPrematureFailure( |
- DriveApiErrorCode code) { |
+void MultipartUploadRequestBase::NotifyError(DriveApiErrorCode code) { |
callback_.Run(code, scoped_ptr<FileResource>()); |
} |
-void MultipartUploadRequestBase::OnURLFetchUploadProgress( |
+void MultipartUploadRequestBase::NotifyUploadProgress( |
const net::URLFetcher* source, |
int64 current, |
int64 total) { |
@@ -949,14 +932,16 @@ void MultipartUploadRequestBase::OnURLFetchUploadProgress( |
progress_callback_.Run(current, total); |
} |
-void MultipartUploadRequestBase::OnDataParsed(DriveApiErrorCode code, |
- scoped_ptr<base::Value> value) { |
- DCHECK(CalledOnValidThread()); |
+void MultipartUploadRequestBase::OnDataParsed( |
+ DriveApiErrorCode code, |
+ const base::Closure& notify_complete_callback, |
+ scoped_ptr<base::Value> value) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
if (value) |
callback_.Run(code, google_apis::FileResource::CreateFrom(*value)); |
else |
- callback_.Run(DRIVE_PARSE_ERROR, scoped_ptr<FileResource>()); |
- OnProcessURLFetchResultsComplete(); |
+ NotifyError(DRIVE_PARSE_ERROR); |
+ notify_complete_callback.Run(); |
} |
//============================ DownloadFileRequestBase ========================= |