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 #ifndef WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_H_ | 5 #ifndef WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_H_ |
6 #define WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_H_ | 6 #define WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
66 virtual bool HasFileSystemType(FileSystemType type) const = 0; | 66 virtual bool HasFileSystemType(FileSystemType type) const = 0; |
67 }; | 67 }; |
68 | 68 |
69 SandboxFileSystemBackend( | 69 SandboxFileSystemBackend( |
70 SandboxContext* sandbox_context, | 70 SandboxContext* sandbox_context, |
71 const FileSystemOptions& file_system_options); | 71 const FileSystemOptions& file_system_options); |
72 virtual ~SandboxFileSystemBackend(); | 72 virtual ~SandboxFileSystemBackend(); |
73 | 73 |
74 // FileSystemBackend overrides. | 74 // FileSystemBackend overrides. |
75 virtual bool CanHandleType(FileSystemType type) const OVERRIDE; | 75 virtual bool CanHandleType(FileSystemType type) const OVERRIDE; |
76 virtual void Initialize(const fileapi::FileSystemContext* context) OVERRIDE; | |
76 virtual void InitializeFileSystem( | 77 virtual void InitializeFileSystem( |
77 const GURL& origin_url, | 78 const GURL& origin_url, |
78 FileSystemType type, | 79 FileSystemType type, |
79 OpenFileSystemMode mode, | 80 OpenFileSystemMode mode, |
80 FileSystemContext* context, | 81 FileSystemContext* context, |
81 const InitializeFileSystemCallback& callback) OVERRIDE; | 82 const InitializeFileSystemCallback& callback) OVERRIDE; |
82 virtual FileSystemFileUtil* GetFileUtil(FileSystemType type) OVERRIDE; | 83 virtual FileSystemFileUtil* GetFileUtil(FileSystemType type) OVERRIDE; |
83 virtual AsyncFileUtil* GetAsyncFileUtil(FileSystemType type) OVERRIDE; | 84 virtual AsyncFileUtil* GetAsyncFileUtil(FileSystemType type) OVERRIDE; |
84 virtual CopyOrMoveFileValidatorFactory* GetCopyOrMoveFileValidatorFactory( | 85 virtual CopyOrMoveFileValidatorFactory* GetCopyOrMoveFileValidatorFactory( |
85 FileSystemType type, | 86 FileSystemType type, |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
159 void CollectOpenFileSystemMetrics(base::PlatformFileError error_code); | 160 void CollectOpenFileSystemMetrics(base::PlatformFileError error_code); |
160 | 161 |
161 // Performs API-specific validity checks on the given path |url|. | 162 // Performs API-specific validity checks on the given path |url|. |
162 // Returns true if access to |url| is valid in this filesystem. | 163 // Returns true if access to |url| is valid in this filesystem. |
163 bool IsAccessValid(const FileSystemURL& url) const; | 164 bool IsAccessValid(const FileSystemURL& url) const; |
164 | 165 |
165 void set_enable_temporary_file_system_in_incognito(bool enable) { | 166 void set_enable_temporary_file_system_in_incognito(bool enable) { |
166 enable_temporary_file_system_in_incognito_ = enable; | 167 enable_temporary_file_system_in_incognito_ = enable; |
167 } | 168 } |
168 | 169 |
170 protected: | |
171 SandboxContext* sandbox_context_; // Not owned. | |
172 | |
173 // Observers. | |
174 UpdateObserverList update_observers_; | |
175 ChangeObserverList change_observers_; | |
176 AccessObserverList access_observers_; | |
kinuko
2013/07/23 06:41:51
Can we keep them as private members but provide pr
nhiroki
2013/07/24 05:58:47
Done.
| |
177 | |
178 // Indicates if the usage tracking for FileSystem is enabled or not. | |
179 // The usage tracking is enabled by default and can be disabled by | |
180 // a command-line switch (--disable-file-system-usage-tracking). | |
181 bool enable_usage_tracking_; | |
kinuko
2013/07/23 06:41:51
I wonder if it's cleaner to move this into Sandbox
nhiroki
2013/07/24 05:58:47
Done in http://crrev.com/213070/
| |
182 | |
169 private: | 183 private: |
170 friend class SandboxQuotaObserver; | 184 friend class SandboxQuotaObserver; |
171 friend class SandboxFileSystemTestHelper; | 185 friend class SandboxFileSystemTestHelper; |
172 friend class SandboxFileSystemBackendMigrationTest; | 186 friend class SandboxFileSystemBackendMigrationTest; |
173 friend class SandboxFileSystemBackendOriginEnumeratorTest; | 187 friend class SandboxFileSystemBackendOriginEnumeratorTest; |
174 | 188 |
175 // Returns a path to the usage cache file. | 189 // Returns a path to the usage cache file. |
176 base::FilePath GetUsageCachePathForOriginAndType( | 190 base::FilePath GetUsageCachePathForOriginAndType( |
177 const GURL& origin_url, | 191 const GURL& origin_url, |
178 FileSystemType type); | 192 FileSystemType type); |
(...skipping 15 matching lines...) Expand all Loading... | |
194 static void InvalidateUsageCacheOnFileThread( | 208 static void InvalidateUsageCacheOnFileThread( |
195 ObfuscatedFileUtil* file_util, | 209 ObfuscatedFileUtil* file_util, |
196 const GURL& origin, | 210 const GURL& origin, |
197 FileSystemType type, | 211 FileSystemType type, |
198 FileSystemUsageCache* usage_cache); | 212 FileSystemUsageCache* usage_cache); |
199 | 213 |
200 int64 RecalculateUsage(FileSystemContext* context, | 214 int64 RecalculateUsage(FileSystemContext* context, |
201 const GURL& origin, | 215 const GURL& origin, |
202 FileSystemType type); | 216 FileSystemType type); |
203 | 217 |
204 SandboxContext* sandbox_context_; // Not owned. | |
205 | |
206 FileSystemOptions file_system_options_; | 218 FileSystemOptions file_system_options_; |
207 bool enable_temporary_file_system_in_incognito_; | 219 bool enable_temporary_file_system_in_incognito_; |
208 | 220 |
209 // Acccessed only on the file thread. | 221 // Acccessed only on the file thread. |
210 std::set<GURL> visited_origins_; | 222 std::set<GURL> visited_origins_; |
211 | 223 |
212 // Observers. | |
213 UpdateObserverList update_observers_; | |
214 ChangeObserverList change_observers_; | |
215 AccessObserverList access_observers_; | |
216 | |
217 // Observers for syncable file systems. | |
218 UpdateObserverList syncable_update_observers_; | |
219 ChangeObserverList syncable_change_observers_; | |
220 | |
221 base::Time next_release_time_for_open_filesystem_stat_; | 224 base::Time next_release_time_for_open_filesystem_stat_; |
222 | 225 |
223 std::set<std::pair<GURL, FileSystemType> > sticky_dirty_origins_; | 226 std::set<std::pair<GURL, FileSystemType> > sticky_dirty_origins_; |
224 | 227 |
225 // Indicates if the usage tracking for FileSystem is enabled or not. | |
226 // The usage tracking is enabled by default and can be disabled by | |
227 // a command-line switch (--disable-file-system-usage-tracking). | |
228 bool enable_usage_tracking_; | |
229 | |
230 base::WeakPtrFactory<SandboxFileSystemBackend> weak_factory_; | 228 base::WeakPtrFactory<SandboxFileSystemBackend> weak_factory_; |
231 | 229 |
232 DISALLOW_COPY_AND_ASSIGN(SandboxFileSystemBackend); | 230 DISALLOW_COPY_AND_ASSIGN(SandboxFileSystemBackend); |
233 }; | 231 }; |
234 | 232 |
235 } // namespace fileapi | 233 } // namespace fileapi |
236 | 234 |
237 #endif // WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_H_ | 235 #endif /// WEBKIT_BROWSER_FILEAPI_SANDBOX_FILE_SYSTEM_BACKEND_H_ |
OLD | NEW |