| Index: chrome/browser/extensions/api/file_handlers/app_file_handler_util.h
|
| diff --git a/chrome/browser/extensions/api/file_handlers/app_file_handler_util.h b/chrome/browser/extensions/api/file_handlers/app_file_handler_util.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..28d19db19486cb3a51b3471aa561e805adc3a0b2
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/api/file_handlers/app_file_handler_util.h
|
| @@ -0,0 +1,79 @@
|
| +// Copyright (c) 2012 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.
|
| +
|
| +#ifndef CHROME_BROWSER_EXTENSIONS_API_FILE_HANDLERS_APP_FILE_HANDLER_UTIL_H_
|
| +#define CHROME_BROWSER_EXTENSIONS_API_FILE_HANDLERS_APP_FILE_HANDLER_UTIL_H_
|
| +
|
| +#include <set>
|
| +#include <string>
|
| +#include <utility>
|
| +#include <vector>
|
| +
|
| +#include "base/callback.h"
|
| +#include "extensions/common/extension.h"
|
| +#include "extensions/common/manifest_handlers/file_handler_info.h"
|
| +
|
| +class Profile;
|
| +
|
| +namespace extensions {
|
| +
|
| +struct EntryInfo;
|
| +struct FileHandlerInfo;
|
| +struct GrantedFileEntry;
|
| +
|
| +// TODO(benwells): move this to platform_apps namespace.
|
| +namespace app_file_handler_util {
|
| +
|
| +extern const char kInvalidParameters[];
|
| +extern const char kSecurityError[];
|
| +
|
| +// Returns the file handler with the specified |handler_id|, or NULL if there
|
| +// is no such handler.
|
| +const FileHandlerInfo* FileHandlerForId(const Extension& app,
|
| + const std::string& handler_id);
|
| +
|
| +// Returns the handlers that can handle all files in |entries|.
|
| +std::vector<const FileHandlerInfo*> FindFileHandlersForEntries(
|
| + const Extension& extension,
|
| + const std::vector<EntryInfo> entries);
|
| +
|
| +bool FileHandlerCanHandleEntry(const FileHandlerInfo& handler,
|
| + const EntryInfo& entry);
|
| +
|
| +// Creates a new file entry and allows |renderer_id| to access |path|. This
|
| +// registers a new file system for |path|.
|
| +GrantedFileEntry CreateFileEntry(Profile* profile,
|
| + const Extension* extension,
|
| + int renderer_id,
|
| + const base::FilePath& path,
|
| + bool is_directory);
|
| +
|
| +// |directory_paths| contain the set of directories out of |paths|.
|
| +// For directories it makes sure they exist at their corresponding |paths|,
|
| +// while for regular files it makes sure they exist (i.e. not links) at |paths|,
|
| +// creating files if needed. If result is successful it calls |on_success|,
|
| +// otherwise calls |on_failure|.
|
| +void PrepareFilesForWritableApp(
|
| + const std::vector<base::FilePath>& paths,
|
| + Profile* profile,
|
| + const std::set<base::FilePath>& directory_paths,
|
| + const base::Closure& on_success,
|
| + const base::Callback<void(const base::FilePath&)>& on_failure);
|
| +
|
| +// Returns whether |extension| has the fileSystem.write permission.
|
| +bool HasFileSystemWritePermission(const Extension* extension);
|
| +
|
| +// Validates a file entry and populates |file_path| with the absolute path if it
|
| +// is valid.
|
| +bool ValidateFileEntryAndGetPath(const std::string& filesystem_name,
|
| + const std::string& filesystem_path,
|
| + int render_process_id,
|
| + base::FilePath* file_path,
|
| + std::string* error);
|
| +
|
| +} // namespace app_file_handler_util
|
| +
|
| +} // namespace extensions
|
| +
|
| +#endif // CHROME_BROWSER_EXTENSIONS_API_FILE_HANDLERS_APP_FILE_HANDLER_UTIL_H_
|
|
|