// Copyright 2014 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. // // The file contains utility functions to implement chrome.fileSystem API for // file paths that do not directly map to host machine's file system path, such // as Google Drive or virtual volumes provided by fileSystemProvider extensions. #ifndef CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILESYSTEM_API_UTIL_H_ #define CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILESYSTEM_API_UTIL_H_ #include #include #include "base/callback_forward.h" #include "storage/common/fileapi/file_system_types.h" class Profile; namespace base { class FilePath; } // namespace base namespace storage { class FileSystemURL; } // namespace storage namespace file_manager { namespace util { // Obtains whether |type| is non-native file system or not. bool IsNonNativeFileSystemType(storage::FileSystemType type); // Checks whether the given |path| points to a non-local filesystem that // requires special handling. bool IsUnderNonNativeLocalPath(Profile* profile, const base::FilePath& path); // Returns the mime type of the file pointed by |path|, and asynchronously sends // the result to |callback|. void GetNonNativeLocalPathMimeType( Profile* profile, const base::FilePath& path, const base::Callback& callback); // Checks whether the |path| points to a directory, and asynchronously sends // the result to |callback|. void IsNonNativeLocalPathDirectory( Profile* profile, const base::FilePath& path, const base::Callback& callback); // Ensures a file exists at |path|, i.e., it does nothing if a file is already // present, or creates a file there if it isn't, and asynchronously sends to // |callback| whether it succeeded. void PrepareNonNativeLocalFileForWritableApp( Profile* profile, const base::FilePath& path, const base::Callback& callback); } // namespace util } // namespace file_manager #endif // CHROME_BROWSER_CHROMEOS_FILE_MANAGER_FILESYSTEM_API_UTIL_H_