1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef EXTENSIONS_SHELL_BROWSER_API_FILE_SYSTEM_SHELL_FILE_SYSTEM_DELEGATE_H_
#define EXTENSIONS_SHELL_BROWSER_API_FILE_SYSTEM_SHELL_FILE_SYSTEM_DELEGATE_H_
#include "extensions/browser/api/file_system/file_system_delegate.h"
#include "build/build_config.h"
namespace extensions {
class ConsentProvider;
class ShellFileSystemDelegate : public FileSystemDelegate {
public:
ShellFileSystemDelegate();
ShellFileSystemDelegate(const ShellFileSystemDelegate&) = delete;
ShellFileSystemDelegate& operator=(const ShellFileSystemDelegate&) = delete;
~ShellFileSystemDelegate() override;
// FileSystemDelegate:
base::FilePath GetDefaultDirectory() override;
base::FilePath GetManagedSaveAsDirectory(
content::BrowserContext* browser_context,
const Extension& extension) override;
bool ShowSelectFileDialog(
scoped_refptr<ExtensionFunction> extension_function,
ui::SelectFileDialog::Type type,
const base::FilePath& default_path,
const ui::SelectFileDialog::FileTypeInfo* file_types,
FileSystemDelegate::FilesSelectedCallback files_selected_callback,
base::OnceClosure file_selection_canceled_callback) override;
void ConfirmSensitiveDirectoryAccess(bool has_write_permission,
const std::u16string& app_name,
content::WebContents* web_contents,
base::OnceClosure on_accept,
base::OnceClosure on_cancel) override;
int GetDescriptionIdForAcceptType(const std::string& accept_type) override;
#if BUILDFLAG(IS_CHROMEOS)
void RequestFileSystem(content::BrowserContext* browser_context,
scoped_refptr<ExtensionFunction> requester,
ConsentProvider* consent_provider,
const Extension& extension,
std::string volume_id,
bool writable,
FileSystemCallback success_callback,
ErrorCallback error_callback) override;
void GetVolumeList(content::BrowserContext* browser_context,
VolumeListCallback success_callback,
ErrorCallback error_callback) override;
#endif // BUILDFLAG(IS_CHROMEOS)
SavedFilesServiceInterface* GetSavedFilesService(
content::BrowserContext* browser_context) override;
};
} // namespace extensions
#endif // EXTENSIONS_SHELL_BROWSER_API_FILE_SYSTEM_SHELL_FILE_SYSTEM_DELEGATE_H_
|