| Index: chrome/browser/sync_file_system/sync_file_system_service.cc
|
| diff --git a/chrome/browser/sync_file_system/sync_file_system_service.cc b/chrome/browser/sync_file_system/sync_file_system_service.cc
|
| index 8fb7b71750986440e968d47b60324e708b6a7e27..ba16d0a70f91b3cbfb83b5e7788dfec5e4411a70 100644
|
| --- a/chrome/browser/sync_file_system/sync_file_system_service.cc
|
| +++ b/chrome/browser/sync_file_system/sync_file_system_service.cc
|
| @@ -305,12 +305,10 @@ SyncServiceState SyncFileSystemService::GetSyncServiceState() {
|
| }
|
|
|
| void SyncFileSystemService::GetExtensionStatusMap(
|
| - std::map<GURL, std::string>* status_map) {
|
| - DCHECK(status_map);
|
| - status_map->clear();
|
| - remote_service_->GetOriginStatusMap(status_map);
|
| - if (v2_remote_service_)
|
| - v2_remote_service_->GetOriginStatusMap(status_map);
|
| + const RemoteFileSyncService::StatusMapCallback& callback) {
|
| + remote_service_->GetOriginStatusMap(
|
| + base::Bind(&SyncFileSystemService::DidGetExtensionStatusMap,
|
| + AsWeakPtr(), callback));
|
| }
|
|
|
| void SyncFileSystemService::DumpFiles(const GURL& origin,
|
| @@ -578,6 +576,30 @@ void SyncFileSystemService::DidDumpV2Database(
|
| callback.Run(*v1list);
|
| }
|
|
|
| +void SyncFileSystemService::DidGetExtensionStatusMap(
|
| + const RemoteFileSyncService::StatusMapCallback& callback,
|
| + const RemoteFileSyncService::OriginStatusMap& status_map) {
|
| + if (!v2_remote_service_) {
|
| + callback.Run(status_map);
|
| + return;
|
| + }
|
| +
|
| + v2_remote_service_->GetOriginStatusMap(
|
| + base::Bind(&SyncFileSystemService::DidGetV2ExtensionStatusMap,
|
| + AsWeakPtr(), callback, status_map));
|
| +}
|
| +
|
| +void SyncFileSystemService::DidGetV2ExtensionStatusMap(
|
| + const RemoteFileSyncService::StatusMapCallback& callback,
|
| + const RemoteFileSyncService::OriginStatusMap& status_map_v1,
|
| + const RemoteFileSyncService::OriginStatusMap& status_map_v2) {
|
| + // Merge |status_map_v2| into |status_map_v1|.
|
| + std::map<GURL, std::string> status_map(status_map_v1);
|
| + status_map.insert(status_map_v2.begin(), status_map_v2.end());
|
| +
|
| + callback.Run(status_map);
|
| +}
|
| +
|
| void SyncFileSystemService::SetSyncEnabledForTesting(bool enabled) {
|
| sync_enabled_ = enabled;
|
| remote_service_->SetSyncEnabled(sync_enabled_);
|
|
|