| 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 "google_apis/drive/drive_api_requests.h" | 5 #include "google_apis/drive/drive_api_requests.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 const char kUMADriveBatchUploadResponseCode[] = "Drive.BatchUploadResponseCode"; | 53 const char kUMADriveBatchUploadResponseCode[] = "Drive.BatchUploadResponseCode"; |
| 54 const char kUMADriveTotalFileCountInBatchUpload[] = | 54 const char kUMADriveTotalFileCountInBatchUpload[] = |
| 55 "Drive.TotalFileCountInBatchUpload"; | 55 "Drive.TotalFileCountInBatchUpload"; |
| 56 const char kUMADriveTotalFileSizeInBatchUpload[] = | 56 const char kUMADriveTotalFileSizeInBatchUpload[] = |
| 57 "Drive.TotalFileSizeInBatchUpload"; | 57 "Drive.TotalFileSizeInBatchUpload"; |
| 58 | 58 |
| 59 // Parses the JSON value to FileResource instance and runs |callback| on the | 59 // Parses the JSON value to FileResource instance and runs |callback| on the |
| 60 // UI thread once parsing is done. | 60 // UI thread once parsing is done. |
| 61 // This is customized version of ParseJsonAndRun defined above to adapt the | 61 // This is customized version of ParseJsonAndRun defined above to adapt the |
| 62 // remaining response type. | 62 // remaining response type. |
| 63 void ParseFileResourceWithUploadRangeAndRun(const UploadRangeCallback& callback, | 63 void ParseFileResourceWithUploadRangeAndRun( |
| 64 const UploadRangeResponse& response, | 64 const UploadRangeCallback& callback, |
| 65 scoped_ptr<base::Value> value) { | 65 const UploadRangeResponse& response, |
| 66 std::unique_ptr<base::Value> value) { |
| 66 DCHECK(!callback.is_null()); | 67 DCHECK(!callback.is_null()); |
| 67 | 68 |
| 68 scoped_ptr<FileResource> file_resource; | 69 std::unique_ptr<FileResource> file_resource; |
| 69 if (value) { | 70 if (value) { |
| 70 file_resource = FileResource::CreateFrom(*value); | 71 file_resource = FileResource::CreateFrom(*value); |
| 71 if (!file_resource) { | 72 if (!file_resource) { |
| 72 callback.Run( | 73 callback.Run(UploadRangeResponse(DRIVE_PARSE_ERROR, |
| 73 UploadRangeResponse(DRIVE_PARSE_ERROR, | 74 response.start_position_received, |
| 74 response.start_position_received, | 75 response.end_position_received), |
| 75 response.end_position_received), | 76 std::unique_ptr<FileResource>()); |
| 76 scoped_ptr<FileResource>()); | |
| 77 return; | 77 return; |
| 78 } | 78 } |
| 79 } | 79 } |
| 80 | 80 |
| 81 callback.Run(response, std::move(file_resource)); | 81 callback.Run(response, std::move(file_resource)); |
| 82 } | 82 } |
| 83 | 83 |
| 84 // Attaches |properties| to the |request_body| if |properties| is not empty. | 84 // Attaches |properties| to the |request_body| if |properties| is not empty. |
| 85 // |request_body| must not be NULL. | 85 // |request_body| must not be NULL. |
| 86 void AttachProperties(const Properties& properties, | 86 void AttachProperties(const Properties& properties, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 117 const std::string& parent_resource_id, | 117 const std::string& parent_resource_id, |
| 118 const base::Time& modified_date, | 118 const base::Time& modified_date, |
| 119 const base::Time& last_viewed_by_me_date, | 119 const base::Time& last_viewed_by_me_date, |
| 120 const Properties& properties) { | 120 const Properties& properties) { |
| 121 base::DictionaryValue root; | 121 base::DictionaryValue root; |
| 122 if (!title.empty()) | 122 if (!title.empty()) |
| 123 root.SetString("title", title); | 123 root.SetString("title", title); |
| 124 | 124 |
| 125 // Fill parent link. | 125 // Fill parent link. |
| 126 if (!parent_resource_id.empty()) { | 126 if (!parent_resource_id.empty()) { |
| 127 scoped_ptr<base::ListValue> parents(new base::ListValue); | 127 std::unique_ptr<base::ListValue> parents(new base::ListValue); |
| 128 parents->Append( | 128 parents->Append( |
| 129 google_apis::util::CreateParentValue(parent_resource_id).release()); | 129 google_apis::util::CreateParentValue(parent_resource_id).release()); |
| 130 root.Set("parents", parents.release()); | 130 root.Set("parents", parents.release()); |
| 131 } | 131 } |
| 132 | 132 |
| 133 if (!modified_date.is_null()) { | 133 if (!modified_date.is_null()) { |
| 134 root.SetString("modifiedDate", | 134 root.SetString("modifiedDate", |
| 135 google_apis::util::FormatTimeAsString(modified_date)); | 135 google_apis::util::FormatTimeAsString(modified_date)); |
| 136 } | 136 } |
| 137 | 137 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 168 base::StringPiece TrimTransportPadding(const base::StringPiece& piece) { | 168 base::StringPiece TrimTransportPadding(const base::StringPiece& piece) { |
| 169 size_t trim_size = 0; | 169 size_t trim_size = 0; |
| 170 while (trim_size < piece.size() && | 170 while (trim_size < piece.size() && |
| 171 (piece[piece.size() - 1 - trim_size] == ' ' || | 171 (piece[piece.size() - 1 - trim_size] == ' ' || |
| 172 piece[piece.size() - 1 - trim_size] == '\t')) { | 172 piece[piece.size() - 1 - trim_size] == '\t')) { |
| 173 ++trim_size; | 173 ++trim_size; |
| 174 } | 174 } |
| 175 return piece.substr(0, piece.size() - trim_size); | 175 return piece.substr(0, piece.size() - trim_size); |
| 176 } | 176 } |
| 177 | 177 |
| 178 void EmptyClosure(scoped_ptr<BatchableDelegate>) { | 178 void EmptyClosure(std::unique_ptr<BatchableDelegate>) {} |
| 179 } | |
| 180 | 179 |
| 181 } // namespace | 180 } // namespace |
| 182 | 181 |
| 183 MultipartHttpResponse::MultipartHttpResponse() : code(HTTP_SUCCESS) { | 182 MultipartHttpResponse::MultipartHttpResponse() : code(HTTP_SUCCESS) { |
| 184 } | 183 } |
| 185 | 184 |
| 186 MultipartHttpResponse::~MultipartHttpResponse() { | 185 MultipartHttpResponse::~MultipartHttpResponse() { |
| 187 } | 186 } |
| 188 | 187 |
| 189 // The |response| must be multipart/mixed format that contains child HTTP | 188 // The |response| must be multipart/mixed format that contains child HTTP |
| (...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 | 825 |
| 827 bool InitiateUploadNewFileRequest::GetContentData( | 826 bool InitiateUploadNewFileRequest::GetContentData( |
| 828 std::string* upload_content_type, | 827 std::string* upload_content_type, |
| 829 std::string* upload_content) { | 828 std::string* upload_content) { |
| 830 *upload_content_type = util::kContentTypeApplicationJson; | 829 *upload_content_type = util::kContentTypeApplicationJson; |
| 831 | 830 |
| 832 base::DictionaryValue root; | 831 base::DictionaryValue root; |
| 833 root.SetString("title", title_); | 832 root.SetString("title", title_); |
| 834 | 833 |
| 835 // Fill parent link. | 834 // Fill parent link. |
| 836 scoped_ptr<base::ListValue> parents(new base::ListValue); | 835 std::unique_ptr<base::ListValue> parents(new base::ListValue); |
| 837 parents->Append(util::CreateParentValue(parent_resource_id_).release()); | 836 parents->Append(util::CreateParentValue(parent_resource_id_).release()); |
| 838 root.Set("parents", parents.release()); | 837 root.Set("parents", parents.release()); |
| 839 | 838 |
| 840 if (!modified_date_.is_null()) | 839 if (!modified_date_.is_null()) |
| 841 root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_)); | 840 root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_)); |
| 842 | 841 |
| 843 if (!last_viewed_by_me_date_.is_null()) { | 842 if (!last_viewed_by_me_date_.is_null()) { |
| 844 root.SetString("lastViewedByMeDate", | 843 root.SetString("lastViewedByMeDate", |
| 845 util::FormatTimeAsString(last_viewed_by_me_date_)); | 844 util::FormatTimeAsString(last_viewed_by_me_date_)); |
| 846 } | 845 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 InitiateUploadRequestBase::GetExtraRequestHeaders()); | 885 InitiateUploadRequestBase::GetExtraRequestHeaders()); |
| 887 headers.push_back(util::GenerateIfMatchHeader(etag_)); | 886 headers.push_back(util::GenerateIfMatchHeader(etag_)); |
| 888 return headers; | 887 return headers; |
| 889 } | 888 } |
| 890 | 889 |
| 891 bool InitiateUploadExistingFileRequest::GetContentData( | 890 bool InitiateUploadExistingFileRequest::GetContentData( |
| 892 std::string* upload_content_type, | 891 std::string* upload_content_type, |
| 893 std::string* upload_content) { | 892 std::string* upload_content) { |
| 894 base::DictionaryValue root; | 893 base::DictionaryValue root; |
| 895 if (!parent_resource_id_.empty()) { | 894 if (!parent_resource_id_.empty()) { |
| 896 scoped_ptr<base::ListValue> parents(new base::ListValue); | 895 std::unique_ptr<base::ListValue> parents(new base::ListValue); |
| 897 parents->Append(util::CreateParentValue(parent_resource_id_).release()); | 896 parents->Append(util::CreateParentValue(parent_resource_id_).release()); |
| 898 root.Set("parents", parents.release()); | 897 root.Set("parents", parents.release()); |
| 899 } | 898 } |
| 900 | 899 |
| 901 if (!title_.empty()) | 900 if (!title_.empty()) |
| 902 root.SetString("title", title_); | 901 root.SetString("title", title_); |
| 903 | 902 |
| 904 if (!modified_date_.is_null()) | 903 if (!modified_date_.is_null()) |
| 905 root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_)); | 904 root.SetString("modifiedDate", util::FormatTimeAsString(modified_date_)); |
| 906 | 905 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 941 local_file_path), | 940 local_file_path), |
| 942 callback_(callback), | 941 callback_(callback), |
| 943 progress_callback_(progress_callback) { | 942 progress_callback_(progress_callback) { |
| 944 DCHECK(!callback_.is_null()); | 943 DCHECK(!callback_.is_null()); |
| 945 } | 944 } |
| 946 | 945 |
| 947 ResumeUploadRequest::~ResumeUploadRequest() {} | 946 ResumeUploadRequest::~ResumeUploadRequest() {} |
| 948 | 947 |
| 949 void ResumeUploadRequest::OnRangeRequestComplete( | 948 void ResumeUploadRequest::OnRangeRequestComplete( |
| 950 const UploadRangeResponse& response, | 949 const UploadRangeResponse& response, |
| 951 scoped_ptr<base::Value> value) { | 950 std::unique_ptr<base::Value> value) { |
| 952 DCHECK(CalledOnValidThread()); | 951 DCHECK(CalledOnValidThread()); |
| 953 ParseFileResourceWithUploadRangeAndRun(callback_, response, std::move(value)); | 952 ParseFileResourceWithUploadRangeAndRun(callback_, response, std::move(value)); |
| 954 } | 953 } |
| 955 | 954 |
| 956 void ResumeUploadRequest::OnURLFetchUploadProgress( | 955 void ResumeUploadRequest::OnURLFetchUploadProgress( |
| 957 const net::URLFetcher* source, | 956 const net::URLFetcher* source, |
| 958 int64_t current, | 957 int64_t current, |
| 959 int64_t total) { | 958 int64_t total) { |
| 960 if (!progress_callback_.is_null()) | 959 if (!progress_callback_.is_null()) |
| 961 progress_callback_.Run(current, total); | 960 progress_callback_.Run(current, total); |
| 962 } | 961 } |
| 963 | 962 |
| 964 //========================== GetUploadStatusRequest ========================== | 963 //========================== GetUploadStatusRequest ========================== |
| 965 | 964 |
| 966 GetUploadStatusRequest::GetUploadStatusRequest( | 965 GetUploadStatusRequest::GetUploadStatusRequest( |
| 967 RequestSender* sender, | 966 RequestSender* sender, |
| 968 const GURL& upload_url, | 967 const GURL& upload_url, |
| 969 int64_t content_length, | 968 int64_t content_length, |
| 970 const UploadRangeCallback& callback) | 969 const UploadRangeCallback& callback) |
| 971 : GetUploadStatusRequestBase(sender, upload_url, content_length), | 970 : GetUploadStatusRequestBase(sender, upload_url, content_length), |
| 972 callback_(callback) { | 971 callback_(callback) { |
| 973 DCHECK(!callback.is_null()); | 972 DCHECK(!callback.is_null()); |
| 974 } | 973 } |
| 975 | 974 |
| 976 GetUploadStatusRequest::~GetUploadStatusRequest() {} | 975 GetUploadStatusRequest::~GetUploadStatusRequest() {} |
| 977 | 976 |
| 978 void GetUploadStatusRequest::OnRangeRequestComplete( | 977 void GetUploadStatusRequest::OnRangeRequestComplete( |
| 979 const UploadRangeResponse& response, | 978 const UploadRangeResponse& response, |
| 980 scoped_ptr<base::Value> value) { | 979 std::unique_ptr<base::Value> value) { |
| 981 DCHECK(CalledOnValidThread()); | 980 DCHECK(CalledOnValidThread()); |
| 982 ParseFileResourceWithUploadRangeAndRun(callback_, response, std::move(value)); | 981 ParseFileResourceWithUploadRangeAndRun(callback_, response, std::move(value)); |
| 983 } | 982 } |
| 984 | 983 |
| 985 //======================= MultipartUploadNewFileDelegate ======================= | 984 //======================= MultipartUploadNewFileDelegate ======================= |
| 986 | 985 |
| 987 MultipartUploadNewFileDelegate::MultipartUploadNewFileDelegate( | 986 MultipartUploadNewFileDelegate::MultipartUploadNewFileDelegate( |
| 988 base::SequencedTaskRunner* task_runner, | 987 base::SequencedTaskRunner* task_runner, |
| 989 const std::string& title, | 988 const std::string& title, |
| 990 const std::string& parent_resource_id, | 989 const std::string& parent_resource_id, |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1454 } else if (last_progress_value_ < child->data_offset + child->data_size && | 1453 } else if (last_progress_value_ < child->data_offset + child->data_size && |
| 1455 child->data_offset + child->data_size < current) { | 1454 child->data_offset + child->data_size < current) { |
| 1456 child->request->NotifyUploadProgress(source, child->data_size, | 1455 child->request->NotifyUploadProgress(source, child->data_size, |
| 1457 child->data_size); | 1456 child->data_size); |
| 1458 } | 1457 } |
| 1459 } | 1458 } |
| 1460 last_progress_value_ = current; | 1459 last_progress_value_ = current; |
| 1461 } | 1460 } |
| 1462 } // namespace drive | 1461 } // namespace drive |
| 1463 } // namespace google_apis | 1462 } // namespace google_apis |
| OLD | NEW |