file_system_types.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2012 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 5#ifndef WEBKIT_COMMON_FILEAPI_FILE_SYSTEM_TYPES_H_ 6#define WEBKIT_COMMON_FILEAPI_FILE_SYSTEM_TYPES_H_ 7 8#include "third_party/WebKit/Source/Platform/chromium/public/WebFileSystem.h" 9#include "third_party/WebKit/Source/Platform/chromium/public/WebFileSystemType.h" 10 11namespace fileapi { 12 13enum FileSystemType { 14 // Indicates uninitialized or invalid filesystem type. 15 kFileSystemTypeUnknown = -1, 16 17 // ------------------------------------------------------------------------ 18 // Public FileSystem types, that are embedded in filesystem: URL and exposed 19 // to WebKit/renderer. Both Chrome and WebKit know how to handle these types. 20 21 // Following two types are for TEMPORARY or PERSISTENT filesystems that 22 // can be used by webapps via standard app-facing API 23 // as defined in File API: Directories and System. 24 // http://www.w3.org/TR/file-system-api/#temporary-vs.-persistent-storage 25 // They are sandboxed filesystems; all the files in the filesystems are 26 // placed under the profile directory with path obfuscation and quota 27 // enforcement. 28 kFileSystemTypeTemporary = WebKit::WebFileSystemTypeTemporary, 29 kFileSystemTypePersistent = WebKit::WebFileSystemTypePersistent, 30 31 // Indicates non-sandboxed isolated filesystem. 32 kFileSystemTypeIsolated = WebKit::WebFileSystemTypeIsolated, 33 34 // Indicates non-sandboxed filesystem where files are placed outside the 35 // profile directory (thus called 'external' filesystem). 36 // This filesystem is used only by Chrome OS as of writing. 37 kFileSystemTypeExternal = WebKit::WebFileSystemTypeExternal, 38 39 // ------------------------------------------------------------------------ 40 // Marks the beginning of internal type enum. (This is not the actual fs type) 41 kFileSystemInternalTypeEnumStart = 99, 42 43 // Private FileSystem types, that should not appear in filesystem: URL as 44 // WebKit has no idea how to handle those types. 45 // 46 // One can register (mount) a new file system with a private file system type 47 // using IsolatedContext. Files in such file systems can be accessed via 48 // either Isolated or External public file system types (depending on 49 // how the file system is registered). 50 // See the comments for IsolatedContext and/or FileSystemURL for more details. 51 52 // Should be used only for testing. 53 kFileSystemTypeTest, 54 55 // Indicates a local filesystem where we can access files using native 56 // local path. 57 kFileSystemTypeNativeLocal, 58 59 // Indicates a local filesystem where we can access files using native 60 // local path, but with restricted access. 61 // Restricted native local file system is in read-only mode. 62 kFileSystemTypeRestrictedNativeLocal, 63 64 // Indicates a transient, isolated file system for dragged files (which could 65 // contain multiple dragged paths in the virtual root). 66 kFileSystemTypeDragged, 67 68 // Indicates media filesystem which we can access with same manner to 69 // regular filesystem. 70 kFileSystemTypeNativeMedia, 71 72 // Indicates media filesystem to which we need special protocol to access, 73 // such as MTP or PTP. 74 kFileSystemTypeDeviceMedia, 75 76 // Indicates a Picasa virtual filesystem provided by Media Galleries API. 77 kFileSystemTypePicasa, 78 79 // Indicates a synthetic iTunes filesystem. 80 kFileSystemTypeItunes, 81 82 // Indicates a Drive filesystem which provides access to Google Drive. 83 kFileSystemTypeDrive, 84 85 // Indicates a Syncable sandboxed filesystem which can be backed by a 86 // cloud storage service. 87 kFileSystemTypeSyncable, 88 89 // Indicates an external filesystem accessible by file paths from platform 90 // Apps. As of writing, on non Chrome OS platform, this is merely a 91 // kFileSystemTypeNativeLocal. On Chrome OS, the path is parsed by 92 // the handlers of kFileSystemTypeExternal. 93 kFileSystemTypeNativeForPlatformApp, 94 95 // Indicates an isolated filesystem which is supposed to contain one 96 // temporary which is supposed to go away when the last reference of 97 // its snapshot is dropped. 98 // This type is useful for creating a blob reference for a temporary 99 // file which must go away when the blob's last reference is dropped. 100 kFileSystemTypeForTransientFile, 101 102 // -------------------------------------------------------------------- 103 // Marks the end of internal type enum. (This is not the actual fs type) 104 // New internal filesystem types must be added above this line. 105 kFileSystemInternalTypeEnumEnd, 106}; 107 108} // namespace fileapi 109 110#endif // WEBKIT_COMMON_FILEAPI_FILE_SYSTEM_TYPES_H_ 111