Index: webkit/fileapi/file_system_mount_point_provider.h |
=================================================================== |
--- webkit/fileapi/file_system_mount_point_provider.h (revision 81835) |
+++ webkit/fileapi/file_system_mount_point_provider.h (working copy) |
@@ -5,6 +5,9 @@ |
#ifndef WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ |
#define WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ |
+#include <string> |
+#include <vector> |
+ |
#include "base/file_path.h" |
#include "googleurl/src/gurl.h" |
#include "webkit/fileapi/file_system_path_manager.h" |
@@ -18,8 +21,10 @@ |
public: |
virtual ~FileSystemMountPointProvider() {} |
- // Checks if mount point access is allowed from |origin_url|. |
- virtual bool IsAccessAllowed(const GURL& origin_url) = 0; |
+ // Checks if access to |virtual_path| is allowed from |origin_url|. |
+ virtual bool IsAccessAllowed(const GURL& origin_url, |
+ FileSystemType type, |
+ const FilePath& virtual_path) = 0; |
// Retrieves the root path for the given |origin_url| and |type|, and |
// calls the given |callback| with the root path and name. |
@@ -41,8 +46,29 @@ |
// Checks if a given |name| contains any restricted names/chars in it. |
// Callable on any thread. |
virtual bool IsRestrictedFileName(const FilePath& filename) const = 0; |
+ |
+ // Returns the list of top level directories that are exposed by this |
+ // provider. This list is used to set appropriate child process file access |
+ // permissions. |
+ virtual std::vector<FilePath> GetRootDirectories() const = 0; |
}; |
+// An interface to control external file system access permissions. |
+class ExternalFileSystemMountPointProvider |
+ : public FileSystemMountPointProvider { |
+ public: |
+ // Grant access to all external file system from extension identified with |
+ // |extension_id|. |
+ virtual void GrantFullAccessToExtension(const std::string& extension_id) = 0; |
+ // Grants access to |virtual_path| from |origin_url|. |
+ virtual void GrantFileAccessToExtension( |
+ const std::string& extension_id, |
+ const FilePath& virtual_path) = 0; |
+ // Revoke file access from extension identified with |extension_id|. |
+ virtual void RevokeAccessForExtension( |
+ const std::string& extension_id) = 0; |
+}; |
+ |
} // namespace fileapi |
#endif // WEBKIT_FILEAPI_FILE_SYSTEM_MOUNT_POINT_PROVIDER_H_ |