| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_DELEGATE_H_ | 5 #ifndef WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_DELEGATE_H_ |
| 6 #define WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_DELEGATE_H_ | 6 #define WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_DELEGATE_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 | 24 |
| 25 namespace base { | 25 namespace base { |
| 26 class SequencedTaskRunner; | 26 class SequencedTaskRunner; |
| 27 } | 27 } |
| 28 | 28 |
| 29 namespace content { | 29 namespace content { |
| 30 class SandboxFileSystemBackendDelegateTest; | 30 class SandboxFileSystemBackendDelegateTest; |
| 31 class SandboxFileSystemTestHelper; | 31 class SandboxFileSystemTestHelper; |
| 32 } | 32 } |
| 33 | 33 |
| 34 namespace quota { | 34 namespace storage { |
| 35 class QuotaManagerProxy; | 35 class QuotaManagerProxy; |
| 36 class SpecialStoragePolicy; | 36 class SpecialStoragePolicy; |
| 37 } | 37 } |
| 38 | 38 |
| 39 namespace webkit_blob { | 39 namespace storage { |
| 40 class FileStreamReader; | 40 class FileStreamReader; |
| 41 } | 41 } |
| 42 | 42 |
| 43 namespace fileapi { | 43 namespace storage { |
| 44 | 44 |
| 45 class AsyncFileUtil; | 45 class AsyncFileUtil; |
| 46 class FileStreamWriter; | 46 class FileStreamWriter; |
| 47 class FileSystemFileUtil; | 47 class FileSystemFileUtil; |
| 48 class FileSystemOperationContext; | 48 class FileSystemOperationContext; |
| 49 class FileSystemURL; | 49 class FileSystemURL; |
| 50 class FileSystemUsageCache; | 50 class FileSystemUsageCache; |
| 51 class ObfuscatedFileUtil; | 51 class ObfuscatedFileUtil; |
| 52 class QuotaReservationManager; | 52 class QuotaReservationManager; |
| 53 class SandboxFileSystemBackend; | 53 class SandboxFileSystemBackend; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 73 virtual GURL Next() = 0; | 73 virtual GURL Next() = 0; |
| 74 | 74 |
| 75 // Returns the current origin's information. | 75 // Returns the current origin's information. |
| 76 virtual bool HasFileSystemType(FileSystemType type) const = 0; | 76 virtual bool HasFileSystemType(FileSystemType type) const = 0; |
| 77 }; | 77 }; |
| 78 | 78 |
| 79 // Returns the type directory name in sandbox directory for given |type|. | 79 // Returns the type directory name in sandbox directory for given |type|. |
| 80 static std::string GetTypeString(FileSystemType type); | 80 static std::string GetTypeString(FileSystemType type); |
| 81 | 81 |
| 82 SandboxFileSystemBackendDelegate( | 82 SandboxFileSystemBackendDelegate( |
| 83 quota::QuotaManagerProxy* quota_manager_proxy, | 83 storage::QuotaManagerProxy* quota_manager_proxy, |
| 84 base::SequencedTaskRunner* file_task_runner, | 84 base::SequencedTaskRunner* file_task_runner, |
| 85 const base::FilePath& profile_path, | 85 const base::FilePath& profile_path, |
| 86 quota::SpecialStoragePolicy* special_storage_policy, | 86 storage::SpecialStoragePolicy* special_storage_policy, |
| 87 const FileSystemOptions& file_system_options); | 87 const FileSystemOptions& file_system_options); |
| 88 | 88 |
| 89 virtual ~SandboxFileSystemBackendDelegate(); | 89 virtual ~SandboxFileSystemBackendDelegate(); |
| 90 | 90 |
| 91 // Returns an origin enumerator of sandbox filesystem. | 91 // Returns an origin enumerator of sandbox filesystem. |
| 92 // This method can only be called on the file thread. | 92 // This method can only be called on the file thread. |
| 93 OriginEnumerator* CreateOriginEnumerator(); | 93 OriginEnumerator* CreateOriginEnumerator(); |
| 94 | 94 |
| 95 // Gets a base directory path of the sandboxed filesystem that is | 95 // Gets a base directory path of the sandboxed filesystem that is |
| 96 // specified by |origin_url| and |type|. | 96 // specified by |origin_url| and |type|. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 107 void OpenFileSystem( | 107 void OpenFileSystem( |
| 108 const GURL& origin_url, | 108 const GURL& origin_url, |
| 109 FileSystemType type, | 109 FileSystemType type, |
| 110 OpenFileSystemMode mode, | 110 OpenFileSystemMode mode, |
| 111 const OpenFileSystemCallback& callback, | 111 const OpenFileSystemCallback& callback, |
| 112 const GURL& root_url); | 112 const GURL& root_url); |
| 113 scoped_ptr<FileSystemOperationContext> CreateFileSystemOperationContext( | 113 scoped_ptr<FileSystemOperationContext> CreateFileSystemOperationContext( |
| 114 const FileSystemURL& url, | 114 const FileSystemURL& url, |
| 115 FileSystemContext* context, | 115 FileSystemContext* context, |
| 116 base::File::Error* error_code) const; | 116 base::File::Error* error_code) const; |
| 117 scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader( | 117 scoped_ptr<storage::FileStreamReader> CreateFileStreamReader( |
| 118 const FileSystemURL& url, | 118 const FileSystemURL& url, |
| 119 int64 offset, | 119 int64 offset, |
| 120 const base::Time& expected_modification_time, | 120 const base::Time& expected_modification_time, |
| 121 FileSystemContext* context) const; | 121 FileSystemContext* context) const; |
| 122 scoped_ptr<FileStreamWriter> CreateFileStreamWriter( | 122 scoped_ptr<FileStreamWriter> CreateFileStreamWriter( |
| 123 const FileSystemURL& url, | 123 const FileSystemURL& url, |
| 124 int64 offset, | 124 int64 offset, |
| 125 FileSystemContext* context, | 125 FileSystemContext* context, |
| 126 FileSystemType type) const; | 126 FileSystemType type) const; |
| 127 | 127 |
| 128 // FileSystemQuotaUtil overrides. | 128 // FileSystemQuotaUtil overrides. |
| 129 virtual base::File::Error DeleteOriginDataOnFileTaskRunner( | 129 virtual base::File::Error DeleteOriginDataOnFileTaskRunner( |
| 130 FileSystemContext* context, | 130 FileSystemContext* context, |
| 131 quota::QuotaManagerProxy* proxy, | 131 storage::QuotaManagerProxy* proxy, |
| 132 const GURL& origin_url, | 132 const GURL& origin_url, |
| 133 FileSystemType type) OVERRIDE; | 133 FileSystemType type) OVERRIDE; |
| 134 virtual void GetOriginsForTypeOnFileTaskRunner( | 134 virtual void GetOriginsForTypeOnFileTaskRunner( |
| 135 FileSystemType type, | 135 FileSystemType type, |
| 136 std::set<GURL>* origins) OVERRIDE; | 136 std::set<GURL>* origins) OVERRIDE; |
| 137 virtual void GetOriginsForHostOnFileTaskRunner( | 137 virtual void GetOriginsForHostOnFileTaskRunner( |
| 138 FileSystemType type, | 138 FileSystemType type, |
| 139 const std::string& host, | 139 const std::string& host, |
| 140 std::set<GURL>* origins) OVERRIDE; | 140 std::set<GURL>* origins) OVERRIDE; |
| 141 virtual int64 GetOriginUsageOnFileTaskRunner( | 141 virtual int64 GetOriginUsageOnFileTaskRunner( |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 void CollectOpenFileSystemMetrics(base::File::Error error_code); | 176 void CollectOpenFileSystemMetrics(base::File::Error error_code); |
| 177 | 177 |
| 178 base::SequencedTaskRunner* file_task_runner() { | 178 base::SequencedTaskRunner* file_task_runner() { |
| 179 return file_task_runner_.get(); | 179 return file_task_runner_.get(); |
| 180 } | 180 } |
| 181 | 181 |
| 182 AsyncFileUtil* file_util() { return sandbox_file_util_.get(); } | 182 AsyncFileUtil* file_util() { return sandbox_file_util_.get(); } |
| 183 FileSystemUsageCache* usage_cache() { return file_system_usage_cache_.get(); } | 183 FileSystemUsageCache* usage_cache() { return file_system_usage_cache_.get(); } |
| 184 SandboxQuotaObserver* quota_observer() { return quota_observer_.get(); } | 184 SandboxQuotaObserver* quota_observer() { return quota_observer_.get(); } |
| 185 | 185 |
| 186 quota::SpecialStoragePolicy* special_storage_policy() { | 186 storage::SpecialStoragePolicy* special_storage_policy() { |
| 187 return special_storage_policy_.get(); | 187 return special_storage_policy_.get(); |
| 188 } | 188 } |
| 189 | 189 |
| 190 const FileSystemOptions& file_system_options() const { | 190 const FileSystemOptions& file_system_options() const { |
| 191 return file_system_options_; | 191 return file_system_options_; |
| 192 } | 192 } |
| 193 | 193 |
| 194 FileSystemFileUtil* sync_file_util(); | 194 FileSystemFileUtil* sync_file_util(); |
| 195 | 195 |
| 196 private: | 196 private: |
| (...skipping 28 matching lines...) Expand all Loading... |
| 225 | 225 |
| 226 ObfuscatedFileUtil* obfuscated_file_util(); | 226 ObfuscatedFileUtil* obfuscated_file_util(); |
| 227 | 227 |
| 228 scoped_refptr<base::SequencedTaskRunner> file_task_runner_; | 228 scoped_refptr<base::SequencedTaskRunner> file_task_runner_; |
| 229 | 229 |
| 230 scoped_ptr<AsyncFileUtil> sandbox_file_util_; | 230 scoped_ptr<AsyncFileUtil> sandbox_file_util_; |
| 231 scoped_ptr<FileSystemUsageCache> file_system_usage_cache_; | 231 scoped_ptr<FileSystemUsageCache> file_system_usage_cache_; |
| 232 scoped_ptr<SandboxQuotaObserver> quota_observer_; | 232 scoped_ptr<SandboxQuotaObserver> quota_observer_; |
| 233 scoped_ptr<QuotaReservationManager> quota_reservation_manager_; | 233 scoped_ptr<QuotaReservationManager> quota_reservation_manager_; |
| 234 | 234 |
| 235 scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy_; | 235 scoped_refptr<storage::SpecialStoragePolicy> special_storage_policy_; |
| 236 | 236 |
| 237 FileSystemOptions file_system_options_; | 237 FileSystemOptions file_system_options_; |
| 238 | 238 |
| 239 bool is_filesystem_opened_; | 239 bool is_filesystem_opened_; |
| 240 base::ThreadChecker io_thread_checker_; | 240 base::ThreadChecker io_thread_checker_; |
| 241 | 241 |
| 242 // Accessed only on the file thread. | 242 // Accessed only on the file thread. |
| 243 std::set<GURL> visited_origins_; | 243 std::set<GURL> visited_origins_; |
| 244 | 244 |
| 245 std::set<std::pair<GURL, FileSystemType> > sticky_dirty_origins_; | 245 std::set<std::pair<GURL, FileSystemType> > sticky_dirty_origins_; |
| 246 | 246 |
| 247 std::map<FileSystemType, UpdateObserverList> update_observers_; | 247 std::map<FileSystemType, UpdateObserverList> update_observers_; |
| 248 std::map<FileSystemType, ChangeObserverList> change_observers_; | 248 std::map<FileSystemType, ChangeObserverList> change_observers_; |
| 249 std::map<FileSystemType, AccessObserverList> access_observers_; | 249 std::map<FileSystemType, AccessObserverList> access_observers_; |
| 250 | 250 |
| 251 base::Time next_release_time_for_open_filesystem_stat_; | 251 base::Time next_release_time_for_open_filesystem_stat_; |
| 252 | 252 |
| 253 base::WeakPtrFactory<SandboxFileSystemBackendDelegate> weak_factory_; | 253 base::WeakPtrFactory<SandboxFileSystemBackendDelegate> weak_factory_; |
| 254 | 254 |
| 255 DISALLOW_COPY_AND_ASSIGN(SandboxFileSystemBackendDelegate); | 255 DISALLOW_COPY_AND_ASSIGN(SandboxFileSystemBackendDelegate); |
| 256 }; | 256 }; |
| 257 | 257 |
| 258 } // namespace fileapi | 258 } // namespace storage |
| 259 | 259 |
| 260 #endif // WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_DELEGATE_H_ | 260 #endif // WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_DELEGATE_H_ |
| OLD | NEW |