Index: chrome/browser/chromeos/drive/drive_integration_service.cc |
diff --git a/chrome/browser/chromeos/drive/drive_integration_service.cc b/chrome/browser/chromeos/drive/drive_integration_service.cc |
index 3a23798726a207524be91794a1b0bd59acb36351..15765ab74f015c85a6cc575c2a47410e17be0ee0 100644 |
--- a/chrome/browser/chromeos/drive/drive_integration_service.cc |
+++ b/chrome/browser/chromeos/drive/drive_integration_service.cc |
@@ -19,6 +19,8 @@ |
#include "chrome/browser/chromeos/drive/file_write_helper.h" |
#include "chrome/browser/chromeos/drive/job_scheduler.h" |
#include "chrome/browser/chromeos/drive/logging.h" |
+#include "chrome/browser/chromeos/drive/resource_metadata.h" |
+#include "chrome/browser/chromeos/drive/resource_metadata_storage.h" |
#include "chrome/browser/download/download_service.h" |
#include "chrome/browser/download/download_service_factory.h" |
#include "chrome/browser/download/download_util.h" |
@@ -91,9 +93,11 @@ std::string GetDriveUserAgent() { |
// Initializes FileCache and ResourceMetadata. |
// Must be run on the same task runner used by |cache| and |resource_metadata|. |
-FileError InitializeMetadata(const base::FilePath& cache_root_directory, |
- internal::FileCache* cache, |
- internal::ResourceMetadata* resource_metadata) { |
+FileError InitializeMetadata( |
+ const base::FilePath& cache_root_directory, |
+ internal::ResourceMetadataStorage* metadata_storage, |
+ internal::FileCache* cache, |
+ internal::ResourceMetadata* resource_metadata) { |
if (!file_util::CreateDirectory(cache_root_directory.Append( |
util::kMetadataDirectory)) || |
!file_util::CreateDirectory(cache_root_directory.Append( |
@@ -119,6 +123,11 @@ FileError InitializeMetadata(const base::FilePath& cache_root_directory, |
return FILE_ERROR_FAILED; |
} |
+ if (!metadata_storage->Initialize()) { |
+ LOG(WARNING) << "Failed to initialize the metadata storage."; |
+ return FILE_ERROR_FAILED; |
+ } |
+ |
FileError error = resource_metadata->Initialize(); |
LOG_IF(WARNING, error != FILE_ERROR_OK) |
<< "Failed to initialize resource metadata. " << FileErrorToString(error); |
@@ -157,6 +166,9 @@ DriveIntegrationService::DriveIntegrationService( |
GetDriveUserAgent())); |
} |
scheduler_.reset(new JobScheduler(profile_, drive_service_.get())); |
+ metadata_storage_.reset(new internal::ResourceMetadataStorage( |
+ cache_root_directory_.Append(util::kMetadataDirectory), |
+ blocking_task_runner_.get())); |
cache_.reset(new internal::FileCache( |
cache_root_directory_.Append(util::kMetadataDirectory), |
cache_root_directory_.Append(util::kCacheFileDirectory), |
@@ -165,8 +177,7 @@ DriveIntegrationService::DriveIntegrationService( |
drive_app_registry_.reset(new DriveAppRegistry(scheduler_.get())); |
resource_metadata_.reset(new internal::ResourceMetadata( |
- cache_root_directory_.Append(util::kMetadataDirectory), |
- blocking_task_runner_)); |
+ metadata_storage_.get(), blocking_task_runner_)); |
file_system_.reset( |
test_file_system ? test_file_system : new FileSystem( |
@@ -198,6 +209,7 @@ void DriveIntegrationService::Initialize() { |
FROM_HERE, |
base::Bind(&InitializeMetadata, |
cache_root_directory_, |
+ metadata_storage_.get(), |
cache_.get(), |
resource_metadata_.get()), |
base::Bind(&DriveIntegrationService::InitializeAfterMetadataInitialized, |