| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ | 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ |
| 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ | 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/callback.h" |
| 11 #include "base/file_path.h" | 12 #include "base/file_path.h" |
| 12 #include "googleurl/src/gurl.h" | |
| 13 #include "webkit/fileapi/file_system_path_manager.h" | |
| 14 #include "webkit/fileapi/file_system_types.h" | 13 #include "webkit/fileapi/file_system_types.h" |
| 15 | 14 |
| 15 class GURL; |
| 16 |
| 16 namespace fileapi { | 17 namespace fileapi { |
| 17 | 18 |
| 19 class FileSystemFileUtil; |
| 20 |
| 18 // An interface to provide mount-point-specific path-related utilities | 21 // An interface to provide mount-point-specific path-related utilities |
| 19 // and specialized FileSystemFileUtil instance. | 22 // and specialized FileSystemFileUtil instance. |
| 20 class FileSystemMountPointProvider { | 23 class FileSystemMountPointProvider { |
| 21 public: | 24 public: |
| 25 // Callback for GetFileSystemRootPath. |
| 26 // If the request is accepted and the root filesystem for the origin exists |
| 27 // the callback is called with success=true and valid root_path and name. |
| 28 // If the request is accepted, |create| is specified for |
| 29 // GetFileSystemRootPath, and the root directory does not exist, it creates |
| 30 // a new one and calls back with success=true if the creation has succeeded. |
| 31 typedef base::Callback<void(bool /* success */, |
| 32 const FilePath& /* root_path */, |
| 33 const std::string& /* name */)> |
| 34 GetRootPathCallback; |
| 22 virtual ~FileSystemMountPointProvider() {} | 35 virtual ~FileSystemMountPointProvider() {} |
| 23 | 36 |
| 24 // Checks if access to |virtual_path| is allowed from |origin_url|. | 37 // Checks if access to |virtual_path| is allowed from |origin_url|. |
| 25 virtual bool IsAccessAllowed(const GURL& origin_url, | 38 virtual bool IsAccessAllowed(const GURL& origin_url, |
| 26 FileSystemType type, | 39 FileSystemType type, |
| 27 const FilePath& virtual_path) = 0; | 40 const FilePath& virtual_path) = 0; |
| 28 | 41 |
| 29 // Retrieves the root path for the given |origin_url| and |type|, and | 42 // Retrieves the root path for the given |origin_url| and |type|, and |
| 30 // calls the given |callback| with the root path and name. | 43 // calls the given |callback| with the root path and name. |
| 31 // If |create| is true this also creates the directory if it doesn't exist. | 44 // If |create| is true this also creates the directory if it doesn't exist. |
| 32 virtual void ValidateFileSystemRootAndGetURL( | 45 virtual void ValidateFileSystemRootAndGetURL( |
| 33 const GURL& origin_url, | 46 const GURL& origin_url, |
| 34 FileSystemType type, | 47 FileSystemType type, |
| 35 bool create, | 48 bool create, |
| 36 const FileSystemPathManager::GetRootPathCallback& callback) = 0; | 49 const GetRootPathCallback& callback) = 0; |
| 37 | 50 |
| 38 // Like GetFileSystemRootPath, but synchronous, and can be called only while | 51 // Like GetFileSystemRootPath, but synchronous, and can be called only while |
| 39 // running on the file thread. | 52 // running on the file thread. |
| 40 virtual FilePath ValidateFileSystemRootAndGetPathOnFileThread( | 53 virtual FilePath ValidateFileSystemRootAndGetPathOnFileThread( |
| 41 const GURL& origin_url, | 54 const GURL& origin_url, |
| 42 FileSystemType type, | 55 FileSystemType type, |
| 43 const FilePath& virtual_path, | 56 const FilePath& virtual_path, |
| 44 bool create) = 0; | 57 bool create) = 0; |
| 45 | 58 |
| 46 // Checks if a given |name| contains any restricted names/chars in it. | 59 // Checks if a given |name| contains any restricted names/chars in it. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 76 virtual void RemoveMountPoint(FilePath mount_point) = 0; | 89 virtual void RemoveMountPoint(FilePath mount_point) = 0; |
| 77 // Gets virtual path by known filesystem path. Returns false when filesystem | 90 // Gets virtual path by known filesystem path. Returns false when filesystem |
| 78 // path is not exposed by this provider. | 91 // path is not exposed by this provider. |
| 79 virtual bool GetVirtualPath(const FilePath& filesystem_path, | 92 virtual bool GetVirtualPath(const FilePath& filesystem_path, |
| 80 FilePath* virtual_path) = 0; | 93 FilePath* virtual_path) = 0; |
| 81 }; | 94 }; |
| 82 | 95 |
| 83 } // namespace fileapi | 96 } // namespace fileapi |
| 84 | 97 |
| 85 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ | 98 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ |
| OLD | NEW |