Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / media_galleries / fileapi / native_media_file_util.h
index fd47e76..14985a3 100644 (file)
@@ -9,6 +9,10 @@
 #include "base/memory/weak_ptr.h"
 #include "webkit/browser/fileapi/async_file_util.h"
 
+namespace net {
+class IOBuffer;
+}
+
 class MediaPathFilter;
 
 // This class handles native file system operations with media type filtering.
@@ -22,7 +26,20 @@ class NativeMediaFileUtil : public fileapi::AsyncFileUtil {
   // Uses the MIME sniffer code, which actually looks into the file,
   // to determine if it is really a media file (to avoid exposing
   // non-media files with a media file extension.)
-  static base::PlatformFileError IsMediaFile(const base::FilePath& path);
+  static base::File::Error IsMediaFile(const base::FilePath& path);
+  static base::File::Error BufferIsMediaHeader(net::IOBuffer* buf,
+                                                     size_t length);
+
+  // Methods to support CreateOrOpen. Public so they can be shared with
+  // DeviceMediaAsyncFileUtil.
+  static void CreatedSnapshotFileForCreateOrOpen(
+      base::SequencedTaskRunner* media_task_runner,
+      int file_flags,
+      const fileapi::AsyncFileUtil::CreateOrOpenCallback& callback,
+      base::File::Error result,
+      const base::File::Info& file_info,
+      const base::FilePath& platform_path,
+      const scoped_refptr<webkit_blob::ShareableFileReference>& file_ref);
 
   // AsyncFileUtil overrides.
   virtual void CreateOrOpen(
@@ -121,6 +138,10 @@ class NativeMediaFileUtil : public fileapi::AsyncFileUtil {
       const base::FilePath& src_file_path,
       const fileapi::FileSystemURL& dest_url,
       const StatusCallback& callback);
+  virtual void DeleteFileOnTaskRunnerThread(
+      scoped_ptr<fileapi::FileSystemOperationContext> context,
+      const fileapi::FileSystemURL& url,
+      const StatusCallback& callback);
   virtual void DeleteDirectoryOnTaskRunnerThread(
       scoped_ptr<fileapi::FileSystemOperationContext> context,
       const fileapi::FileSystemURL& url,
@@ -133,48 +154,50 @@ class NativeMediaFileUtil : public fileapi::AsyncFileUtil {
   // The following methods should only be called on the task runner thread.
 
   // Necessary for copy/move to succeed.
-  virtual base::PlatformFileError CreateDirectorySync(
+  virtual base::File::Error CreateDirectorySync(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& url,
       bool exclusive,
       bool recursive);
-  virtual base::PlatformFileError CopyOrMoveFileSync(
+  virtual base::File::Error CopyOrMoveFileSync(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& src_url,
       const fileapi::FileSystemURL& dest_url,
       CopyOrMoveOption option,
       bool copy);
-  virtual base::PlatformFileError CopyInForeignFileSync(
+  virtual base::File::Error CopyInForeignFileSync(
       fileapi::FileSystemOperationContext* context,
       const base::FilePath& src_file_path,
       const fileapi::FileSystemURL& dest_url);
-  virtual base::PlatformFileError GetFileInfoSync(
+  virtual base::File::Error GetFileInfoSync(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& url,
-      base::PlatformFileInfo* file_info,
+      base::File::Info* file_info,
       base::FilePath* platform_path);
   // Called by GetFileInfoSync. Meant to be overridden by subclasses that
   // have special mappings from URLs to platform paths (virtual filesystems).
-  virtual base::PlatformFileError GetLocalFilePath(
+  virtual base::File::Error GetLocalFilePath(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& file_system_url,
       base::FilePath* local_file_path);
-  virtual base::PlatformFileError ReadDirectorySync(
+  virtual base::File::Error ReadDirectorySync(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& url,
       EntryList* file_list);
+  virtual base::File::Error DeleteFileSync(
+      fileapi::FileSystemOperationContext* context,
+      const fileapi::FileSystemURL& url);
   // Necessary for move to succeed.
-  virtual base::PlatformFileError DeleteDirectorySync(
+  virtual base::File::Error DeleteDirectorySync(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& url);
-  virtual base::PlatformFileError CreateSnapshotFileSync(
+  virtual base::File::Error CreateSnapshotFileSync(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& url,
-      base::PlatformFileInfo* file_info,
+      base::File::Info* file_info,
       base::FilePath* platform_path,
       scoped_refptr<webkit_blob::ShareableFileReference>* file_ref);
 
- protected:
   MediaPathFilter* media_path_filter() {
     return media_path_filter_;
   }
@@ -183,7 +206,7 @@ class NativeMediaFileUtil : public fileapi::AsyncFileUtil {
   // Like GetLocalFilePath(), but always take media_path_filter() into
   // consideration. If the media_path_filter() check fails, return
   // PLATFORM_FILE_ERROR_SECURITY. |local_file_path| does not have to exist.
-  base::PlatformFileError GetFilteredLocalFilePath(
+  base::File::Error GetFilteredLocalFilePath(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& file_system_url,
       base::FilePath* local_file_path);
@@ -194,10 +217,10 @@ class NativeMediaFileUtil : public fileapi::AsyncFileUtil {
   // consideration.
   // If the media_path_filter() check fails, return |failure_error|.
   // If |local_file_path| is a directory, return PLATFORM_FILE_OK.
-  base::PlatformFileError GetFilteredLocalFilePathForExistingFileOrDirectory(
+  base::File::Error GetFilteredLocalFilePathForExistingFileOrDirectory(
       fileapi::FileSystemOperationContext* context,
       const fileapi::FileSystemURL& file_system_url,
-      base::PlatformFileError failure_error,
+      base::File::Error failure_error,
       base::FilePath* local_file_path);