| 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 "webkit/fileapi/obfuscated_file_util.h" | 5 #include "webkit/fileapi/obfuscated_file_util.h" |
| 6 | 6 |
| 7 #include <queue> | 7 #include <queue> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "webkit/fileapi/file_system_util.h" | 24 #include "webkit/fileapi/file_system_util.h" |
| 25 #include "webkit/fileapi/sandbox_mount_point_provider.h" | 25 #include "webkit/fileapi/sandbox_mount_point_provider.h" |
| 26 #include "webkit/quota/quota_manager.h" | 26 #include "webkit/quota/quota_manager.h" |
| 27 | 27 |
| 28 namespace fileapi { | 28 namespace fileapi { |
| 29 | 29 |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 const int64 kFlushDelaySeconds = 10 * 60; // 10 minutes | 32 const int64 kFlushDelaySeconds = 10 * 60; // 10 minutes |
| 33 | 33 |
| 34 const char kOriginDatabaseName[] = "Origins"; | |
| 35 const char kDirectoryDatabaseName[] = "Paths"; | |
| 36 | |
| 37 void InitFileInfo( | 34 void InitFileInfo( |
| 38 FileSystemDirectoryDatabase::FileInfo* file_info, | 35 FileSystemDirectoryDatabase::FileInfo* file_info, |
| 39 FileSystemDirectoryDatabase::FileId parent_id, | 36 FileSystemDirectoryDatabase::FileId parent_id, |
| 40 const FilePath::StringType& file_name) { | 37 const FilePath::StringType& file_name) { |
| 41 DCHECK(file_info); | 38 DCHECK(file_info); |
| 42 file_info->parent_id = parent_id; | 39 file_info->parent_id = parent_id; |
| 43 file_info->name = file_name; | 40 file_info->name = file_name; |
| 44 } | 41 } |
| 45 | 42 |
| 46 bool IsRootDirectory(const FileSystemPath& virtual_path) { | 43 bool IsRootDirectory(const FileSystemPath& virtual_path) { |
| (...skipping 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1036 FileSystemDirectoryDatabase* database = iter->second; | 1033 FileSystemDirectoryDatabase* database = iter->second; |
| 1037 directories_.erase(iter); | 1034 directories_.erase(iter); |
| 1038 delete database; | 1035 delete database; |
| 1039 } | 1036 } |
| 1040 | 1037 |
| 1041 FilePath path = GetDirectoryForOriginAndType(origin, type, false); | 1038 FilePath path = GetDirectoryForOriginAndType(origin, type, false); |
| 1042 if (path.empty()) | 1039 if (path.empty()) |
| 1043 return true; | 1040 return true; |
| 1044 if (!file_util::DirectoryExists(path)) | 1041 if (!file_util::DirectoryExists(path)) |
| 1045 return true; | 1042 return true; |
| 1046 path = path.AppendASCII(kDirectoryDatabaseName); | |
| 1047 return FileSystemDirectoryDatabase::DestroyDatabase(path); | 1043 return FileSystemDirectoryDatabase::DestroyDatabase(path); |
| 1048 } | 1044 } |
| 1049 | 1045 |
| 1050 // static | 1046 // static |
| 1051 int64 ObfuscatedFileUtil::ComputeFilePathCost(const FilePath& path) { | 1047 int64 ObfuscatedFileUtil::ComputeFilePathCost(const FilePath& path) { |
| 1052 return GetPathQuotaUsage(1, VirtualPath::BaseName(path).value().size()); | 1048 return GetPathQuotaUsage(1, VirtualPath::BaseName(path).value().size()); |
| 1053 } | 1049 } |
| 1054 | 1050 |
| 1055 PlatformFileError ObfuscatedFileUtil::GetFileInfoInternal( | 1051 PlatformFileError ObfuscatedFileUtil::GetFileInfoInternal( |
| 1056 FileSystemDirectoryDatabase* db, | 1052 FileSystemDirectoryDatabase* db, |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1247 FilePath path = GetDirectoryForOriginAndType(origin, type, create); | 1243 FilePath path = GetDirectoryForOriginAndType(origin, type, create); |
| 1248 if (path.empty()) | 1244 if (path.empty()) |
| 1249 return NULL; | 1245 return NULL; |
| 1250 if (!file_util::DirectoryExists(path)) { | 1246 if (!file_util::DirectoryExists(path)) { |
| 1251 if (!file_util::CreateDirectory(path)) { | 1247 if (!file_util::CreateDirectory(path)) { |
| 1252 LOG(WARNING) << "Failed to origin+type directory: " << path.value(); | 1248 LOG(WARNING) << "Failed to origin+type directory: " << path.value(); |
| 1253 return NULL; | 1249 return NULL; |
| 1254 } | 1250 } |
| 1255 } | 1251 } |
| 1256 MarkUsed(); | 1252 MarkUsed(); |
| 1257 path = path.AppendASCII(kDirectoryDatabaseName); | |
| 1258 FileSystemDirectoryDatabase* database = new FileSystemDirectoryDatabase(path); | 1253 FileSystemDirectoryDatabase* database = new FileSystemDirectoryDatabase(path); |
| 1259 directories_[key] = database; | 1254 directories_[key] = database; |
| 1260 return database; | 1255 return database; |
| 1261 } | 1256 } |
| 1262 | 1257 |
| 1263 FilePath ObfuscatedFileUtil::GetDirectoryForOrigin( | 1258 FilePath ObfuscatedFileUtil::GetDirectoryForOrigin( |
| 1264 const GURL& origin, bool create) { | 1259 const GURL& origin, bool create) { |
| 1265 if (!InitOriginDatabase(create)) | 1260 if (!InitOriginDatabase(create)) |
| 1266 return FilePath(); | 1261 return FilePath(); |
| 1267 FilePath directory_name; | 1262 FilePath directory_name; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1307 bool ObfuscatedFileUtil::InitOriginDatabase(bool create) { | 1302 bool ObfuscatedFileUtil::InitOriginDatabase(bool create) { |
| 1308 if (!origin_database_.get()) { | 1303 if (!origin_database_.get()) { |
| 1309 if (!create && !file_util::DirectoryExists(file_system_directory_)) | 1304 if (!create && !file_util::DirectoryExists(file_system_directory_)) |
| 1310 return false; | 1305 return false; |
| 1311 if (!file_util::CreateDirectory(file_system_directory_)) { | 1306 if (!file_util::CreateDirectory(file_system_directory_)) { |
| 1312 LOG(WARNING) << "Failed to create FileSystem directory: " << | 1307 LOG(WARNING) << "Failed to create FileSystem directory: " << |
| 1313 file_system_directory_.value(); | 1308 file_system_directory_.value(); |
| 1314 return false; | 1309 return false; |
| 1315 } | 1310 } |
| 1316 origin_database_.reset( | 1311 origin_database_.reset( |
| 1317 new FileSystemOriginDatabase( | 1312 new FileSystemOriginDatabase(file_system_directory_)); |
| 1318 file_system_directory_.AppendASCII(kOriginDatabaseName))); | |
| 1319 } | 1313 } |
| 1320 return true; | 1314 return true; |
| 1321 } | 1315 } |
| 1322 | 1316 |
| 1323 } // namespace fileapi | 1317 } // namespace fileapi |
| OLD | NEW |