Index: chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc b/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc |
index ee73dd72a1f7b791d36f56ff0b0b374d9300d2ef..291d8b5c66df474a866765ce0e0898cf3e3fa2c0 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc |
@@ -9,6 +9,10 @@ |
#include "base/location.h" |
#include "base/logging.h" |
#include "base/message_loop/message_loop_proxy.h" |
+#include "chrome/browser/drive/drive_api_util.h" |
+#include "chrome/browser/drive/drive_service_interface.h" |
+#include "chrome/browser/google_apis/drive_api_parser.h" |
+#include "chrome/browser/google_apis/gdata_wapi_parser.h" |
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" |
#include "chrome/browser/sync_file_system/drive_backend/sync_engine_context.h" |
@@ -176,11 +180,23 @@ void RemoteToLocalSyncer::ResolveRemoteChange( |
void RemoteToLocalSyncer::GetRemoteResource( |
const SyncStatusCallback& callback) { |
- // TODO(tzik): FileMetadata is missing, retrieve and store it to |
- // MetadataDatabase. |
+ drive_service()->GetResourceEntry( |
+ dirty_tracker_.file_id(), |
+ base::Bind(&RemoteToLocalSyncer::DidGetRemoteResource, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ callback, |
+ metadata_database()->GetLargestChangeID())); |
+} |
- NOTIMPLEMENTED(); |
- callback.Run(SYNC_STATUS_FAILED); |
+void RemoteToLocalSyncer::DidGetRemoteResource( |
+ const SyncStatusCallback& callback, |
+ int64 change_id, |
+ google_apis::GDataErrorCode error, |
+ scoped_ptr<google_apis::ResourceEntry> entry) { |
+ metadata_database()->UpdateByFileResource( |
+ change_id, |
+ *drive::util::ConvertResourceEntryToFileResource(*entry), |
+ callback); |
} |
void RemoteToLocalSyncer::HandleDeletion( |