blob: f7a4c7e1566659bfa3e017c0cb5c03f2e60026d6 [file] [log] [blame]
Marijn Kruisselbrink0e6871a2020-03-06 22:31:461// Copyright 2020 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Austin Sullivanafefb722021-01-14 01:26:395#ifndef CHROME_BROWSER_UI_FILE_SYSTEM_ACCESS_DIALOGS_H_
6#define CHROME_BROWSER_UI_FILE_SYSTEM_ACCESS_DIALOGS_H_
Marijn Kruisselbrink0e6871a2020-03-06 22:31:467
Marijn Kruisselbrink0e6871a2020-03-06 22:31:468#include "base/callback.h"
Avi Drissman1a55a9d62020-03-10 18:56:459#include "base/callback_helpers.h"
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4610#include "build/build_config.h"
Austin Sullivanafefb722021-01-14 01:26:3911#include "chrome/browser/file_system_access/file_system_access_permission_request_manager.h"
12#include "content/public/browser/file_system_access_permission_context.h"
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4613
14namespace base {
15class FilePath;
16}
17
18namespace content {
19class WebContents;
20}
21
22namespace permissions {
23enum class PermissionAction;
24}
25
26namespace url {
27class Origin;
28} // namespace url
29
30// Displays a dialog to ask for write access to the given file or directory for
Austin Sullivanafefb722021-01-14 01:26:3931// the File System Access API.
32void ShowFileSystemAccessPermissionDialog(
33 const FileSystemAccessPermissionRequestManager::RequestData& request,
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4634 base::OnceCallback<void(permissions::PermissionAction result)> callback,
35 content::WebContents* web_contents);
36
37// Displays a dialog to inform the user that the |path| they picked using the
Austin Sullivanafefb722021-01-14 01:26:3938// File System Access API is blocked by chrome. |is_directory| is true if the
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4639// user was selecting a directory, otherwise the user was selecting files within
40// a directory. |callback| is called when the user has dismissed the dialog.
Austin Sullivanafefb722021-01-14 01:26:3941void ShowFileSystemAccessRestrictedDirectoryDialog(
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4642 const url::Origin& origin,
43 const base::FilePath& path,
Austin Sullivanafefb722021-01-14 01:26:3944 content::FileSystemAccessPermissionContext::HandleType handle_type,
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4645 base::OnceCallback<void(
Austin Sullivanafefb722021-01-14 01:26:3946 content::FileSystemAccessPermissionContext::SensitiveDirectoryResult)>
Marijn Kruisselbrink0e6871a2020-03-06 22:31:4647 callback,
48 content::WebContents* web_contents);
49
Austin Sullivanafefb722021-01-14 01:26:3950#endif // CHROME_BROWSER_UI_FILE_SYSTEM_ACCESS_DIALOGS_H_