| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/plugin_private_file_system_backend.h" | 5 #include "webkit/browser/fileapi/plugin_private_file_system_backend.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/synchronization/lock.h" | 10 #include "base/synchronization/lock.h" |
| 11 #include "base/task_runner_util.h" | 11 #include "base/task_runner_util.h" |
| 12 #include "net/base/net_util.h" | 12 #include "net/base/net_util.h" |
| 13 #include "webkit/browser/blob/file_stream_reader.h" | 13 #include "webkit/browser/blob/file_stream_reader.h" |
| 14 #include "webkit/browser/fileapi/async_file_util_adapter.h" | 14 #include "webkit/browser/fileapi/async_file_util_adapter.h" |
| 15 #include "webkit/browser/fileapi/file_stream_writer.h" | 15 #include "webkit/browser/fileapi/file_stream_writer.h" |
| 16 #include "webkit/browser/fileapi/file_system_context.h" | 16 #include "webkit/browser/fileapi/file_system_context.h" |
| 17 #include "webkit/browser/fileapi/file_system_operation.h" | 17 #include "webkit/browser/fileapi/file_system_operation.h" |
| 18 #include "webkit/browser/fileapi/file_system_operation_context.h" | 18 #include "webkit/browser/fileapi/file_system_operation_context.h" |
| 19 #include "webkit/browser/fileapi/file_system_options.h" | 19 #include "webkit/browser/fileapi/file_system_options.h" |
| 20 #include "webkit/browser/fileapi/isolated_context.h" | 20 #include "webkit/browser/fileapi/isolated_context.h" |
| 21 #include "webkit/browser/fileapi/obfuscated_file_util.h" | 21 #include "webkit/browser/fileapi/obfuscated_file_util.h" |
| 22 #include "webkit/browser/fileapi/quota/quota_reservation.h" | 22 #include "webkit/browser/fileapi/quota/quota_reservation.h" |
| 23 #include "webkit/common/fileapi/file_system_util.h" | 23 #include "webkit/common/fileapi/file_system_util.h" |
| 24 | 24 |
| 25 namespace fileapi { | 25 namespace storage { |
| 26 | 26 |
| 27 class PluginPrivateFileSystemBackend::FileSystemIDToPluginMap { | 27 class PluginPrivateFileSystemBackend::FileSystemIDToPluginMap { |
| 28 public: | 28 public: |
| 29 explicit FileSystemIDToPluginMap(base::SequencedTaskRunner* task_runner) | 29 explicit FileSystemIDToPluginMap(base::SequencedTaskRunner* task_runner) |
| 30 : task_runner_(task_runner) {} | 30 : task_runner_(task_runner) {} |
| 31 ~FileSystemIDToPluginMap() {} | 31 ~FileSystemIDToPluginMap() {} |
| 32 | 32 |
| 33 std::string GetPluginIDForURL(const FileSystemURL& url) { | 33 std::string GetPluginIDForURL(const FileSystemURL& url) { |
| 34 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 34 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 35 Map::iterator found = map_.find(url.filesystem_id()); | 35 Map::iterator found = map_.find(url.filesystem_id()); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 if (error == base::File::FILE_OK) | 80 if (error == base::File::FILE_OK) |
| 81 plugin_map->RegisterFileSystem(filesystem_id, plugin_id); | 81 plugin_map->RegisterFileSystem(filesystem_id, plugin_id); |
| 82 return error; | 82 return error; |
| 83 } | 83 } |
| 84 | 84 |
| 85 } // namespace | 85 } // namespace |
| 86 | 86 |
| 87 PluginPrivateFileSystemBackend::PluginPrivateFileSystemBackend( | 87 PluginPrivateFileSystemBackend::PluginPrivateFileSystemBackend( |
| 88 base::SequencedTaskRunner* file_task_runner, | 88 base::SequencedTaskRunner* file_task_runner, |
| 89 const base::FilePath& profile_path, | 89 const base::FilePath& profile_path, |
| 90 quota::SpecialStoragePolicy* special_storage_policy, | 90 storage::SpecialStoragePolicy* special_storage_policy, |
| 91 const FileSystemOptions& file_system_options) | 91 const FileSystemOptions& file_system_options) |
| 92 : file_task_runner_(file_task_runner), | 92 : file_task_runner_(file_task_runner), |
| 93 file_system_options_(file_system_options), | 93 file_system_options_(file_system_options), |
| 94 base_path_(profile_path.Append( | 94 base_path_(profile_path.Append(kFileSystemDirectory) |
| 95 kFileSystemDirectory).Append(kPluginPrivateDirectory)), | 95 .Append(kPluginPrivateDirectory)), |
| 96 plugin_map_(new FileSystemIDToPluginMap(file_task_runner)), | 96 plugin_map_(new FileSystemIDToPluginMap(file_task_runner)), |
| 97 weak_factory_(this) { | 97 weak_factory_(this) { |
| 98 file_util_.reset( | 98 file_util_.reset( |
| 99 new AsyncFileUtilAdapter(new ObfuscatedFileUtil( | 99 new AsyncFileUtilAdapter(new ObfuscatedFileUtil( |
| 100 special_storage_policy, | 100 special_storage_policy, |
| 101 base_path_, file_system_options.env_override(), | 101 base_path_, file_system_options.env_override(), |
| 102 file_task_runner, | 102 file_task_runner, |
| 103 base::Bind(&FileSystemIDToPluginMap::GetPluginIDForURL, | 103 base::Bind(&FileSystemIDToPluginMap::GetPluginIDForURL, |
| 104 base::Owned(plugin_map_)), | 104 base::Owned(plugin_map_)), |
| 105 std::set<std::string>(), | 105 std::set<std::string>(), |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 FileSystemOperation* PluginPrivateFileSystemBackend::CreateFileSystemOperation( | 172 FileSystemOperation* PluginPrivateFileSystemBackend::CreateFileSystemOperation( |
| 173 const FileSystemURL& url, | 173 const FileSystemURL& url, |
| 174 FileSystemContext* context, | 174 FileSystemContext* context, |
| 175 base::File::Error* error_code) const { | 175 base::File::Error* error_code) const { |
| 176 scoped_ptr<FileSystemOperationContext> operation_context( | 176 scoped_ptr<FileSystemOperationContext> operation_context( |
| 177 new FileSystemOperationContext(context)); | 177 new FileSystemOperationContext(context)); |
| 178 return FileSystemOperation::Create(url, context, operation_context.Pass()); | 178 return FileSystemOperation::Create(url, context, operation_context.Pass()); |
| 179 } | 179 } |
| 180 | 180 |
| 181 bool PluginPrivateFileSystemBackend::SupportsStreaming( | 181 bool PluginPrivateFileSystemBackend::SupportsStreaming( |
| 182 const fileapi::FileSystemURL& url) const { | 182 const storage::FileSystemURL& url) const { |
| 183 return false; | 183 return false; |
| 184 } | 184 } |
| 185 | 185 |
| 186 bool PluginPrivateFileSystemBackend::HasInplaceCopyImplementation( | 186 bool PluginPrivateFileSystemBackend::HasInplaceCopyImplementation( |
| 187 fileapi::FileSystemType type) const { | 187 storage::FileSystemType type) const { |
| 188 return false; | 188 return false; |
| 189 } | 189 } |
| 190 | 190 |
| 191 scoped_ptr<webkit_blob::FileStreamReader> | 191 scoped_ptr<storage::FileStreamReader> |
| 192 PluginPrivateFileSystemBackend::CreateFileStreamReader( | 192 PluginPrivateFileSystemBackend::CreateFileStreamReader( |
| 193 const FileSystemURL& url, | 193 const FileSystemURL& url, |
| 194 int64 offset, | 194 int64 offset, |
| 195 const base::Time& expected_modification_time, | 195 const base::Time& expected_modification_time, |
| 196 FileSystemContext* context) const { | 196 FileSystemContext* context) const { |
| 197 return scoped_ptr<webkit_blob::FileStreamReader>(); | 197 return scoped_ptr<storage::FileStreamReader>(); |
| 198 } | 198 } |
| 199 | 199 |
| 200 scoped_ptr<FileStreamWriter> | 200 scoped_ptr<FileStreamWriter> |
| 201 PluginPrivateFileSystemBackend::CreateFileStreamWriter( | 201 PluginPrivateFileSystemBackend::CreateFileStreamWriter( |
| 202 const FileSystemURL& url, | 202 const FileSystemURL& url, |
| 203 int64 offset, | 203 int64 offset, |
| 204 FileSystemContext* context) const { | 204 FileSystemContext* context) const { |
| 205 return scoped_ptr<FileStreamWriter>(); | 205 return scoped_ptr<FileStreamWriter>(); |
| 206 } | 206 } |
| 207 | 207 |
| 208 FileSystemQuotaUtil* PluginPrivateFileSystemBackend::GetQuotaUtil() { | 208 FileSystemQuotaUtil* PluginPrivateFileSystemBackend::GetQuotaUtil() { |
| 209 return this; | 209 return this; |
| 210 } | 210 } |
| 211 | 211 |
| 212 base::File::Error | 212 base::File::Error |
| 213 PluginPrivateFileSystemBackend::DeleteOriginDataOnFileTaskRunner( | 213 PluginPrivateFileSystemBackend::DeleteOriginDataOnFileTaskRunner( |
| 214 FileSystemContext* context, | 214 FileSystemContext* context, |
| 215 quota::QuotaManagerProxy* proxy, | 215 storage::QuotaManagerProxy* proxy, |
| 216 const GURL& origin_url, | 216 const GURL& origin_url, |
| 217 FileSystemType type) { | 217 FileSystemType type) { |
| 218 if (!CanHandleType(type)) | 218 if (!CanHandleType(type)) |
| 219 return base::File::FILE_ERROR_SECURITY; | 219 return base::File::FILE_ERROR_SECURITY; |
| 220 bool result = obfuscated_file_util()->DeleteDirectoryForOriginAndType( | 220 bool result = obfuscated_file_util()->DeleteDirectoryForOriginAndType( |
| 221 origin_url, std::string()); | 221 origin_url, std::string()); |
| 222 if (result) | 222 if (result) |
| 223 return base::File::FILE_OK; | 223 return base::File::FILE_OK; |
| 224 return base::File::FILE_ERROR_FAILED; | 224 return base::File::FILE_ERROR_FAILED; |
| 225 } | 225 } |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 const AccessObserverList* PluginPrivateFileSystemBackend::GetAccessObservers( | 296 const AccessObserverList* PluginPrivateFileSystemBackend::GetAccessObservers( |
| 297 FileSystemType type) const { | 297 FileSystemType type) const { |
| 298 return NULL; | 298 return NULL; |
| 299 } | 299 } |
| 300 | 300 |
| 301 ObfuscatedFileUtil* PluginPrivateFileSystemBackend::obfuscated_file_util() { | 301 ObfuscatedFileUtil* PluginPrivateFileSystemBackend::obfuscated_file_util() { |
| 302 return static_cast<ObfuscatedFileUtil*>( | 302 return static_cast<ObfuscatedFileUtil*>( |
| 303 static_cast<AsyncFileUtilAdapter*>(file_util_.get())->sync_file_util()); | 303 static_cast<AsyncFileUtilAdapter*>(file_util_.get())->sync_file_util()); |
| 304 } | 304 } |
| 305 | 305 |
| 306 } // namespace fileapi | 306 } // namespace storage |
| OLD | NEW |