OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/drive/sync/remove_performer.h" | 5 #include "chrome/browser/chromeos/drive/sync/remove_performer.h" |
6 | 6 |
7 #include "base/sequenced_task_runner.h" | 7 #include "base/sequenced_task_runner.h" |
8 #include "chrome/browser/chromeos/drive/drive.pb.h" | 8 #include "chrome/browser/chromeos/drive/drive.pb.h" |
9 #include "chrome/browser/chromeos/drive/file_system/operation_observer.h" | 9 #include "chrome/browser/chromeos/drive/file_system/operation_observer.h" |
10 #include "chrome/browser/chromeos/drive/file_system_util.h" | 10 #include "chrome/browser/chromeos/drive/file_system_util.h" |
11 #include "chrome/browser/chromeos/drive/job_scheduler.h" | 11 #include "chrome/browser/chromeos/drive/job_scheduler.h" |
12 #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" | 12 #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" |
13 #include "chrome/browser/chromeos/drive/resource_metadata.h" | 13 #include "chrome/browser/chromeos/drive/resource_metadata.h" |
14 #include "chrome/browser/chromeos/drive/sync/entry_revert_performer.h" | 14 #include "chrome/browser/chromeos/drive/sync/entry_revert_performer.h" |
| 15 #include "chrome/browser/drive/drive_api_util.h" |
15 #include "content/public/browser/browser_thread.h" | 16 #include "content/public/browser/browser_thread.h" |
| 17 #include "google_apis/drive/drive_api_parser.h" |
16 #include "google_apis/drive/gdata_wapi_parser.h" | 18 #include "google_apis/drive/gdata_wapi_parser.h" |
17 | 19 |
18 using content::BrowserThread; | 20 using content::BrowserThread; |
19 | 21 |
20 namespace drive { | 22 namespace drive { |
21 namespace internal { | 23 namespace internal { |
22 | 24 |
23 namespace { | 25 namespace { |
24 | 26 |
25 // Updates local metadata and after remote unparenting. | 27 // Updates local metadata and after remote unparenting. |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 callback.Run(error); | 171 callback.Run(error); |
170 } | 172 } |
171 | 173 |
172 void RemovePerformer::UnparentResource(const ClientContext& context, | 174 void RemovePerformer::UnparentResource(const ClientContext& context, |
173 const FileOperationCallback& callback, | 175 const FileOperationCallback& callback, |
174 const std::string& resource_id, | 176 const std::string& resource_id, |
175 const std::string& local_id) { | 177 const std::string& local_id) { |
176 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 178 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
177 DCHECK(!callback.is_null()); | 179 DCHECK(!callback.is_null()); |
178 | 180 |
179 scheduler_->GetResourceEntry( | 181 scheduler_->GetFileResource( |
180 resource_id, | 182 resource_id, |
181 context, | 183 context, |
182 base::Bind(&RemovePerformer::UnparentResourceAfterGetResourceEntry, | 184 base::Bind(&RemovePerformer::UnparentResourceAfterGetFileResource, |
183 weak_ptr_factory_.GetWeakPtr(), context, callback, local_id)); | 185 weak_ptr_factory_.GetWeakPtr(), context, callback, local_id)); |
184 } | 186 } |
185 | 187 |
186 void RemovePerformer::UnparentResourceAfterGetResourceEntry( | 188 void RemovePerformer::UnparentResourceAfterGetFileResource( |
187 const ClientContext& context, | 189 const ClientContext& context, |
188 const FileOperationCallback& callback, | 190 const FileOperationCallback& callback, |
189 const std::string& local_id, | 191 const std::string& local_id, |
190 google_apis::GDataErrorCode status, | 192 google_apis::GDataErrorCode status, |
191 scoped_ptr<google_apis::ResourceEntry> resource_entry) { | 193 scoped_ptr<google_apis::FileResource> file_resource) { |
192 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 194 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
193 DCHECK(!callback.is_null()); | 195 DCHECK(!callback.is_null()); |
194 | 196 |
195 FileError error = GDataToFileError(status); | 197 FileError error = GDataToFileError(status); |
196 if (error == FILE_ERROR_NOT_FOUND) { // Remove local entry when not found. | 198 if (error == FILE_ERROR_NOT_FOUND) { // Remove local entry when not found. |
197 RemoveEntryOnUIThread(blocking_task_runner_.get(), metadata_, local_id, | 199 RemoveEntryOnUIThread(blocking_task_runner_.get(), metadata_, local_id, |
198 callback); | 200 callback); |
199 return; | 201 return; |
200 } | 202 } |
201 | 203 |
202 if (error != FILE_ERROR_OK) { | 204 if (error != FILE_ERROR_OK) { |
203 callback.Run(error); | 205 callback.Run(error); |
204 return; | 206 return; |
205 } | 207 } |
206 | 208 |
207 ResourceEntry entry; | 209 ResourceEntry entry; |
208 std::string parent_resource_id; | 210 std::string parent_resource_id; |
209 if (!ConvertToResourceEntry(*resource_entry, &entry, &parent_resource_id)) { | 211 if (!ConvertToResourceEntry( |
| 212 *util::ConvertFileResourceToResourceEntry(*file_resource), |
| 213 &entry, &parent_resource_id)) { |
210 callback.Run(FILE_ERROR_NOT_A_FILE); | 214 callback.Run(FILE_ERROR_NOT_A_FILE); |
211 return; | 215 return; |
212 } | 216 } |
213 | 217 |
214 if (!entry.shared_with_me()) { | 218 if (!entry.shared_with_me()) { |
215 // shared_with_me() has changed on the server. | 219 // shared_with_me() has changed on the server. |
216 UnparentResourceAfterUpdateRemoteState(callback, local_id, | 220 UnparentResourceAfterUpdateRemoteState(callback, local_id, |
217 google_apis::HTTP_CONFLICT); | 221 google_apis::HTTP_CONFLICT); |
218 return; | 222 return; |
219 } | 223 } |
(...skipping 28 matching lines...) Expand all Loading... |
248 | 252 |
249 base::PostTaskAndReplyWithResult( | 253 base::PostTaskAndReplyWithResult( |
250 blocking_task_runner_.get(), | 254 blocking_task_runner_.get(), |
251 FROM_HERE, | 255 FROM_HERE, |
252 base::Bind(&UpdateLocalStateAfterUnparent, metadata_, local_id), | 256 base::Bind(&UpdateLocalStateAfterUnparent, metadata_, local_id), |
253 callback); | 257 callback); |
254 } | 258 } |
255 | 259 |
256 } // namespace internal | 260 } // namespace internal |
257 } // namespace drive | 261 } // namespace drive |
OLD | NEW |