Index: chrome/browser/chromeos/gdata/gdata_file_system.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_file_system.cc b/chrome/browser/chromeos/gdata/gdata_file_system.cc |
index d083d5d34ec7ea4344cc0b2570df4fe9d55955aa..2932ec083fb97358c9c4a4648bf74e32dda854a5 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_file_system.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_file_system.cc |
@@ -917,9 +917,13 @@ GDataFileSystem::GetFileFromCacheParams::~GetFileFromCacheParams() { |
// GDataFileSystem class implementation. |
-GDataFileSystem::GDataFileSystem(Profile* profile, |
- DocumentsServiceInterface* documents_service) |
+GDataFileSystem::GDataFileSystem( |
+ Profile* profile, |
+ GDataCache* cache, |
+ DocumentsServiceInterface* documents_service, |
+ const base::SequencedWorkerPool::SequenceToken& sequence_token) |
: profile_(profile), |
+ cache_(cache), |
documents_service_(documents_service), |
on_io_completed_(new base::WaitableEvent( |
true /* manual reset */, true /* initially signaled */)), |
@@ -929,7 +933,7 @@ GDataFileSystem::GDataFileSystem(Profile* profile, |
ui_weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST( |
new base::WeakPtrFactory<GDataFileSystem>(this))), |
ui_weak_ptr_(ui_weak_ptr_factory_->GetWeakPtr()), |
- sequence_token_(BrowserThread::GetBlockingPool()->GetSequenceToken()) { |
+ sequence_token_(sequence_token) { |
// Should be created from the file browser extension API on UI thread. |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
} |
@@ -940,10 +944,6 @@ void GDataFileSystem::Initialize() { |
documents_service_->Initialize(profile_); |
root_.reset(new GDataRootDirectory); |
- const FilePath cache_root_path = GDataCache::GetCacheRootPath(profile_); |
- cache_ = GDataCache::CreateGDataCache(cache_root_path, |
- BrowserThread::GetBlockingPool(), |
- sequence_token_).Pass(); |
PrefService* pref_service = profile_->GetPrefs(); |
hide_hosted_docs_ = pref_service->GetBoolean(prefs::kDisableGDataHostedFiles); |
@@ -1013,8 +1013,6 @@ GDataFileSystem::~GDataFileSystem() { |
// Lock to let root destroy cache map and resource map. |
base::AutoLock lock(lock_); |
root_.reset(); |
- // TODO(satorux): Should not delete this on UI thread. crbug.com/131826. |
- cache_.reset(); |
// Let's make sure that num_pending_tasks_lock_ has been released on all |
// other threads. |
@@ -2036,7 +2034,7 @@ void GDataFileSystem::GetResolvedFileByPath( |
PostBlockingPoolSequencedTaskAndReply( |
FROM_HERE, |
base::Bind(&CreateDocumentJsonFileOnBlockingPool, |
- GetCacheDirectoryPath( |
+ cache_->GetCacheDirectoryPath( |
GDataCache::CACHE_TYPE_TMP_DOCUMENTS), |
GURL(file_proto->alternate_url()), |
file_proto->gdata_entry().resource_id(), |
@@ -2236,7 +2234,7 @@ void GDataFileSystem::FreeDiskSpaceIfNeededFor(int64 num_bytes, |
// First remove temporary files from the cache map. |
cache_->RemoveTemporaryFiles(); |
// Then remove all files under "tmp" directory. |
- RemoveAllFiles(GetCacheDirectoryPath(GDataCache::CACHE_TYPE_TMP)); |
+ RemoveAllFiles(cache_->GetCacheDirectoryPath(GDataCache::CACHE_TYPE_TMP)); |
// Check the disk space again. |
*has_enough_space = HasEnoughSpaceFor(num_bytes); |
@@ -2957,7 +2955,7 @@ void GDataFileSystem::OnGetDocuments(ContentOrigin initial_origin, |
PostBlockingPoolSequencedTask( |
FROM_HERE, |
base::Bind(&SaveFeedOnBlockingPoolForDebugging, |
- GetCacheDirectoryPath( |
+ cache_->GetCacheDirectoryPath( |
GDataCache::CACHE_TYPE_META).Append(file_name), |
base::Passed(&data))); |
#endif |
@@ -3008,7 +3006,7 @@ void GDataFileSystem::LoadRootFeedFromCache( |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
const FilePath path = |
- GetCacheDirectoryPath(GDataCache::CACHE_TYPE_META).Append( |
+ cache_->GetCacheDirectoryPath(GDataCache::CACHE_TYPE_META).Append( |
kFilesystemProtoFile); |
LoadRootFeedParams* params = new LoadRootFeedParams(search_file_path, |
should_load_from_server, |
@@ -3094,7 +3092,7 @@ void GDataFileSystem::SaveFileSystemAsProto() { |
} |
const FilePath path = |
- GetCacheDirectoryPath(GDataCache::CACHE_TYPE_META).Append( |
+ cache_->GetCacheDirectoryPath(GDataCache::CACHE_TYPE_META).Append( |
kFilesystemProtoFile); |
scoped_ptr<std::string> serialized_proto(new std::string()); |
root_->SerializeToString(serialized_proto.get()); |
@@ -3955,23 +3953,6 @@ void GDataFileSystem::SetHideHostedDocuments(bool hide) { |
//===================== GDataFileSystem: Cache entry points ==================== |
-bool GDataFileSystem::IsUnderGDataCacheDirectory(const FilePath& path) const { |
- return cache_->IsUnderGDataCacheDirectory(path); |
-} |
- |
-FilePath GDataFileSystem::GetCacheDirectoryPath( |
- GDataCache::CacheSubDirectoryType sub_dir_type) const { |
- return cache_->GetCacheDirectoryPath(sub_dir_type); |
-} |
- |
-FilePath GDataFileSystem::GetCacheFilePath( |
- const std::string& resource_id, |
- const std::string& md5, |
- GDataCache::CacheSubDirectoryType sub_dir_type, |
- GDataCache::CachedFileOrigin file_origin) const { |
- return cache_->GetCacheFilePath(resource_id, md5, sub_dir_type, file_origin); |
-} |
- |
void GDataFileSystem::StoreToCache(const std::string& resource_id, |
const std::string& md5, |
const FilePath& source_path, |
@@ -4152,7 +4133,7 @@ void GDataFileSystem::InitializeCacheOnBlockingPool() { |
// Change permissions of cache persistent directory to u+rwx,og+x in order to |
// allow archive files in that directory to be mounted by cros-disks. |
error = ChangeFilePermissions( |
- GetCacheDirectoryPath(GDataCache::CACHE_TYPE_PERSISTENT), |
+ cache_->GetCacheDirectoryPath(GDataCache::CACHE_TYPE_PERSISTENT), |
S_IRWXU | S_IXGRP | S_IXOTH); |
if (error != base::PLATFORM_FILE_OK) |
return; |
@@ -4896,7 +4877,7 @@ void GDataFileSystem::ScanCacheDirectory( |
GDataCache::CacheSubDirectoryType sub_dir_type, |
GDataCache::CacheMap* cache_map) { |
file_util::FileEnumerator enumerator( |
- GetCacheDirectoryPath(sub_dir_type), |
+ cache_->GetCacheDirectoryPath(sub_dir_type), |
false, // not recursive |
static_cast<file_util::FileEnumerator::FileType>( |
file_util::FileEnumerator::FILES | |