diff options
Diffstat (limited to 'chrome/browser/extensions/extension_file_browser_private_api.h')
-rw-r--r-- | chrome/browser/extensions/extension_file_browser_private_api.h | 103 |
1 files changed, 55 insertions, 48 deletions
diff --git a/chrome/browser/extensions/extension_file_browser_private_api.h b/chrome/browser/extensions/extension_file_browser_private_api.h index 39c3dea..fff7bd0 100644 --- a/chrome/browser/extensions/extension_file_browser_private_api.h +++ b/chrome/browser/extensions/extension_file_browser_private_api.h @@ -16,7 +16,7 @@ #include "webkit/fileapi/file_system_callback_dispatcher.h" #ifdef OS_CHROMEOS -#include "chrome/browser/chromeos/cros/mount_library.h" +#include "chrome/browser/chromeos/disks/disk_mount_manager.h" #endif class GURL; @@ -24,9 +24,12 @@ class GURL; // Implements the chrome.fileBrowserPrivate.requestLocalFileSystem method. class RequestLocalFileSystemFunction : public AsyncExtensionFunction { protected: - friend class LocalFileSystemCallbackDispatcher; // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; + + private: + class LocalFileSystemCallbackDispatcher; + void RespondSuccessOnUIThread(const std::string& name, const GURL& root_path); void RespondFailedOnUIThread(base::PlatformFileError error_code); @@ -99,7 +102,7 @@ class ExecuteTasksFileBrowserFunction : public AsyncExtensionFunction { bool is_directory; }; typedef std::vector<FileDefinition> FileDefinitionList; - friend class ExecuteTasksFileSystemCallbackDispatcher; + class ExecuteTasksFileSystemCallbackDispatcher; // Initates execution of context menu tasks identified with |task_id| for // each element of |files_list|. bool InitiateFileTaskExecution(const std::string& task_id, @@ -125,19 +128,25 @@ class FileBrowserFunction protected: typedef std::vector<GURL> UrlList; typedef std::vector<FilePath> FilePathList; + typedef base::Callback<void(const FilePathList&)> GetLocalPathsCallback; virtual ~FileBrowserFunction(); - // Convert virtual paths to local paths on the file thread. - void GetLocalPathsOnFileThread(const UrlList& file_urls, - void* context); - - // Callback with converted local paths. - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) {} + // Converts virtual paths to local paths by calling GetLocalPathsOnFileThread + // on the file thread and call |callback| on the UI thread with the result. + void GetLocalPathsOnFileThreadAndRunCallbackOnUIThread( + const UrlList& file_urls, + GetLocalPathsCallback callback); // Figure out the tab_id of the hosting tab. int32 GetTabId() const; + + private: + // Converts virtual paths to local paths and call |callback| (on the UI + // thread) with the results. + // This method must be called from the file thread. + void GetLocalPathsOnFileThread(const UrlList& file_urls, + GetLocalPathsCallback callback); }; // Select a single file. Closes the dialog window. @@ -152,11 +161,11 @@ class SelectFileFunction // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; - // FileBrowserFunction overrides. - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; - private: + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const FilePathList& files); + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.selectFile"); }; @@ -172,11 +181,12 @@ class ViewFilesFunction // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; - // FileBrowserFunction overrides. - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; - private: + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const std::string& internal_task_id, + const FilePathList& files); + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.viewFiles"); }; @@ -192,11 +202,11 @@ class SelectFilesFunction // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; - // FileBrowserFunction overrides. - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; - private: + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const FilePathList& files); + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.selectFiles"); }; @@ -225,23 +235,14 @@ class AddMountFunction protected: virtual ~AddMountFunction(); + // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; - // FileBrowserFunction overrides. - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; - private: -#if defined(OS_CHROMEOS) - struct MountParamaters { - MountParamaters(const std::string& type, - const chromeos::MountPathOptions& options) - : mount_type(type), mount_options(options) {} - ~MountParamaters() {} - std::string mount_type; - chromeos::MountPathOptions mount_options; - }; -#endif + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const std::string& mount_type_str, + const FilePathList& files); DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.addMount"); }; @@ -255,12 +256,14 @@ class RemoveMountFunction protected: virtual ~RemoveMountFunction(); - // FileBrowserFunction overrides. + // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; private: + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const FilePathList& files); + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.removeMount"); }; @@ -272,6 +275,7 @@ class GetMountPointsFunction protected: virtual ~GetMountPointsFunction(); + // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; private: @@ -287,13 +291,14 @@ class FormatDeviceFunction protected: virtual ~FormatDeviceFunction(); + // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; -// FileBrowserFunction overrides. - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; - private: + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const FilePathList& files); + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.formatDevice"); }; @@ -305,16 +310,18 @@ class GetSizeStatsFunction protected: virtual ~GetSizeStatsFunction(); - // FileBrowserFunction overrides. + // AsyncExtensionFunction overrides. virtual bool RunImpl() OVERRIDE; - virtual void GetLocalPathsResponseOnUIThread(const FilePathList& files, - void* context) OVERRIDE; private: - void GetSizeStatsCallbackOnUIThread(const char* mount_path, + // A callback method to handle the result of + // GetLocalPathsOnFileThreadAndRunCallbackOnUIThread. + void GetLocalPathsResponseOnUIThread(const FilePathList& files); + + void GetSizeStatsCallbackOnUIThread(const std::string& mount_path, size_t total_size_kb, size_t remaining_size_kb); - void CallGetSizeStatsOnFileThread(const char* mount_path); + void CallGetSizeStatsOnFileThread(const std::string& mount_path); DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.getSizeStats"); }; |