Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Side by Side Diff: webkit/browser/fileapi/obfuscated_file_util.h

Issue 145303002: Convert Media Galleries to use base::File (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_OBFUSCATED_FILE_UTIL_H_ 5 #ifndef WEBKIT_BROWSER_FILEAPI_OBFUSCATED_FILE_UTIL_H_
6 #define WEBKIT_BROWSER_FILEAPI_OBFUSCATED_FILE_UTIL_H_ 6 #define WEBKIT_BROWSER_FILEAPI_OBFUSCATED_FILE_UTIL_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/callback_forward.h" 13 #include "base/callback_forward.h"
14 #include "base/files/file.h"
14 #include "base/files/file_path.h" 15 #include "base/files/file_path.h"
15 #include "base/files/file_util_proxy.h" 16 #include "base/files/file_util_proxy.h"
16 #include "base/gtest_prod_util.h" 17 #include "base/gtest_prod_util.h"
17 #include "base/memory/scoped_ptr.h" 18 #include "base/memory/scoped_ptr.h"
18 #include "base/platform_file.h" 19 #include "base/platform_file.h"
19 #include "webkit/browser/fileapi/file_system_file_util.h" 20 #include "webkit/browser/fileapi/file_system_file_util.h"
20 #include "webkit/browser/fileapi/file_system_url.h" 21 #include "webkit/browser/fileapi/file_system_url.h"
21 #include "webkit/browser/fileapi/sandbox_directory_database.h" 22 #include "webkit/browser/fileapi/sandbox_directory_database.h"
22 #include "webkit/browser/fileapi/sandbox_file_system_backend_delegate.h" 23 #include "webkit/browser/fileapi/sandbox_file_system_backend_delegate.h"
23 #include "webkit/browser/webkit_storage_browser_export.h" 24 #include "webkit/browser/webkit_storage_browser_export.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 ObfuscatedFileUtil( 104 ObfuscatedFileUtil(
104 quota::SpecialStoragePolicy* special_storage_policy, 105 quota::SpecialStoragePolicy* special_storage_policy,
105 const base::FilePath& file_system_directory, 106 const base::FilePath& file_system_directory,
106 base::SequencedTaskRunner* file_task_runner, 107 base::SequencedTaskRunner* file_task_runner,
107 const GetTypeStringForURLCallback& get_type_string_for_url, 108 const GetTypeStringForURLCallback& get_type_string_for_url,
108 const std::set<std::string>& known_type_strings, 109 const std::set<std::string>& known_type_strings,
109 SandboxFileSystemBackendDelegate* sandbox_delegate); 110 SandboxFileSystemBackendDelegate* sandbox_delegate);
110 virtual ~ObfuscatedFileUtil(); 111 virtual ~ObfuscatedFileUtil();
111 112
112 // FileSystemFileUtil overrides. 113 // FileSystemFileUtil overrides.
113 virtual base::PlatformFileError CreateOrOpen( 114 virtual base::File::Error CreateOrOpen(
114 FileSystemOperationContext* context, 115 FileSystemOperationContext* context,
115 const FileSystemURL& url, 116 const FileSystemURL& url,
116 int file_flags, 117 int file_flags,
117 base::PlatformFile* file_handle, 118 base::PlatformFile* file_handle,
118 bool* created) OVERRIDE; 119 bool* created) OVERRIDE;
119 virtual base::PlatformFileError Close( 120 virtual base::File::Error Close(
120 FileSystemOperationContext* context, 121 FileSystemOperationContext* context,
121 base::PlatformFile file) OVERRIDE; 122 base::PlatformFile file) OVERRIDE;
122 virtual base::PlatformFileError EnsureFileExists( 123 virtual base::File::Error EnsureFileExists(
123 FileSystemOperationContext* context, 124 FileSystemOperationContext* context,
124 const FileSystemURL& url, bool* created) OVERRIDE; 125 const FileSystemURL& url, bool* created) OVERRIDE;
125 virtual base::PlatformFileError CreateDirectory( 126 virtual base::File::Error CreateDirectory(
126 FileSystemOperationContext* context, 127 FileSystemOperationContext* context,
127 const FileSystemURL& url, 128 const FileSystemURL& url,
128 bool exclusive, 129 bool exclusive,
129 bool recursive) OVERRIDE; 130 bool recursive) OVERRIDE;
130 virtual base::PlatformFileError GetFileInfo( 131 virtual base::File::Error GetFileInfo(
131 FileSystemOperationContext* context, 132 FileSystemOperationContext* context,
132 const FileSystemURL& url, 133 const FileSystemURL& url,
133 base::PlatformFileInfo* file_info, 134 base::File::Info* file_info,
134 base::FilePath* platform_file) OVERRIDE; 135 base::FilePath* platform_file) OVERRIDE;
135 virtual scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator( 136 virtual scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
136 FileSystemOperationContext* context, 137 FileSystemOperationContext* context,
137 const FileSystemURL& root_url) OVERRIDE; 138 const FileSystemURL& root_url) OVERRIDE;
138 virtual base::PlatformFileError GetLocalFilePath( 139 virtual base::File::Error GetLocalFilePath(
139 FileSystemOperationContext* context, 140 FileSystemOperationContext* context,
140 const FileSystemURL& file_system_url, 141 const FileSystemURL& file_system_url,
141 base::FilePath* local_path) OVERRIDE; 142 base::FilePath* local_path) OVERRIDE;
142 virtual base::PlatformFileError Touch( 143 virtual base::File::Error Touch(
143 FileSystemOperationContext* context, 144 FileSystemOperationContext* context,
144 const FileSystemURL& url, 145 const FileSystemURL& url,
145 const base::Time& last_access_time, 146 const base::Time& last_access_time,
146 const base::Time& last_modified_time) OVERRIDE; 147 const base::Time& last_modified_time) OVERRIDE;
147 virtual base::PlatformFileError Truncate( 148 virtual base::File::Error Truncate(
148 FileSystemOperationContext* context, 149 FileSystemOperationContext* context,
149 const FileSystemURL& url, 150 const FileSystemURL& url,
150 int64 length) OVERRIDE; 151 int64 length) OVERRIDE;
151 virtual base::PlatformFileError CopyOrMoveFile( 152 virtual base::File::Error CopyOrMoveFile(
152 FileSystemOperationContext* context, 153 FileSystemOperationContext* context,
153 const FileSystemURL& src_url, 154 const FileSystemURL& src_url,
154 const FileSystemURL& dest_url, 155 const FileSystemURL& dest_url,
155 CopyOrMoveOption option, 156 CopyOrMoveOption option,
156 bool copy) OVERRIDE; 157 bool copy) OVERRIDE;
157 virtual base::PlatformFileError CopyInForeignFile( 158 virtual base::File::Error CopyInForeignFile(
158 FileSystemOperationContext* context, 159 FileSystemOperationContext* context,
159 const base::FilePath& src_file_path, 160 const base::FilePath& src_file_path,
160 const FileSystemURL& dest_url) OVERRIDE; 161 const FileSystemURL& dest_url) OVERRIDE;
161 virtual base::PlatformFileError DeleteFile( 162 virtual base::File::Error DeleteFile(
162 FileSystemOperationContext* context, 163 FileSystemOperationContext* context,
163 const FileSystemURL& url) OVERRIDE; 164 const FileSystemURL& url) OVERRIDE;
164 virtual base::PlatformFileError DeleteDirectory( 165 virtual base::File::Error DeleteDirectory(
165 FileSystemOperationContext* context, 166 FileSystemOperationContext* context,
166 const FileSystemURL& url) OVERRIDE; 167 const FileSystemURL& url) OVERRIDE;
167 virtual webkit_blob::ScopedFile CreateSnapshotFile( 168 virtual webkit_blob::ScopedFile CreateSnapshotFile(
168 FileSystemOperationContext* context, 169 FileSystemOperationContext* context,
169 const FileSystemURL& url, 170 const FileSystemURL& url,
170 base::PlatformFileError* error, 171 base::File::Error* error,
171 base::PlatformFileInfo* file_info, 172 base::File::Info* file_info,
172 base::FilePath* platform_path) OVERRIDE; 173 base::FilePath* platform_path) OVERRIDE;
173 174
174 // Same as the other CreateFileEnumerator, but with recursive support. 175 // Same as the other CreateFileEnumerator, but with recursive support.
175 scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator( 176 scoped_ptr<AbstractFileEnumerator> CreateFileEnumerator(
176 FileSystemOperationContext* context, 177 FileSystemOperationContext* context,
177 const FileSystemURL& root_url, 178 const FileSystemURL& root_url,
178 bool recursive); 179 bool recursive);
179 180
180 // Returns true if the directory |url| is empty. 181 // Returns true if the directory |url| is empty.
181 bool IsDirectoryEmpty( 182 bool IsDirectoryEmpty(
182 FileSystemOperationContext* context, 183 FileSystemOperationContext* context,
183 const FileSystemURL& url); 184 const FileSystemURL& url);
184 185
185 // Gets the topmost directory specific to this origin and type. This will 186 // Gets the topmost directory specific to this origin and type. This will
186 // contain both the directory database's files and all the backing file 187 // contain both the directory database's files and all the backing file
187 // subdirectories. 188 // subdirectories.
188 // Returns the topmost origin directory if |type_string| is empty. 189 // Returns the topmost origin directory if |type_string| is empty.
189 // Returns an empty path if the directory is undefined. 190 // Returns an empty path if the directory is undefined.
190 // If the directory is defined, it will be returned, even if 191 // If the directory is defined, it will be returned, even if
191 // there is a file system error (e.g. the directory doesn't exist on disk and 192 // there is a file system error (e.g. the directory doesn't exist on disk and
192 // |create| is false). Callers should always check |error_code| to make sure 193 // |create| is false). Callers should always check |error_code| to make sure
193 // the returned path is usable. 194 // the returned path is usable.
194 base::FilePath GetDirectoryForOriginAndType( 195 base::FilePath GetDirectoryForOriginAndType(
195 const GURL& origin, 196 const GURL& origin,
196 const std::string& type_string, 197 const std::string& type_string,
197 bool create, 198 bool create,
198 base::PlatformFileError* error_code); 199 base::File::Error* error_code);
199 200
200 // Deletes the topmost directory specific to this origin and type. This will 201 // Deletes the topmost directory specific to this origin and type. This will
201 // delete its directory database. 202 // delete its directory database.
202 // Deletes the topmost origin directory if |type_string| is empty. 203 // Deletes the topmost origin directory if |type_string| is empty.
203 bool DeleteDirectoryForOriginAndType( 204 bool DeleteDirectoryForOriginAndType(
204 const GURL& origin, 205 const GURL& origin,
205 const std::string& type_string); 206 const std::string& type_string);
206 207
207 // This method and all methods of its returned class must be called only on 208 // This method and all methods of its returned class must be called only on
208 // the FILE thread. The caller is responsible for deleting the returned 209 // the FILE thread. The caller is responsible for deleting the returned
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 // (temporary, persistent) file systems. Used only for testing. 241 // (temporary, persistent) file systems. Used only for testing.
241 // Note: this is implemented in sandbox_file_system_backend_delegate.cc. 242 // Note: this is implemented in sandbox_file_system_backend_delegate.cc.
242 static ObfuscatedFileUtil* CreateForTesting( 243 static ObfuscatedFileUtil* CreateForTesting(
243 quota::SpecialStoragePolicy* special_storage_policy, 244 quota::SpecialStoragePolicy* special_storage_policy,
244 const base::FilePath& file_system_directory, 245 const base::FilePath& file_system_directory,
245 base::SequencedTaskRunner* file_task_runner); 246 base::SequencedTaskRunner* file_task_runner);
246 247
247 base::FilePath GetDirectoryForURL( 248 base::FilePath GetDirectoryForURL(
248 const FileSystemURL& url, 249 const FileSystemURL& url,
249 bool create, 250 bool create,
250 base::PlatformFileError* error_code); 251 base::File::Error* error_code);
251 252
252 // This just calls get_type_string_for_url_ callback that is given in ctor. 253 // This just calls get_type_string_for_url_ callback that is given in ctor.
253 std::string CallGetTypeStringForURL(const FileSystemURL& url); 254 std::string CallGetTypeStringForURL(const FileSystemURL& url);
254 255
255 base::PlatformFileError GetFileInfoInternal( 256 base::File::Error GetFileInfoInternal(
256 SandboxDirectoryDatabase* db, 257 SandboxDirectoryDatabase* db,
257 FileSystemOperationContext* context, 258 FileSystemOperationContext* context,
258 const FileSystemURL& url, 259 const FileSystemURL& url,
259 FileId file_id, 260 FileId file_id,
260 FileInfo* local_info, 261 FileInfo* local_info,
261 base::PlatformFileInfo* file_info, 262 base::File::Info* file_info,
262 base::FilePath* platform_file_path); 263 base::FilePath* platform_file_path);
263 264
264 // Creates a new file, both the underlying backing file and the entry in the 265 // Creates a new file, both the underlying backing file and the entry in the
265 // database. |dest_file_info| is an in-out parameter. Supply the name and 266 // database. |dest_file_info| is an in-out parameter. Supply the name and
266 // parent_id; data_path is ignored. On success, data_path will 267 // parent_id; data_path is ignored. On success, data_path will
267 // always be set to the relative path [from the root of the type-specific 268 // always be set to the relative path [from the root of the type-specific
268 // filesystem directory] of a NEW backing file, and handle, if supplied, will 269 // filesystem directory] of a NEW backing file, and handle, if supplied, will
269 // hold open PlatformFile for the backing file, which the caller is 270 // hold open PlatformFile for the backing file, which the caller is
270 // responsible for closing. If you supply a path in |source_path|, it will be 271 // responsible for closing. If you supply a path in |source_path|, it will be
271 // used as a source from which to COPY data. 272 // used as a source from which to COPY data.
272 // Caveat: do not supply handle if you're also supplying a data path. It was 273 // Caveat: do not supply handle if you're also supplying a data path. It was
273 // easier not to support this, and no code has needed it so far, so it will 274 // easier not to support this, and no code has needed it so far, so it will
274 // DCHECK and handle will hold base::kInvalidPlatformFileValue. 275 // DCHECK and handle will hold base::kInvalidPlatformFileValue.
275 base::PlatformFileError CreateFile( 276 base::File::Error CreateFile(
276 FileSystemOperationContext* context, 277 FileSystemOperationContext* context,
277 const base::FilePath& source_file_path, 278 const base::FilePath& source_file_path,
278 const FileSystemURL& dest_url, 279 const FileSystemURL& dest_url,
279 FileInfo* dest_file_info, 280 FileInfo* dest_file_info,
280 int file_flags, 281 int file_flags,
281 base::PlatformFile* handle); 282 base::PlatformFile* handle);
282 283
283 // This converts from a relative path [as is stored in the FileInfo.data_path 284 // This converts from a relative path [as is stored in the FileInfo.data_path
284 // field] to an absolute platform path that can be given to the native 285 // field] to an absolute platform path that can be given to the native
285 // filesystem. 286 // filesystem.
286 base::FilePath DataPathToLocalPath( 287 base::FilePath DataPathToLocalPath(
287 const FileSystemURL& url, 288 const FileSystemURL& url,
288 const base::FilePath& data_file_path); 289 const base::FilePath& data_file_path);
289 290
290 std::string GetDirectoryDatabaseKey(const GURL& origin, 291 std::string GetDirectoryDatabaseKey(const GURL& origin,
291 const std::string& type_string); 292 const std::string& type_string);
292 293
293 // This returns NULL if |create| flag is false and a filesystem does not 294 // This returns NULL if |create| flag is false and a filesystem does not
294 // exist for the given |url|. 295 // exist for the given |url|.
295 // For read operations |create| should be false. 296 // For read operations |create| should be false.
296 SandboxDirectoryDatabase* GetDirectoryDatabase(const FileSystemURL& url, 297 SandboxDirectoryDatabase* GetDirectoryDatabase(const FileSystemURL& url,
297 bool create); 298 bool create);
298 299
299 // Gets the topmost directory specific to this origin. This will 300 // Gets the topmost directory specific to this origin. This will
300 // contain both the filesystem type subdirectories. 301 // contain both the filesystem type subdirectories.
301 base::FilePath GetDirectoryForOrigin(const GURL& origin, 302 base::FilePath GetDirectoryForOrigin(const GURL& origin,
302 bool create, 303 bool create,
303 base::PlatformFileError* error_code); 304 base::File::Error* error_code);
304 305
305 void InvalidateUsageCache(FileSystemOperationContext* context, 306 void InvalidateUsageCache(FileSystemOperationContext* context,
306 const GURL& origin, 307 const GURL& origin,
307 FileSystemType type); 308 FileSystemType type);
308 309
309 void MarkUsed(); 310 void MarkUsed();
310 void DropDatabases(); 311 void DropDatabases();
311 312
312 // Initializes the origin database. |origin_hint| may be used as a hint 313 // Initializes the origin database. |origin_hint| may be used as a hint
313 // for initializing database if it's not empty. 314 // for initializing database if it's not empty.
314 bool InitOriginDatabase(const GURL& origin_hint, bool create); 315 bool InitOriginDatabase(const GURL& origin_hint, bool create);
315 316
316 base::PlatformFileError GenerateNewLocalPath( 317 base::File::Error GenerateNewLocalPath(
317 SandboxDirectoryDatabase* db, 318 SandboxDirectoryDatabase* db,
318 FileSystemOperationContext* context, 319 FileSystemOperationContext* context,
319 const FileSystemURL& url, 320 const FileSystemURL& url,
320 base::FilePath* local_path); 321 base::FilePath* local_path);
321 322
322 base::PlatformFileError CreateOrOpenInternal( 323 base::File::Error CreateOrOpenInternal(
323 FileSystemOperationContext* context, 324 FileSystemOperationContext* context,
324 const FileSystemURL& url, 325 const FileSystemURL& url,
325 int file_flags, 326 int file_flags,
326 base::PlatformFile* file_handle, 327 base::PlatformFile* file_handle,
327 bool* created); 328 bool* created);
328 329
329 bool HasIsolatedStorage(const GURL& origin); 330 bool HasIsolatedStorage(const GURL& origin);
330 331
331 typedef std::map<std::string, SandboxDirectoryDatabase*> DirectoryMap; 332 typedef std::map<std::string, SandboxDirectoryDatabase*> DirectoryMap;
332 DirectoryMap directories_; 333 DirectoryMap directories_;
(...skipping 12 matching lines...) Expand all
345 346
346 // Not owned. 347 // Not owned.
347 SandboxFileSystemBackendDelegate* sandbox_delegate_; 348 SandboxFileSystemBackendDelegate* sandbox_delegate_;
348 349
349 DISALLOW_COPY_AND_ASSIGN(ObfuscatedFileUtil); 350 DISALLOW_COPY_AND_ASSIGN(ObfuscatedFileUtil);
350 }; 351 };
351 352
352 } // namespace fileapi 353 } // namespace fileapi
353 354
354 #endif // WEBKIT_BROWSER_FILEAPI_OBFUSCATED_FILE_UTIL_H_ 355 #endif // WEBKIT_BROWSER_FILEAPI_OBFUSCATED_FILE_UTIL_H_
OLDNEW
« no previous file with comments | « webkit/browser/fileapi/native_file_util_unittest.cc ('k') | webkit/browser/fileapi/obfuscated_file_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698