| 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/browser/fileapi/sandbox_origin_database.h" | 5 #include "webkit/browser/fileapi/sandbox_origin_database.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 if (RepairDatabase(path)) { | 101 if (RepairDatabase(path)) { |
| 102 UMA_HISTOGRAM_ENUMERATION(kDatabaseRepairHistogramLabel, | 102 UMA_HISTOGRAM_ENUMERATION(kDatabaseRepairHistogramLabel, |
| 103 DB_REPAIR_SUCCEEDED, DB_REPAIR_MAX); | 103 DB_REPAIR_SUCCEEDED, DB_REPAIR_MAX); |
| 104 LOG(WARNING) << "Repairing SandboxOriginDatabase completed."; | 104 LOG(WARNING) << "Repairing SandboxOriginDatabase completed."; |
| 105 return true; | 105 return true; |
| 106 } | 106 } |
| 107 UMA_HISTOGRAM_ENUMERATION(kDatabaseRepairHistogramLabel, | 107 UMA_HISTOGRAM_ENUMERATION(kDatabaseRepairHistogramLabel, |
| 108 DB_REPAIR_FAILED, DB_REPAIR_MAX); | 108 DB_REPAIR_FAILED, DB_REPAIR_MAX); |
| 109 // fall through | 109 // fall through |
| 110 case DELETE_ON_CORRUPTION: | 110 case DELETE_ON_CORRUPTION: |
| 111 if (!base::Delete(file_system_directory_, true)) | 111 if (!base::DeleteFile(file_system_directory_, true)) |
| 112 return false; | 112 return false; |
| 113 if (!file_util::CreateDirectory(file_system_directory_)) | 113 if (!file_util::CreateDirectory(file_system_directory_)) |
| 114 return false; | 114 return false; |
| 115 return Init(init_option, FAIL_ON_CORRUPTION); | 115 return Init(init_option, FAIL_ON_CORRUPTION); |
| 116 } | 116 } |
| 117 NOTREACHED(); | 117 NOTREACHED(); |
| 118 return false; | 118 return false; |
| 119 } | 119 } |
| 120 | 120 |
| 121 bool SandboxOriginDatabase::RepairDatabase(const std::string& db_path) { | 121 bool SandboxOriginDatabase::RepairDatabase(const std::string& db_path) { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 } | 160 } |
| 161 } else { | 161 } else { |
| 162 directories.erase(dir_itr); | 162 directories.erase(dir_itr); |
| 163 } | 163 } |
| 164 } | 164 } |
| 165 | 165 |
| 166 // Delete any directories not listed in the origins database. | 166 // Delete any directories not listed in the origins database. |
| 167 for (std::set<base::FilePath>::iterator dir_itr = directories.begin(); | 167 for (std::set<base::FilePath>::iterator dir_itr = directories.begin(); |
| 168 dir_itr != directories.end(); | 168 dir_itr != directories.end(); |
| 169 ++dir_itr) { | 169 ++dir_itr) { |
| 170 if (!base::Delete(file_system_directory_.Append(*dir_itr), | 170 if (!base::DeleteFile(file_system_directory_.Append(*dir_itr), |
| 171 true /* recursive */)) { | 171 true /* recursive */)) { |
| 172 DropDatabase(); | 172 DropDatabase(); |
| 173 return false; | 173 return false; |
| 174 } | 174 } |
| 175 } | 175 } |
| 176 | 176 |
| 177 return true; | 177 return true; |
| 178 } | 178 } |
| 179 | 179 |
| 180 void SandboxOriginDatabase::HandleError( | 180 void SandboxOriginDatabase::HandleError( |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 void SandboxOriginDatabase::DropDatabase() { | 294 void SandboxOriginDatabase::DropDatabase() { |
| 295 db_.reset(); | 295 db_.reset(); |
| 296 } | 296 } |
| 297 | 297 |
| 298 base::FilePath SandboxOriginDatabase::GetDatabasePath() const { | 298 base::FilePath SandboxOriginDatabase::GetDatabasePath() const { |
| 299 return file_system_directory_.Append(kOriginDatabaseName); | 299 return file_system_directory_.Append(kOriginDatabaseName); |
| 300 } | 300 } |
| 301 | 301 |
| 302 void SandboxOriginDatabase::RemoveDatabase() { | 302 void SandboxOriginDatabase::RemoveDatabase() { |
| 303 DropDatabase(); | 303 DropDatabase(); |
| 304 base::Delete(GetDatabasePath(), true /* recursive */); | 304 base::DeleteFile(GetDatabasePath(), true /* recursive */); |
| 305 } | 305 } |
| 306 | 306 |
| 307 bool SandboxOriginDatabase::GetLastPathNumber(int* number) { | 307 bool SandboxOriginDatabase::GetLastPathNumber(int* number) { |
| 308 DCHECK(db_); | 308 DCHECK(db_); |
| 309 DCHECK(number); | 309 DCHECK(number); |
| 310 std::string number_string; | 310 std::string number_string; |
| 311 leveldb::Status status = | 311 leveldb::Status status = |
| 312 db_->Get(leveldb::ReadOptions(), LastPathKey(), &number_string); | 312 db_->Get(leveldb::ReadOptions(), LastPathKey(), &number_string); |
| 313 if (status.ok()) | 313 if (status.ok()) |
| 314 return base::StringToInt(number_string, number); | 314 return base::StringToInt(number_string, number); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 329 db_->Put(leveldb::WriteOptions(), LastPathKey(), std::string("-1")); | 329 db_->Put(leveldb::WriteOptions(), LastPathKey(), std::string("-1")); |
| 330 if (!status.ok()) { | 330 if (!status.ok()) { |
| 331 HandleError(FROM_HERE, status); | 331 HandleError(FROM_HERE, status); |
| 332 return false; | 332 return false; |
| 333 } | 333 } |
| 334 *number = -1; | 334 *number = -1; |
| 335 return true; | 335 return true; |
| 336 } | 336 } |
| 337 | 337 |
| 338 } // namespace fileapi | 338 } // namespace fileapi |
| OLD | NEW |