| Index: chrome/browser/extensions/api/file_system/file_system_api.h
|
| diff --git a/chrome/browser/extensions/api/file_system/file_system_api.h b/chrome/browser/extensions/api/file_system/file_system_api.h
|
| deleted file mode 100644
|
| index d43a8e298394a136dfac0020e77194c3c4873d14..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/file_system/file_system_api.h
|
| +++ /dev/null
|
| @@ -1,329 +0,0 @@
|
| -// 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_SYSTEM_FILE_SYSTEM_API_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_API_FILE_SYSTEM_FILE_SYSTEM_API_H_
|
| -
|
| -#include <memory>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/files/file.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/values.h"
|
| -#include "build/build_config.h"
|
| -#include "chrome/browser/extensions/chrome_extension_function.h"
|
| -#include "chrome/browser/extensions/chrome_extension_function_details.h"
|
| -#include "chrome/common/extensions/api/file_system.h"
|
| -#include "extensions/browser/extension_function.h"
|
| -#include "ui/shell_dialogs/select_file_dialog.h"
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| -#include "chrome/browser/extensions/api/file_system/consent_provider.h"
|
| -#endif
|
| -
|
| -namespace content {
|
| -class WebContents;
|
| -} // namespace content
|
| -
|
| -namespace extensions {
|
| -class ExtensionPrefs;
|
| -
|
| -namespace file_system_api {
|
| -
|
| -// Methods to get and set the path of the directory containing the last file
|
| -// chosen by the user in response to a chrome.fileSystem.chooseEntry() call for
|
| -// the given extension.
|
| -
|
| -// Returns an empty path on failure.
|
| -base::FilePath GetLastChooseEntryDirectory(const ExtensionPrefs* prefs,
|
| - const std::string& extension_id);
|
| -
|
| -void SetLastChooseEntryDirectory(ExtensionPrefs* prefs,
|
| - const std::string& extension_id,
|
| - const base::FilePath& path);
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| -// Dispatches an event about a mounted on unmounted volume in the system to
|
| -// each extension which can request it.
|
| -void DispatchVolumeListChangeEvent(Profile* profile);
|
| -#endif
|
| -
|
| -} // namespace file_system_api
|
| -
|
| -class FileSystemGetDisplayPathFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.getDisplayPath",
|
| - FILESYSTEM_GETDISPLAYPATH)
|
| -
|
| - protected:
|
| - ~FileSystemGetDisplayPathFunction() override {}
|
| - ResponseAction Run() override;
|
| -};
|
| -
|
| -class FileSystemEntryFunction : public ChromeAsyncExtensionFunction {
|
| - protected:
|
| - FileSystemEntryFunction();
|
| -
|
| - ~FileSystemEntryFunction() override {}
|
| -
|
| - // This is called when writable file entries are being returned. The function
|
| - // will ensure the files exist, creating them if necessary, and also check
|
| - // that none of the files are links. If it succeeds it proceeds to
|
| - // RegisterFileSystemsAndSendResponse, otherwise to HandleWritableFileError.
|
| - void PrepareFilesForWritableApp(const std::vector<base::FilePath>& path);
|
| -
|
| - // This will finish the choose file process. This is either called directly
|
| - // from FilesSelected, or from WritableFileChecker. It is called on the UI
|
| - // thread.
|
| - void RegisterFileSystemsAndSendResponse(
|
| - const std::vector<base::FilePath>& path);
|
| -
|
| - // Creates a result dictionary.
|
| - std::unique_ptr<base::DictionaryValue> CreateResult();
|
| -
|
| - // Adds an entry to the result dictionary.
|
| - void AddEntryToResult(const base::FilePath& path,
|
| - const std::string& id_override,
|
| - base::DictionaryValue* result);
|
| -
|
| - // called on the UI thread if there is a problem checking a writable file.
|
| - void HandleWritableFileError(const base::FilePath& error_path);
|
| -
|
| - // Whether multiple entries have been requested.
|
| - bool multiple_;
|
| -
|
| - // Whether a directory has been requested.
|
| - bool is_directory_;
|
| -};
|
| -
|
| -class FileSystemGetWritableEntryFunction : public FileSystemEntryFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.getWritableEntry",
|
| - FILESYSTEM_GETWRITABLEENTRY)
|
| -
|
| - protected:
|
| - ~FileSystemGetWritableEntryFunction() override {}
|
| - bool RunAsync() override;
|
| -
|
| - private:
|
| - void CheckPermissionAndSendResponse();
|
| - void SetIsDirectoryAsync();
|
| -
|
| - // The path to the file for which a writable entry has been requested.
|
| - base::FilePath path_;
|
| -};
|
| -
|
| -class FileSystemIsWritableEntryFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.isWritableEntry",
|
| - FILESYSTEM_ISWRITABLEENTRY)
|
| -
|
| - protected:
|
| - ~FileSystemIsWritableEntryFunction() override {}
|
| - ResponseAction Run() override;
|
| -};
|
| -
|
| -class FileSystemChooseEntryFunction : public FileSystemEntryFunction {
|
| - public:
|
| - // Allow picker UI to be skipped in testing.
|
| - static void SkipPickerAndAlwaysSelectPathForTest(base::FilePath* path);
|
| - static void SkipPickerAndAlwaysSelectPathsForTest(
|
| - std::vector<base::FilePath>* paths);
|
| - static void SkipPickerAndSelectSuggestedPathForTest();
|
| - static void SkipPickerAndAlwaysCancelForTest();
|
| - static void StopSkippingPickerForTest();
|
| - // Allow directory access confirmation UI to be skipped in testing.
|
| - static void SkipDirectoryConfirmationForTest();
|
| - static void AutoCancelDirectoryConfirmationForTest();
|
| - static void StopSkippingDirectoryConfirmationForTest();
|
| - // Call this with the directory for test file paths. On Chrome OS, accessed
|
| - // path needs to be explicitly registered for smooth integration with Google
|
| - // Drive support.
|
| - static void RegisterTempExternalFileSystemForTest(const std::string& name,
|
| - const base::FilePath& path);
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.chooseEntry", FILESYSTEM_CHOOSEENTRY)
|
| -
|
| - typedef std::vector<api::file_system::AcceptOption> AcceptOptions;
|
| -
|
| - static void BuildFileTypeInfo(
|
| - ui::SelectFileDialog::FileTypeInfo* file_type_info,
|
| - const base::FilePath::StringType& suggested_extension,
|
| - const AcceptOptions* accepts,
|
| - const bool* acceptsAllTypes);
|
| - static void BuildSuggestion(const std::string* opt_name,
|
| - base::FilePath* suggested_name,
|
| - base::FilePath::StringType* suggested_extension);
|
| -
|
| - protected:
|
| - ~FileSystemChooseEntryFunction() override {}
|
| - bool RunAsync() override;
|
| - void ShowPicker(const ui::SelectFileDialog::FileTypeInfo& file_type_info,
|
| - ui::SelectFileDialog::Type picker_type);
|
| -
|
| - private:
|
| - void SetInitialPathAndShowPicker(
|
| - const base::FilePath& previous_path,
|
| - const base::FilePath& suggested_name,
|
| - const ui::SelectFileDialog::FileTypeInfo& file_type_info,
|
| - ui::SelectFileDialog::Type picker_type,
|
| - bool is_path_non_native_directory);
|
| -
|
| - // FilesSelected and FileSelectionCanceled are called by the file picker.
|
| - void FilesSelected(const std::vector<base::FilePath>& paths);
|
| - void FileSelectionCanceled();
|
| -
|
| - // Check if the chosen directory is or is an ancestor of a sensitive
|
| - // directory. If so, show a dialog to confirm that the user wants to open the
|
| - // directory. Calls OnDirectoryAccessConfirmed if the directory isn't
|
| - // sensitive or the user chooses to open it. Otherwise, calls
|
| - // FileSelectionCanceled.
|
| - void ConfirmDirectoryAccessAsync(bool non_native_path,
|
| - const std::vector<base::FilePath>& paths,
|
| - content::WebContents* web_contents);
|
| - void OnDirectoryAccessConfirmed(const std::vector<base::FilePath>& paths);
|
| -
|
| - base::FilePath initial_path_;
|
| -};
|
| -
|
| -class FileSystemRetainEntryFunction : public ChromeAsyncExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.retainEntry", FILESYSTEM_RETAINENTRY)
|
| -
|
| - protected:
|
| - ~FileSystemRetainEntryFunction() override {}
|
| - bool RunAsync() override;
|
| -
|
| - private:
|
| - // Retains the file entry referenced by |entry_id| in apps::SavedFilesService.
|
| - // |entry_id| must refer to an entry in an isolated file system. |path| is a
|
| - // path of the entry. |file_info| is base::File::Info of the entry if it can
|
| - // be obtained.
|
| - void RetainFileEntry(const std::string& entry_id,
|
| - const base::FilePath& path,
|
| - std::unique_ptr<base::File::Info> file_info);
|
| -};
|
| -
|
| -class FileSystemIsRestorableFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.isRestorable", FILESYSTEM_ISRESTORABLE)
|
| -
|
| - protected:
|
| - ~FileSystemIsRestorableFunction() override {}
|
| - ResponseAction Run() override;
|
| -};
|
| -
|
| -class FileSystemRestoreEntryFunction : public FileSystemEntryFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.restoreEntry", FILESYSTEM_RESTOREENTRY)
|
| -
|
| - protected:
|
| - ~FileSystemRestoreEntryFunction() override {}
|
| - bool RunAsync() override;
|
| -};
|
| -
|
| -class FileSystemObserveDirectoryFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.observeDirectory",
|
| - FILESYSTEM_OBSERVEDIRECTORY)
|
| -
|
| - protected:
|
| - ~FileSystemObserveDirectoryFunction() override {}
|
| - ResponseAction Run() override;
|
| -};
|
| -
|
| -class FileSystemUnobserveEntryFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.unobserveEntry",
|
| - FILESYSTEM_UNOBSERVEENTRY)
|
| -
|
| - protected:
|
| - ~FileSystemUnobserveEntryFunction() override {}
|
| - ResponseAction Run() override;
|
| -};
|
| -
|
| -class FileSystemGetObservedEntriesFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.getObservedEntries",
|
| - FILESYSTEM_GETOBSERVEDENTRIES);
|
| -
|
| - protected:
|
| - ~FileSystemGetObservedEntriesFunction() override {}
|
| - ResponseAction Run() override;
|
| -};
|
| -
|
| -#if !defined(OS_CHROMEOS)
|
| -// Stub for non Chrome OS operating systems.
|
| -class FileSystemRequestFileSystemFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.requestFileSystem",
|
| - FILESYSTEM_REQUESTFILESYSTEM);
|
| -
|
| - protected:
|
| - ~FileSystemRequestFileSystemFunction() override {}
|
| -
|
| - // UIThreadExtensionFunction overrides.
|
| - ExtensionFunction::ResponseAction Run() override;
|
| -};
|
| -
|
| -// Stub for non Chrome OS operating systems.
|
| -class FileSystemGetVolumeListFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.getVolumeList",
|
| - FILESYSTEM_GETVOLUMELIST);
|
| -
|
| - protected:
|
| - ~FileSystemGetVolumeListFunction() override {}
|
| -
|
| - // UIThreadExtensionFunction overrides.
|
| - ExtensionFunction::ResponseAction Run() override;
|
| -};
|
| -
|
| -#else
|
| -// Requests a file system for the specified volume id.
|
| -class FileSystemRequestFileSystemFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.requestFileSystem",
|
| - FILESYSTEM_REQUESTFILESYSTEM)
|
| - FileSystemRequestFileSystemFunction();
|
| -
|
| - protected:
|
| - ~FileSystemRequestFileSystemFunction() override;
|
| -
|
| - // UIThreadExtensionFunction overrides.
|
| - ExtensionFunction::ResponseAction Run() override;
|
| -
|
| - private:
|
| - // Called when a user grants or rejects permissions for the file system
|
| - // access.
|
| - void OnConsentReceived(const base::WeakPtr<file_manager::Volume>& volume,
|
| - bool writable,
|
| - file_system_api::ConsentProvider::Consent result);
|
| -
|
| - ChromeExtensionFunctionDetails chrome_details_;
|
| -};
|
| -
|
| -// Requests a list of available volumes.
|
| -class FileSystemGetVolumeListFunction : public UIThreadExtensionFunction {
|
| - public:
|
| - DECLARE_EXTENSION_FUNCTION("fileSystem.getVolumeList",
|
| - FILESYSTEM_GETVOLUMELIST);
|
| - FileSystemGetVolumeListFunction();
|
| -
|
| - protected:
|
| - ~FileSystemGetVolumeListFunction() override;
|
| -
|
| - // UIThreadExtensionFunction overrides.
|
| - ExtensionFunction::ResponseAction Run() override;
|
| -
|
| - private:
|
| - ChromeExtensionFunctionDetails chrome_details_;
|
| -};
|
| -#endif
|
| -
|
| -} // namespace extensions
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_API_FILE_SYSTEM_FILE_SYSTEM_API_H_
|
|
|