Index: components/filesystem/file_system_impl.h |
diff --git a/components/filesystem/file_system_impl.h b/components/filesystem/file_system_impl.h |
index 90ea77d799ffd14ceeb0adaf9f11125f4a7bbcfc..2cda44d555830d9eea431f168e455d3247c8039e 100644 |
--- a/components/filesystem/file_system_impl.h |
+++ b/components/filesystem/file_system_impl.h |
@@ -10,27 +10,46 @@ |
#include "mojo/public/cpp/bindings/interface_request.h" |
#include "mojo/public/cpp/bindings/strong_binding.h" |
+namespace base { |
+class FilePath; |
+} |
+ |
namespace mojo { |
class ApplicationConnection; |
} |
namespace filesystem { |
+class FileSystemApp; |
class FileSystemImpl : public FileSystem { |
public: |
- FileSystemImpl(mojo::ApplicationConnection* connection, |
+ FileSystemImpl(FileSystemApp* app, |
+ mojo::ApplicationConnection* connection, |
mojo::InterfaceRequest<FileSystem> request); |
~FileSystemImpl() override; |
// |Files| implementation: |
- // We provide a "private" temporary file system as the default. In Debug |
- // builds, we also provide access to a common file system named "debug" |
- // (stored under ~/MojoDebug). |
+ |
+ // Current valid values for |file_system| are "temp" for a temporary |
+ // filesystem and "origin" for a persistent filesystem bound to the origin of |
+ // the URL of the caller. |
void OpenFileSystem(const mojo::String& file_system, |
mojo::InterfaceRequest<Directory> directory, |
+ FileSystemClientPtr client, |
const OpenFileSystemCallback& callback) override; |
private: |
+ // Gets the system specific toplevel profile directory. |
+ base::FilePath GetSystemProfileDir() const; |
+ |
+ // Takes the origin string from |remote_application_url_|. |
+ std::string GetOriginFromRemoteApplicationURL() const; |
+ |
+ // Sanitizes |origin| so it is an acceptable filesystem name. |
+ void BuildSanitizedOrigin(const std::string& origin, |
+ std::string* sanitized_origin); |
+ |
+ FileSystemApp* app_; |
const std::string remote_application_url_; |
mojo::StrongBinding<FileSystem> binding_; |