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/sync_file_system/drive_backend/uninstall_app_task.h" | 5 #include "chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "chrome/browser/drive/drive_api_util.h" | 9 #include "chrome/browser/drive/drive_api_util.h" |
10 #include "chrome/browser/drive/drive_service_interface.h" | 10 #include "chrome/browser/drive/drive_service_interface.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 UninstallAppTask::~UninstallAppTask() { | 34 UninstallAppTask::~UninstallAppTask() { |
35 } | 35 } |
36 | 36 |
37 void UninstallAppTask::RunExclusive(const SyncStatusCallback& callback) { | 37 void UninstallAppTask::RunExclusive(const SyncStatusCallback& callback) { |
38 if (!IsContextReady()) { | 38 if (!IsContextReady()) { |
39 callback.Run(SYNC_STATUS_FAILED); | 39 callback.Run(SYNC_STATUS_FAILED); |
40 return; | 40 return; |
41 } | 41 } |
42 | 42 |
43 if (uninstall_flag_ == RemoteFileSyncService::UNINSTALL_AND_KEEP_REMOTE) { | 43 if (uninstall_flag_ == RemoteFileSyncService::UNINSTALL_AND_KEEP_REMOTE) { |
44 metadata_database()->UnregisterApp(app_id_, callback); | 44 SyncStatusCode status = metadata_database()->UnregisterApp(app_id_); |
| 45 callback.Run(status); |
45 return; | 46 return; |
46 } | 47 } |
47 DCHECK_EQ(RemoteFileSyncService::UNINSTALL_AND_PURGE_REMOTE, uninstall_flag_); | 48 DCHECK_EQ(RemoteFileSyncService::UNINSTALL_AND_PURGE_REMOTE, uninstall_flag_); |
48 | 49 |
49 int64 sync_root_tracker_id = metadata_database()->GetSyncRootTrackerID(); | 50 int64 sync_root_tracker_id = metadata_database()->GetSyncRootTrackerID(); |
50 TrackerIDSet trackers; | 51 TrackerIDSet trackers; |
51 if (!metadata_database()->FindTrackersByParentAndTitle( | 52 if (!metadata_database()->FindTrackersByParentAndTitle( |
52 sync_root_tracker_id, app_id_, &trackers) || | 53 sync_root_tracker_id, app_id_, &trackers) || |
53 !trackers.has_active()) { | 54 !trackers.has_active()) { |
54 callback.Run(SYNC_STATUS_OK); | 55 callback.Run(SYNC_STATUS_OK); |
(...skipping 22 matching lines...) Expand all Loading... |
77 void UninstallAppTask::DidDeleteAppRoot(const SyncStatusCallback& callback, | 78 void UninstallAppTask::DidDeleteAppRoot(const SyncStatusCallback& callback, |
78 int64 change_id, | 79 int64 change_id, |
79 google_apis::GDataErrorCode error) { | 80 google_apis::GDataErrorCode error) { |
80 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); | 81 SyncStatusCode status = GDataErrorCodeToSyncStatusCode(error); |
81 if (status != SYNC_STATUS_OK && | 82 if (status != SYNC_STATUS_OK && |
82 error != google_apis::HTTP_NOT_FOUND) { | 83 error != google_apis::HTTP_NOT_FOUND) { |
83 callback.Run(SYNC_STATUS_FAILED); | 84 callback.Run(SYNC_STATUS_FAILED); |
84 return; | 85 return; |
85 } | 86 } |
86 | 87 |
87 metadata_database()->UnregisterApp(app_id_, callback); | 88 status = metadata_database()->UnregisterApp(app_id_); |
| 89 callback.Run(status); |
88 } | 90 } |
89 | 91 |
90 bool UninstallAppTask::IsContextReady() { | 92 bool UninstallAppTask::IsContextReady() { |
91 return sync_context_->GetMetadataDatabase() && | 93 return sync_context_->GetMetadataDatabase() && |
92 sync_context_->GetDriveService(); | 94 sync_context_->GetDriveService(); |
93 } | 95 } |
94 | 96 |
95 MetadataDatabase* UninstallAppTask::metadata_database() { | 97 MetadataDatabase* UninstallAppTask::metadata_database() { |
96 return sync_context_->GetMetadataDatabase(); | 98 return sync_context_->GetMetadataDatabase(); |
97 } | 99 } |
98 | 100 |
99 drive::DriveServiceInterface* UninstallAppTask::drive_service() { | 101 drive::DriveServiceInterface* UninstallAppTask::drive_service() { |
100 set_used_network(true); | 102 set_used_network(true); |
101 return sync_context_->GetDriveService(); | 103 return sync_context_->GetDriveService(); |
102 } | 104 } |
103 | 105 |
104 } // namespace drive_backend | 106 } // namespace drive_backend |
105 } // namespace sync_file_system | 107 } // namespace sync_file_system |
OLD | NEW |