Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/uninstall_app_task.cc

Issue 558603002: [SyncFS] Make MetadataDatabase operations synchronous (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@01_create
Patch Set: +TODO Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/sync_worker.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/sync_file_system/drive_backend/sync_worker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698