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 "storage/browser/fileapi/obfuscated_file_util.h" | 5 #include "storage/browser/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 880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 | 891 |
892 // No other directories seem exist. Try deleting the entire origin directory. | 892 // No other directories seem exist. Try deleting the entire origin directory. |
893 InitOriginDatabase(origin, false); | 893 InitOriginDatabase(origin, false); |
894 if (origin_database_) { | 894 if (origin_database_) { |
895 origin_database_->RemovePathForOrigin( | 895 origin_database_->RemovePathForOrigin( |
896 storage::GetIdentifierFromOrigin(origin)); | 896 storage::GetIdentifierFromOrigin(origin)); |
897 } | 897 } |
898 return base::DeleteFile(origin_path, true /* recursive */); | 898 return base::DeleteFile(origin_path, true /* recursive */); |
899 } | 899 } |
900 | 900 |
| 901 void ObfuscatedFileUtil::CloseFileSystemForOriginAndType( |
| 902 const GURL& origin, |
| 903 const std::string& type_string) { |
| 904 std::string key = GetDirectoryDatabaseKey(origin, type_string); |
| 905 if (key.empty()) |
| 906 return; |
| 907 DirectoryMap::iterator iter = directories_.find(key); |
| 908 if (iter == directories_.end()) |
| 909 return; |
| 910 scoped_ptr<SandboxDirectoryDatabase> database(iter->second); |
| 911 directories_.erase(iter); |
| 912 } |
| 913 |
901 ObfuscatedFileUtil::AbstractOriginEnumerator* | 914 ObfuscatedFileUtil::AbstractOriginEnumerator* |
902 ObfuscatedFileUtil::CreateOriginEnumerator() { | 915 ObfuscatedFileUtil::CreateOriginEnumerator() { |
903 std::vector<SandboxOriginDatabase::OriginRecord> origins; | 916 std::vector<SandboxOriginDatabase::OriginRecord> origins; |
904 | 917 |
905 InitOriginDatabase(GURL(), false); | 918 InitOriginDatabase(GURL(), false); |
906 return new ObfuscatedOriginEnumerator( | 919 return new ObfuscatedOriginEnumerator( |
907 origin_database_.get(), file_system_directory_); | 920 origin_database_.get(), file_system_directory_); |
908 } | 921 } |
909 | 922 |
910 void ObfuscatedFileUtil::DestroyDirectoryDatabase( | 923 void ObfuscatedFileUtil::DestroyDirectoryDatabase( |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1402 } | 1415 } |
1403 return file.Pass(); | 1416 return file.Pass(); |
1404 } | 1417 } |
1405 | 1418 |
1406 bool ObfuscatedFileUtil::HasIsolatedStorage(const GURL& origin) { | 1419 bool ObfuscatedFileUtil::HasIsolatedStorage(const GURL& origin) { |
1407 return special_storage_policy_.get() && | 1420 return special_storage_policy_.get() && |
1408 special_storage_policy_->HasIsolatedStorage(origin); | 1421 special_storage_policy_->HasIsolatedStorage(origin); |
1409 } | 1422 } |
1410 | 1423 |
1411 } // namespace storage | 1424 } // namespace storage |
OLD | NEW |