| Index: chrome/browser/devtools/devtools_file_helper.h
|
| diff --git a/chrome/browser/devtools/devtools_file_helper.h b/chrome/browser/devtools/devtools_file_helper.h
|
| index b894a73c0953bba782f4453f7c3564140e4d8e61..42fcb7d46a6c4eeee15092a5f384a7f3ee1b018b 100644
|
| --- a/chrome/browser/devtools/devtools_file_helper.h
|
| +++ b/chrome/browser/devtools/devtools_file_helper.h
|
| @@ -7,6 +7,7 @@
|
|
|
| #include <map>
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "base/basictypes.h"
|
| #include "base/callback.h"
|
| @@ -16,13 +17,34 @@
|
| class FilePath;
|
| class Profile;
|
|
|
| +namespace content {
|
| +class WebContents;
|
| +}
|
| +
|
| class DevToolsFileHelper {
|
| public:
|
| - explicit DevToolsFileHelper(Profile* profile);
|
| + struct FileSystem {
|
| + FileSystem();
|
| + FileSystem(const std::string& file_system_name,
|
| + const std::string& root_url,
|
| + const std::string& file_system_path);
|
| +
|
| + std::string file_system_name;
|
| + std::string root_url;
|
| + std::string file_system_path;
|
| + };
|
| +
|
| + DevToolsFileHelper(content::WebContents* web_contents, Profile* profile);
|
| ~DevToolsFileHelper();
|
|
|
| typedef base::Callback<void(void)> SaveCallback;
|
| typedef base::Callback<void(void)> AppendCallback;
|
| + typedef base::Callback<
|
| + void(const std::vector<DevToolsFileHelper::FileSystem>&)>
|
| + RequestFileSystemsCallback;
|
| + typedef base::Callback<
|
| + void(std::string, const DevToolsFileHelper::FileSystem&)>
|
| + AddFileSystemCallback;
|
|
|
| // Saves |content| to the file and associates its path with given |url|.
|
| // If client is calling this method with given |url| for the first time
|
| @@ -40,13 +62,38 @@ class DevToolsFileHelper {
|
| const std::string& content,
|
| const AppendCallback& callback);
|
|
|
| + // Shows select folder dialog.
|
| + // If user cancels folder selection, passes empty FileSystem struct to
|
| + // |callback|.
|
| + // If selected folder contains magic file, grants renderer read/write
|
| + // permissions, registers isolated file system for it and passes FileSystem
|
| + // struct to |callback|. Saves file system path to prefs.
|
| + // If selected folder does not contain magic file, passes error string to
|
| + // |callback|.
|
| + void AddFileSystem(const AddFileSystemCallback& callback);
|
| +
|
| + // Loads file system paths from prefs, grants permissions and registers
|
| + // isolated file system for those of them that contain magic file and passes
|
| + // FileSystem structs for registered file systems to |callback|.
|
| + void RequestFileSystems(const RequestFileSystemsCallback& callback);
|
| +
|
| + // Removes isolated file system for given |file_system_path|.
|
| + void RemoveFileSystem(const std::string& file_system_path);
|
| +
|
| private:
|
| void SaveAsFileSelected(const std::string& url,
|
| - const std::string& content,
|
| - const SaveCallback& callback,
|
| - const FilePath& path);
|
| + const std::string& content,
|
| + const SaveCallback& callback,
|
| + const FilePath& path);
|
| void SaveAsFileSelectionCanceled();
|
| + void InnerAddFileSystem(const AddFileSystemCallback& callback,
|
| + const FilePath& path);
|
| + void AddValidatedFileSystem(const AddFileSystemCallback& callback,
|
| + const std::vector<FilePath>& permitted_paths);
|
| + void RestoreValidatedFileSystems(const RequestFileSystemsCallback& callback,
|
| + const std::vector<FilePath>& file_paths);
|
|
|
| + content::WebContents* web_contents_;
|
| Profile* profile_;
|
| base::WeakPtrFactory<DevToolsFileHelper> weak_factory_;
|
| typedef std::map<std::string, FilePath> PathsMap;
|
|
|