| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "webkit/browser/fileapi/isolated_file_system_backend.h" | 5 #include "storage/browser/fileapi/isolated_file_system_backend.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| 11 #include "base/files/file_util_proxy.h" | 11 #include "base/files/file_util_proxy.h" |
| 12 #include "base/logging.h" | 12 #include "base/logging.h" |
| 13 #include "base/message_loop/message_loop_proxy.h" | 13 #include "base/message_loop/message_loop_proxy.h" |
| 14 #include "base/sequenced_task_runner.h" | 14 #include "base/sequenced_task_runner.h" |
| 15 #include "webkit/browser/blob/file_stream_reader.h" | 15 #include "storage/browser/blob/file_stream_reader.h" |
| 16 #include "webkit/browser/fileapi/async_file_util_adapter.h" | 16 #include "storage/browser/fileapi/async_file_util_adapter.h" |
| 17 #include "webkit/browser/fileapi/copy_or_move_file_validator.h" | 17 #include "storage/browser/fileapi/copy_or_move_file_validator.h" |
| 18 #include "webkit/browser/fileapi/dragged_file_util.h" | 18 #include "storage/browser/fileapi/dragged_file_util.h" |
| 19 #include "webkit/browser/fileapi/file_stream_writer.h" | 19 #include "storage/browser/fileapi/file_stream_writer.h" |
| 20 #include "webkit/browser/fileapi/file_system_context.h" | 20 #include "storage/browser/fileapi/file_system_context.h" |
| 21 #include "webkit/browser/fileapi/file_system_operation.h" | 21 #include "storage/browser/fileapi/file_system_operation.h" |
| 22 #include "webkit/browser/fileapi/file_system_operation_context.h" | 22 #include "storage/browser/fileapi/file_system_operation_context.h" |
| 23 #include "webkit/browser/fileapi/isolated_context.h" | 23 #include "storage/browser/fileapi/isolated_context.h" |
| 24 #include "webkit/browser/fileapi/native_file_util.h" | 24 #include "storage/browser/fileapi/native_file_util.h" |
| 25 #include "webkit/browser/fileapi/transient_file_util.h" | 25 #include "storage/browser/fileapi/transient_file_util.h" |
| 26 #include "webkit/common/fileapi/file_system_types.h" | 26 #include "storage/common/fileapi/file_system_types.h" |
| 27 #include "webkit/common/fileapi/file_system_util.h" | 27 #include "storage/common/fileapi/file_system_util.h" |
| 28 | 28 |
| 29 namespace fileapi { | 29 namespace storage { |
| 30 | 30 |
| 31 IsolatedFileSystemBackend::IsolatedFileSystemBackend() | 31 IsolatedFileSystemBackend::IsolatedFileSystemBackend() |
| 32 : isolated_file_util_(new AsyncFileUtilAdapter(new LocalFileUtil())), | 32 : isolated_file_util_(new AsyncFileUtilAdapter(new LocalFileUtil())), |
| 33 dragged_file_util_(new AsyncFileUtilAdapter(new DraggedFileUtil())), | 33 dragged_file_util_(new AsyncFileUtilAdapter(new DraggedFileUtil())), |
| 34 transient_file_util_(new AsyncFileUtilAdapter(new TransientFileUtil())) { | 34 transient_file_util_(new AsyncFileUtilAdapter(new TransientFileUtil())) { |
| 35 } | 35 } |
| 36 | 36 |
| 37 IsolatedFileSystemBackend::~IsolatedFileSystemBackend() { | 37 IsolatedFileSystemBackend::~IsolatedFileSystemBackend() { |
| 38 } | 38 } |
| 39 | 39 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 56 void IsolatedFileSystemBackend::Initialize(FileSystemContext* context) { | 56 void IsolatedFileSystemBackend::Initialize(FileSystemContext* context) { |
| 57 } | 57 } |
| 58 | 58 |
| 59 void IsolatedFileSystemBackend::ResolveURL( | 59 void IsolatedFileSystemBackend::ResolveURL( |
| 60 const FileSystemURL& url, | 60 const FileSystemURL& url, |
| 61 OpenFileSystemMode mode, | 61 OpenFileSystemMode mode, |
| 62 const OpenFileSystemCallback& callback) { | 62 const OpenFileSystemCallback& callback) { |
| 63 // We never allow opening a new isolated FileSystem via usual ResolveURL. | 63 // We never allow opening a new isolated FileSystem via usual ResolveURL. |
| 64 base::MessageLoopProxy::current()->PostTask( | 64 base::MessageLoopProxy::current()->PostTask( |
| 65 FROM_HERE, | 65 FROM_HERE, |
| 66 base::Bind(callback, | 66 base::Bind( |
| 67 GURL(), | 67 callback, GURL(), std::string(), base::File::FILE_ERROR_SECURITY)); |
| 68 std::string(), | |
| 69 base::File::FILE_ERROR_SECURITY)); | |
| 70 } | 68 } |
| 71 | 69 |
| 72 AsyncFileUtil* IsolatedFileSystemBackend::GetAsyncFileUtil( | 70 AsyncFileUtil* IsolatedFileSystemBackend::GetAsyncFileUtil( |
| 73 FileSystemType type) { | 71 FileSystemType type) { |
| 74 switch (type) { | 72 switch (type) { |
| 75 case kFileSystemTypeNativeLocal: | 73 case kFileSystemTypeNativeLocal: |
| 76 return isolated_file_util_.get(); | 74 return isolated_file_util_.get(); |
| 77 case kFileSystemTypeDragged: | 75 case kFileSystemTypeDragged: |
| 78 return dragged_file_util_.get(); | 76 return dragged_file_util_.get(); |
| 79 case kFileSystemTypeForTransientFile: | 77 case kFileSystemTypeForTransientFile: |
| 80 return transient_file_util_.get(); | 78 return transient_file_util_.get(); |
| 81 default: | 79 default: |
| 82 NOTREACHED(); | 80 NOTREACHED(); |
| 83 } | 81 } |
| 84 return NULL; | 82 return NULL; |
| 85 } | 83 } |
| 86 | 84 |
| 87 CopyOrMoveFileValidatorFactory* | 85 CopyOrMoveFileValidatorFactory* |
| 88 IsolatedFileSystemBackend::GetCopyOrMoveFileValidatorFactory( | 86 IsolatedFileSystemBackend::GetCopyOrMoveFileValidatorFactory( |
| 89 FileSystemType type, base::File::Error* error_code) { | 87 FileSystemType type, |
| 88 base::File::Error* error_code) { |
| 90 DCHECK(error_code); | 89 DCHECK(error_code); |
| 91 *error_code = base::File::FILE_OK; | 90 *error_code = base::File::FILE_OK; |
| 92 return NULL; | 91 return NULL; |
| 93 } | 92 } |
| 94 | 93 |
| 95 FileSystemOperation* IsolatedFileSystemBackend::CreateFileSystemOperation( | 94 FileSystemOperation* IsolatedFileSystemBackend::CreateFileSystemOperation( |
| 96 const FileSystemURL& url, | 95 const FileSystemURL& url, |
| 97 FileSystemContext* context, | 96 FileSystemContext* context, |
| 98 base::File::Error* error_code) const { | 97 base::File::Error* error_code) const { |
| 99 return FileSystemOperation::Create( | 98 return FileSystemOperation::Create( |
| 100 url, context, make_scoped_ptr(new FileSystemOperationContext(context))); | 99 url, context, make_scoped_ptr(new FileSystemOperationContext(context))); |
| 101 } | 100 } |
| 102 | 101 |
| 103 bool IsolatedFileSystemBackend::SupportsStreaming( | 102 bool IsolatedFileSystemBackend::SupportsStreaming( |
| 104 const fileapi::FileSystemURL& url) const { | 103 const storage::FileSystemURL& url) const { |
| 105 return false; | 104 return false; |
| 106 } | 105 } |
| 107 | 106 |
| 108 scoped_ptr<webkit_blob::FileStreamReader> | 107 scoped_ptr<storage::FileStreamReader> |
| 109 IsolatedFileSystemBackend::CreateFileStreamReader( | 108 IsolatedFileSystemBackend::CreateFileStreamReader( |
| 110 const FileSystemURL& url, | 109 const FileSystemURL& url, |
| 111 int64 offset, | 110 int64 offset, |
| 112 const base::Time& expected_modification_time, | 111 const base::Time& expected_modification_time, |
| 113 FileSystemContext* context) const { | 112 FileSystemContext* context) const { |
| 114 return scoped_ptr<webkit_blob::FileStreamReader>( | 113 return scoped_ptr<storage::FileStreamReader>( |
| 115 webkit_blob::FileStreamReader::CreateForLocalFile( | 114 storage::FileStreamReader::CreateForLocalFile( |
| 116 context->default_file_task_runner(), | 115 context->default_file_task_runner(), |
| 117 url.path(), offset, expected_modification_time)); | 116 url.path(), |
| 117 offset, |
| 118 expected_modification_time)); |
| 118 } | 119 } |
| 119 | 120 |
| 120 scoped_ptr<FileStreamWriter> IsolatedFileSystemBackend::CreateFileStreamWriter( | 121 scoped_ptr<FileStreamWriter> IsolatedFileSystemBackend::CreateFileStreamWriter( |
| 121 const FileSystemURL& url, | 122 const FileSystemURL& url, |
| 122 int64 offset, | 123 int64 offset, |
| 123 FileSystemContext* context) const { | 124 FileSystemContext* context) const { |
| 124 return scoped_ptr<FileStreamWriter>( | 125 return scoped_ptr<FileStreamWriter>(FileStreamWriter::CreateForLocalFile( |
| 125 FileStreamWriter::CreateForLocalFile( | 126 context->default_file_task_runner(), |
| 126 context->default_file_task_runner(), | 127 url.path(), |
| 127 url.path(), | 128 offset, |
| 128 offset, | 129 FileStreamWriter::OPEN_EXISTING_FILE)); |
| 129 FileStreamWriter::OPEN_EXISTING_FILE)); | |
| 130 } | 130 } |
| 131 | 131 |
| 132 FileSystemQuotaUtil* IsolatedFileSystemBackend::GetQuotaUtil() { | 132 FileSystemQuotaUtil* IsolatedFileSystemBackend::GetQuotaUtil() { |
| 133 // No quota support. | 133 // No quota support. |
| 134 return NULL; | 134 return NULL; |
| 135 } | 135 } |
| 136 | 136 |
| 137 } // namespace fileapi | 137 } // namespace storage |
| OLD | NEW |