| Index: Source/core/fileapi/File.h
|
| diff --git a/Source/core/fileapi/File.h b/Source/core/fileapi/File.h
|
| index 41741c3e29145a4291fb0c05048b605d3a4e81d6..ea288d891e5d38461a4525be925796d8b64524af 100644
|
| --- a/Source/core/fileapi/File.h
|
| +++ b/Source/core/fileapi/File.h
|
| @@ -47,9 +47,13 @@ public:
|
| AllContentTypes,
|
| };
|
|
|
| + // The user should not be able to browse to some files, such as the ones
|
| + // generated by the Filesystem API.
|
| + enum UserVisibility { IsUserVisible, IsNotUserVisible };
|
| +
|
| static PassRefPtrWillBeRawPtr<File> create(const String& path, ContentTypeLookupPolicy policy = WellKnownContentTypes)
|
| {
|
| - return adoptRefWillBeNoop(new File(path, policy));
|
| + return adoptRefWillBeNoop(new File(path, policy, File::IsUserVisible));
|
| }
|
|
|
| static PassRefPtrWillBeRawPtr<File> create(const String& name, double modificationTime, PassRefPtr<BlobDataHandle> blobDataHandle)
|
| @@ -58,11 +62,11 @@ public:
|
| }
|
|
|
| // For deserialization.
|
| - static PassRefPtrWillBeRawPtr<File> create(const String& path, const String& name, const String& relativePath, bool hasSnaphotData, uint64_t size, double lastModified, PassRefPtr<BlobDataHandle> blobDataHandle)
|
| + static PassRefPtrWillBeRawPtr<File> createFromSerialization(const String& path, const String& name, const String& relativePath, bool hasSnaphotData, uint64_t size, double lastModified, PassRefPtr<BlobDataHandle> blobDataHandle)
|
| {
|
| return adoptRefWillBeNoop(new File(path, name, relativePath, hasSnaphotData, size, lastModified, blobDataHandle));
|
| }
|
| - static PassRefPtrWillBeRawPtr<File> create(const String& path, const String& name, uint64_t size, double lastModified, PassRefPtr<BlobDataHandle> blobDataHandle)
|
| + static PassRefPtrWillBeRawPtr<File> createFromIndexedSerialization(const String& path, const String& name, uint64_t size, double lastModified, PassRefPtr<BlobDataHandle> blobDataHandle)
|
| {
|
| return adoptRefWillBeNoop(new File(path, name, String(), true, size, lastModified, blobDataHandle));
|
| }
|
| @@ -88,8 +92,15 @@ public:
|
| static PassRefPtrWillBeRawPtr<File> createWithName(const String& path, const String& name, ContentTypeLookupPolicy policy = WellKnownContentTypes)
|
| {
|
| if (name.isEmpty())
|
| - return adoptRefWillBeNoop(new File(path, policy));
|
| - return adoptRefWillBeNoop(new File(path, name, policy));
|
| + return adoptRefWillBeNoop(new File(path, policy, File::IsNotUserVisible));
|
| + return adoptRefWillBeNoop(new File(path, name, policy, File::IsNotUserVisible));
|
| + }
|
| +
|
| + static PassRefPtrWillBeRawPtr<File> createForFileSystemFile(const String& path, const String& name, ContentTypeLookupPolicy policy = WellKnownContentTypes)
|
| + {
|
| + if (name.isEmpty())
|
| + return adoptRefWillBeNoop(new File(path, policy, File::IsNotUserVisible));
|
| + return adoptRefWillBeNoop(new File(path, name, policy, File::IsNotUserVisible));
|
| }
|
|
|
| virtual unsigned long long size() const OVERRIDE;
|
| @@ -107,6 +118,8 @@ public:
|
| // This returns the current date and time if the file's last modification date is not known (per spec: http://www.w3.org/TR/FileAPI/#dfn-lastModifiedDate).
|
| double lastModifiedDate() const;
|
|
|
| + UserVisibility userVisibility() const { return m_userVisibility; }
|
| +
|
| // Returns the relative path of this file in the context of a directory selection.
|
| const String& webkitRelativePath() const { return m_relativePath; }
|
|
|
| @@ -117,8 +130,8 @@ public:
|
| bool hasValidSnapshotMetadata() const { return m_snapshotSize >= 0; }
|
|
|
| private:
|
| - File(const String& path, ContentTypeLookupPolicy);
|
| - File(const String& path, const String& name, ContentTypeLookupPolicy);
|
| + File(const String& path, ContentTypeLookupPolicy, UserVisibility);
|
| + File(const String& path, const String& name, ContentTypeLookupPolicy, UserVisibility);
|
| File(const String& path, const String& name, const String& relativePath, bool hasSnaphotData, uint64_t size, double lastModified, PassRefPtr<BlobDataHandle>);
|
| File(const String& name, double modificationTime, PassRefPtr<BlobDataHandle>);
|
| File(const String& name, const FileMetadata&);
|
| @@ -133,6 +146,7 @@ private:
|
| #endif
|
|
|
| bool m_hasBackingFile;
|
| + UserVisibility m_userVisibility;
|
| String m_path;
|
| String m_name;
|
|
|
|
|