#include "content/browser/file_system/browser_file_system_helper.h"
#include <stddef.h>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/lazy_thread_pool_task_runner.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/thread_pool.h"
#include "build/chromeos_buildflags.h"
#include "content/browser/child_process_security_policy_impl.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/common/content_client.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/drop_data.h"
#include "content/public/common/url_constants.h"
#include "net/base/filename_util.h"
#include "storage/browser/file_system/external_mount_points.h"
#include "storage/browser/file_system/file_permission_policy.h"
#include "storage/browser/file_system/file_system_backend.h"
#include "storage/browser/file_system/file_system_context.h"
#include "storage/browser/file_system/file_system_operation_runner.h"
#include "storage/browser/file_system/file_system_options.h"
#include "storage/browser/file_system/file_system_url.h"
#include "storage/browser/file_system/isolated_context.h"
#include "storage/browser/quota/quota_manager.h"
#include "storage/browser/quota/quota_manager_proxy.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
#include "third_party/leveldatabase/leveldb_chrome.h"
#include "url/gurl.h"
#include "url/url_constants.h"
FileSystemOptions;
namespace content {
namespace {
FileSystemOptions CreateBrowserFileSystemOptions(bool is_incognito) { … }
bool CheckCanReadFileSystemFileOnUIThread(int process_id,
const storage::FileSystemURL& url) { … }
void GrantReadAccessOnUIThread(int process_id,
const base::FilePath& platform_path) { … }
void GetPlatformPathOnFileThread(
scoped_refptr<storage::FileSystemContext> context,
int process_id,
const storage::FileSystemURL& url,
DoGetPlatformPathCB callback,
bool can_read_filesystem_file) { … }
}
scoped_refptr<storage::FileSystemContext> CreateFileSystemContext(
BrowserContext* browser_context,
const base::FilePath& profile_path,
bool is_incognito,
scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy) { … }
bool FileSystemURLIsValid(storage::FileSystemContext* context,
const storage::FileSystemURL& url) { … }
void DoGetPlatformPath(scoped_refptr<storage::FileSystemContext> context,
int process_id,
const GURL& path,
const blink::StorageKey& storage_key,
DoGetPlatformPathCB callback) { … }
void PrepareDropDataForChildProcess(
DropData* drop_data,
ChildProcessSecurityPolicyImpl* security_policy,
int child_id,
const storage::FileSystemContext* file_system_context) { … }
std::string PrepareDataTransferFilenamesForChildProcess(
std::vector<ui::FileInfo>& filenames,
ChildProcessSecurityPolicyImpl* security_policy,
int child_id,
const storage::FileSystemContext* file_system_context) { … }
}