123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- // 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 STORAGE_COMMON_FILE_SYSTEM_FILE_SYSTEM_TYPES_H_
- #define STORAGE_COMMON_FILE_SYSTEM_FILE_SYSTEM_TYPES_H_
- #include "third_party/blink/public/platform/web_file_system_type.h"
- namespace storage {
- enum FileSystemType {
- // Indicates uninitialized or invalid filesystem type.
- kFileSystemTypeUnknown = -1,
- // ------------------------------------------------------------------------
- // Public FileSystem types, that are embedded in filesystem: URL and exposed
- // to WebKit/renderer. Both Chrome and WebKit know how to handle these types.
- // Following two types are for TEMPORARY or PERSISTENT filesystems that
- // can be used by webapps via standard app-facing API
- // as defined in File API: Directories and System.
- // http://www.w3.org/TR/file-system-api/#temporary-vs.-persistent-storage
- // They are sandboxed filesystems; all the files in the filesystems are
- // placed under the profile directory with path obfuscation and quota
- // enforcement.
- kFileSystemTypeTemporary = blink::kWebFileSystemTypeTemporary,
- kFileSystemTypePersistent = blink::kWebFileSystemTypePersistent,
- // Indicates non-sandboxed isolated filesystem.
- kFileSystemTypeIsolated = blink::kWebFileSystemTypeIsolated,
- // Indicates filesystems that are mounted externally via
- // ExternalMountPoints with a well-known mount name. The mounted
- // filesystems can be sandboxed or non-sandboxed. (E.g. Chrome OS mounts
- // non-sandboxed removable media folder with a name 'removable', while
- // chrome.syncFileSystem mounts a sandboxed filesystem with a name
- // 'syncfs'.)
- kFileSystemTypeExternal = blink::kWebFileSystemTypeExternal,
- // ------------------------------------------------------------------------
- // Marks the beginning of internal type enum. (This is not the actual fs type)
- kFileSystemInternalTypeEnumStart = 99,
- // Private FileSystem types, that should not appear in filesystem: URL as
- // WebKit has no idea how to handle those types.
- //
- // One can register (mount) a new file system with a private file system type
- // using IsolatedContext. Files in such file systems can be accessed via
- // either Isolated or External public file system types (depending on
- // how the file system is registered).
- // See the comments for IsolatedContext and/or FileSystemURL for more details.
- // Should be used only for testing.
- kFileSystemTypeTest,
- // Indicates a local filesystem where we can access files using local path.
- kFileSystemTypeLocal,
- // Indicates a local filesystem where we can access files using local path,
- // but with restricted access.
- // Restricted local file system is in read-only mode.
- kFileSystemTypeRestrictedLocal,
- // Indicates a transient, isolated file system for dragged files (which could
- // contain multiple dragged paths in the virtual root).
- kFileSystemTypeDragged,
- // Indicates media filesystem which we can access with same manner to
- // regular filesystem.
- kFileSystemTypeLocalMedia,
- // Indicates media filesystem to which we need special protocol to access,
- // such as MTP or PTP.
- kFileSystemTypeDeviceMedia,
- // Indicates a Syncable sandboxed filesystem which can be backed by a
- // cloud storage service.
- kFileSystemTypeSyncable,
- // Indicates a special filesystem type for internal file sync operation
- // for Syncable sandboxed filesystems. The file system is overlayed, i.e.
- // points to the same sandboxed filesystem as that of kFileSystemTypeSyncable,
- // but the changes made with this filesystem type are not recorded for
- // further sync.
- kFileSystemTypeSyncableForInternalSync,
- // Indicates an external filesystem accessible by file paths from platform
- // Apps. As of writing, on non Chrome OS platform, this is merely a
- // kFileSystemTypeLocal. On Chrome OS, the path is parsed by
- // the handlers of kFileSystemTypeExternal.
- kFileSystemTypeLocalForPlatformApp,
- // Indicates an isolated filesystem which is supposed to contain one
- // temporary which is supposed to go away when the last reference of
- // its snapshot is dropped.
- // This type is useful for creating a blob reference for a temporary
- // file which must go away when the blob's last reference is dropped.
- kFileSystemTypeForTransientFile,
- // A filesystem that is mounted via the FileSystemProvider API.
- kFileSystemTypeProvided,
- // A media filesystem such as MTP or PTP, mounted as a file storage not
- // limited to media files.
- kFileSystemTypeDeviceMediaAsFileStorage,
- // A filesystem to provide access to contents managed by ARC.
- kFileSystemTypeArcContent,
- // A filesystem to provide access to documents providers in ARC.
- kFileSystemTypeArcDocumentsProvider,
- // Indicates a DriveFS filesystem which provides access to Google Drive.
- kFileSystemTypeDriveFs,
- // Indicates an SmbFs filesystem which provides access to SMB file shares.
- kFileSystemTypeSmbFs,
- // Indicates a FUSE filesystem which provides access to virtual files.
- kFileSystemTypeFuseBox,
- kFileSystemTypeLast = kFileSystemTypeFuseBox,
- // --------------------------------------------------------------------
- // Marks the end of internal type enum. (This is not the actual fs type)
- // New internal filesystem types must be added above this line.
- kFileSystemInternalTypeEnumEnd,
- };
- } // namespace storage
- #endif // STORAGE_COMMON_FILE_SYSTEM_FILE_SYSTEM_TYPES_H_
|