| Index: chrome/browser/extensions/extension_file_browser_private_api.h
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_file_browser_private_api.h (revision 80410)
|
| +++ chrome/browser/extensions/extension_file_browser_private_api.h (working copy)
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -10,27 +10,62 @@
|
|
|
| #include "base/file_path.h"
|
| #include "chrome/browser/extensions/extension_function.h"
|
| +#include "googleurl/src/url_util.h"
|
| #include "webkit/fileapi/file_system_callback_dispatcher.h"
|
|
|
| -// Implements the Chrome Extension local File API.
|
| +// Implements the chrome.fileBrowserPrivate.requestLocalFileSystem method.
|
| +class RequestLocalFileSystemFunctionBase : public AsyncExtensionFunction {
|
| + protected:
|
| + friend class LocalFileSystemCallbackDispatcher;
|
| + // AsyncExtensionFunction overrides.
|
| + virtual bool RunImpl() OVERRIDE;
|
| + void RespondSuccessOnUIThread(const std::string& name,
|
| + const FilePath& path,
|
| + const GURL& file_url);
|
| + void RespondFailedOnUIThread(base::PlatformFileError error_code);
|
| + void RequestOnFileThread(const GURL& source_url, const GURL& file_url);
|
| +};
|
| +
|
| +// Implements the chrome.fileBrowserPrivate.requestLocalFileSystem method.
|
| class RequestLocalFileSystemFunction
|
| - : public AsyncExtensionFunction {
|
| - public:
|
| - RequestLocalFileSystemFunction();
|
| + : public RequestLocalFileSystemFunctionBase {
|
| + private:
|
| + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.requestLocalFileSystem");
|
| +};
|
|
|
| +// Implements the chrome.fileBrowserPrivate.getFileTasks method.
|
| +class GetFileTasksFileBrowserFunction : public AsyncExtensionFunction {
|
| protected:
|
| - virtual ~RequestLocalFileSystemFunction();
|
| + // AsyncExtensionFunction overrides.
|
| + virtual bool RunImpl() OVERRIDE;
|
|
|
| + private:
|
| +
|
| + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.getFileTasks");
|
| +};
|
| +
|
| +
|
| +// Implements the chrome.fileBrowserPrivate.executeTask method.
|
| +class ExecuteTasksFileBrowserFunction : public AsyncExtensionFunction {
|
| + protected:
|
| // AsyncExtensionFunction overrides.
|
| virtual bool RunImpl() OVERRIDE;
|
|
|
| private:
|
| - friend class LocalFileSystemCallbackDispatcher;
|
| - void RespondSuccessOnUIThread(const std::string& name,
|
| - const FilePath& path);
|
| - void RespondFailedOnUIThread(base::PlatformFileError error_code);
|
| + // Grants access for local file system element represented by
|
| + // |origin_file_url| from handler extension identified by
|
| + // |handler_extension_id|. It also modifies |origin_file_url| to make it
|
| + // usable within handler extension - replaces origin extension id with
|
| + // handlers's.
|
| + bool GrantLocalFileSystemAccess(const GURL& origin_file_url,
|
| + const std::string& handler_extension_id,
|
| + GURL* handler_file_url);
|
|
|
| - DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.requestLocalFileSystem");
|
| + // Executes context menu tasks for each element of |files_list|.
|
| + bool ExecuteContextMenuTasks(const std::string& handler_extension_id,
|
| + const std::string& action_id,
|
| + ListValue* files_list);
|
| + DECLARE_EXTENSION_FUNCTION_NAME("fileBrowserPrivate.executeTask");
|
| };
|
|
|
| #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_FILE_BROWSER_PRIVATE_API_H_
|
|
|