| Index: webkit/tools/test_shell/simple_database_system.cc
|
| ===================================================================
|
| --- webkit/tools/test_shell/simple_database_system.cc (revision 32068)
|
| +++ webkit/tools/test_shell/simple_database_system.cc (working copy)
|
| @@ -44,8 +44,7 @@
|
| const string16& vfs_file_name, int desired_flags,
|
| base::PlatformFile* dir_handle) {
|
| base::PlatformFile file_handle = base::kInvalidPlatformFileValue;
|
| - FilePath file_name =
|
| - DatabaseUtil::GetFullFilePathForVfsFile(db_tracker_, vfs_file_name);
|
| + FilePath file_name = GetFullFilePathForVfsFile(vfs_file_name);
|
| if (file_name.empty()) {
|
| VfsBackend::OpenTempFileInDirectory(
|
| db_tracker_->DatabaseDirectory(), desired_flags,
|
| @@ -67,8 +66,7 @@
|
| const int kNumDeleteRetries = 3;
|
| int num_retries = 0;
|
| int error_code = SQLITE_OK;
|
| - FilePath file_name =
|
| - DatabaseUtil::GetFullFilePathForVfsFile(db_tracker_, vfs_file_name);
|
| + FilePath file_name = GetFullFilePathForVfsFile(vfs_file_name);
|
| do {
|
| error_code = VfsBackend::DeleteFile(file_name, sync_dir);
|
| } while ((++num_retries < kNumDeleteRetries) &&
|
| @@ -80,12 +78,11 @@
|
|
|
| long SimpleDatabaseSystem::GetFileAttributes(const string16& vfs_file_name) {
|
| return VfsBackend::GetFileAttributes(
|
| - DatabaseUtil::GetFullFilePathForVfsFile(db_tracker_, vfs_file_name));
|
| + GetFullFilePathForVfsFile(vfs_file_name));
|
| }
|
|
|
| long long SimpleDatabaseSystem::GetFileSize(const string16& vfs_file_name) {
|
| - return VfsBackend::GetFileSize(
|
| - DatabaseUtil::GetFullFilePathForVfsFile(db_tracker_, vfs_file_name));
|
| + return VfsBackend::GetFileSize(GetFullFilePathForVfsFile(vfs_file_name));
|
| }
|
|
|
| void SimpleDatabaseSystem::DatabaseOpened(const string16& origin_identifier,
|
| @@ -96,6 +93,8 @@
|
| int64 space_available = 0;
|
| db_tracker_->DatabaseOpened(origin_identifier, database_name, description,
|
| estimated_size, &database_size, &space_available);
|
| + SetFullFilePathsForVfsFile(origin_identifier, database_name);
|
| +
|
| OnDatabaseSizeChanged(origin_identifier, database_name,
|
| database_size, space_available);
|
| }
|
| @@ -139,4 +138,27 @@
|
| void SimpleDatabaseSystem::ClearAllDatabases() {
|
| db_tracker_->CloseTrackerDatabaseAndClearCaches();
|
| file_util::Delete(db_tracker_->DatabaseDirectory(), true);
|
| + file_names_.clear();
|
| }
|
| +
|
| +void SimpleDatabaseSystem::SetFullFilePathsForVfsFile(
|
| + const string16& origin_identifier,
|
| + const string16& database_name) {
|
| + string16 vfs_file_name = origin_identifier + ASCIIToUTF16("/") +
|
| + database_name + ASCIIToUTF16("#");
|
| + FilePath file_name =
|
| + DatabaseUtil::GetFullFilePathForVfsFile(db_tracker_, vfs_file_name);
|
| +
|
| + AutoLock file_names_auto_lock(file_names_lock_);
|
| + file_names_[vfs_file_name] = file_name;
|
| + file_names_[vfs_file_name + ASCIIToUTF16("-journal")] =
|
| + FilePath::FromWStringHack(file_name.ToWStringHack() +
|
| + ASCIIToWide("-journal"));
|
| +}
|
| +
|
| +FilePath SimpleDatabaseSystem::GetFullFilePathForVfsFile(
|
| + const string16& vfs_file_name) {
|
| + AutoLock file_names_auto_lock(file_names_lock_);
|
| + DCHECK(file_names_.find(vfs_file_name) != file_names_.end());
|
| + return file_names_[vfs_file_name];
|
| +}
|
|
|