OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/drive/drive_integration_service.h" | 5 #include "chrome/browser/chromeos/drive/drive_integration_service.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/prefs/pref_change_registrar.h" | 9 #include "base/prefs/pref_change_registrar.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 os_cpu_info.c_str()); | 96 os_cpu_info.c_str()); |
97 } | 97 } |
98 | 98 |
99 // Initializes FileCache and ResourceMetadata. | 99 // Initializes FileCache and ResourceMetadata. |
100 // Must be run on the same task runner used by |cache| and |resource_metadata|. | 100 // Must be run on the same task runner used by |cache| and |resource_metadata|. |
101 FileError InitializeMetadata( | 101 FileError InitializeMetadata( |
102 const base::FilePath& cache_root_directory, | 102 const base::FilePath& cache_root_directory, |
103 internal::ResourceMetadataStorage* metadata_storage, | 103 internal::ResourceMetadataStorage* metadata_storage, |
104 internal::FileCache* cache, | 104 internal::FileCache* cache, |
105 internal::ResourceMetadata* resource_metadata, | 105 internal::ResourceMetadata* resource_metadata, |
106 const ResourceIdCanonicalizer& id_canonicalizer, | |
107 const base::FilePath& downloads_directory) { | 106 const base::FilePath& downloads_directory) { |
108 // Files in temporary directory need not persist across sessions. Clean up | 107 // Files in temporary directory need not persist across sessions. Clean up |
109 // the directory content while initialization. | 108 // the directory content while initialization. |
110 base::DeleteFile(cache_root_directory.Append(kTemporaryFileDirectory), | 109 base::DeleteFile(cache_root_directory.Append(kTemporaryFileDirectory), |
111 true); // recursive | 110 true); // recursive |
112 if (!base::CreateDirectory(cache_root_directory.Append( | 111 if (!base::CreateDirectory(cache_root_directory.Append( |
113 kMetadataDirectory)) || | 112 kMetadataDirectory)) || |
114 !base::CreateDirectory(cache_root_directory.Append( | 113 !base::CreateDirectory(cache_root_directory.Append( |
115 kCacheFileDirectory)) || | 114 kCacheFileDirectory)) || |
116 !base::CreateDirectory(cache_root_directory.Append( | 115 !base::CreateDirectory(cache_root_directory.Append( |
117 kTemporaryFileDirectory))) { | 116 kTemporaryFileDirectory))) { |
118 LOG(WARNING) << "Failed to create directories."; | 117 LOG(WARNING) << "Failed to create directories."; |
119 return FILE_ERROR_FAILED; | 118 return FILE_ERROR_FAILED; |
120 } | 119 } |
121 | 120 |
122 // Change permissions of cache file directory to u+rwx,og+x (711) in order to | 121 // Change permissions of cache file directory to u+rwx,og+x (711) in order to |
123 // allow archive files in that directory to be mounted by cros-disks. | 122 // allow archive files in that directory to be mounted by cros-disks. |
124 base::SetPosixFilePermissions( | 123 base::SetPosixFilePermissions( |
125 cache_root_directory.Append(kCacheFileDirectory), | 124 cache_root_directory.Append(kCacheFileDirectory), |
126 base::FILE_PERMISSION_USER_MASK | | 125 base::FILE_PERMISSION_USER_MASK | |
127 base::FILE_PERMISSION_EXECUTE_BY_GROUP | | 126 base::FILE_PERMISSION_EXECUTE_BY_GROUP | |
128 base::FILE_PERMISSION_EXECUTE_BY_OTHERS); | 127 base::FILE_PERMISSION_EXECUTE_BY_OTHERS); |
129 | 128 |
130 internal::ResourceMetadataStorage::UpgradeOldDB( | 129 internal::ResourceMetadataStorage::UpgradeOldDB( |
131 metadata_storage->directory_path(), id_canonicalizer); | 130 metadata_storage->directory_path()); |
132 | 131 |
133 if (!metadata_storage->Initialize()) { | 132 if (!metadata_storage->Initialize()) { |
134 LOG(WARNING) << "Failed to initialize the metadata storage."; | 133 LOG(WARNING) << "Failed to initialize the metadata storage."; |
135 return FILE_ERROR_FAILED; | 134 return FILE_ERROR_FAILED; |
136 } | 135 } |
137 | 136 |
138 if (!cache->Initialize()) { | 137 if (!cache->Initialize()) { |
139 LOG(WARNING) << "Failed to initialize the cache."; | 138 LOG(WARNING) << "Failed to initialize the cache."; |
140 return FILE_ERROR_FAILED; | 139 return FILE_ERROR_FAILED; |
141 } | 140 } |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 state_ = INITIALIZING; | 477 state_ = INITIALIZING; |
479 | 478 |
480 base::PostTaskAndReplyWithResult( | 479 base::PostTaskAndReplyWithResult( |
481 blocking_task_runner_.get(), | 480 blocking_task_runner_.get(), |
482 FROM_HERE, | 481 FROM_HERE, |
483 base::Bind(&InitializeMetadata, | 482 base::Bind(&InitializeMetadata, |
484 cache_root_directory_, | 483 cache_root_directory_, |
485 metadata_storage_.get(), | 484 metadata_storage_.get(), |
486 cache_.get(), | 485 cache_.get(), |
487 resource_metadata_.get(), | 486 resource_metadata_.get(), |
488 drive_service_->GetResourceIdCanonicalizer(), | |
489 file_manager::util::GetDownloadsFolderForProfile(profile_)), | 487 file_manager::util::GetDownloadsFolderForProfile(profile_)), |
490 base::Bind(&DriveIntegrationService::InitializeAfterMetadataInitialized, | 488 base::Bind(&DriveIntegrationService::InitializeAfterMetadataInitialized, |
491 weak_ptr_factory_.GetWeakPtr())); | 489 weak_ptr_factory_.GetWeakPtr())); |
492 } | 490 } |
493 | 491 |
494 void DriveIntegrationService::InitializeAfterMetadataInitialized( | 492 void DriveIntegrationService::InitializeAfterMetadataInitialized( |
495 FileError error) { | 493 FileError error) { |
496 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 494 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
497 DCHECK_EQ(INITIALIZING, state_); | 495 DCHECK_EQ(INITIALIZING, state_); |
498 | 496 |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 profile, preference_watcher, | 646 profile, preference_watcher, |
649 NULL, std::string(), base::FilePath(), NULL); | 647 NULL, std::string(), base::FilePath(), NULL); |
650 } else { | 648 } else { |
651 service = factory_for_test_->Run(profile); | 649 service = factory_for_test_->Run(profile); |
652 } | 650 } |
653 | 651 |
654 return service; | 652 return service; |
655 } | 653 } |
656 | 654 |
657 } // namespace drive | 655 } // namespace drive |
OLD | NEW |