Index: chrome/browser/file_system/file_system_backend.cc |
=================================================================== |
--- chrome/browser/file_system/file_system_backend.cc (revision 58317) |
+++ chrome/browser/file_system/file_system_backend.cc (working copy) |
@@ -1,188 +1,190 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/file_util_proxy.h" |
-#include "base/platform_file.h" |
-#include "chrome/browser/chrome_thread.h" |
-#include "chrome/browser/file_system/file_system_backend.h" |
-#include "chrome/browser/file_system/file_system_backend_client.h" |
-#include "third_party/WebKit/WebKit/chromium/public/WebFileError.h" |
- |
-namespace { |
-// Utility method for error conversions. |
-WebKit::WebFileError PlatformToWebkitError(base::PlatformFileError rv) { |
- switch (rv) { |
- case base::PLATFORM_FILE_ERROR_NOT_FOUND: |
- return WebKit::WebFileErrorNotFound; |
- case base::PLATFORM_FILE_ERROR_INVALID_OPERATION: |
- case base::PLATFORM_FILE_ERROR_EXISTS: |
- case base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY: |
- return WebKit::WebFileErrorInvalidModification; |
- case base::PLATFORM_FILE_ERROR_ACCESS_DENIED: |
- return WebKit::WebFileErrorInvalidModification; |
- default: |
- return WebKit::WebFileErrorNoModificationAllowed; |
- } |
-} |
-} // namespace |
- |
-FileSystemBackend::FileSystemBackend() |
- : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {} |
- |
-void FileSystemBackend::set_client(FileSystemBackendClient* client) { |
- client_ = client; |
-} |
- |
-void FileSystemBackend::CreateFile(const FilePath& path, |
- bool exclusive, |
- int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::CreateOrOpen( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, base::PLATFORM_FILE_CREATE, |
- callback_factory_.NewCallback( |
- exclusive ? &FileSystemBackend::DidCreateFileExclusive |
- : &FileSystemBackend::DidCreateFileNonExclusive)); |
-} |
- |
-void FileSystemBackend::CreateDirectory(const FilePath& path, |
- bool exclusive, |
- int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::CreateDirectory( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, exclusive, callback_factory_.NewCallback( |
- &FileSystemBackend::DidFinishFileOperation)); |
-} |
- |
-void FileSystemBackend::Copy(const FilePath& src_path, |
- const FilePath& dest_path, |
- int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::Copy( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- src_path, dest_path, callback_factory_.NewCallback( |
- &FileSystemBackend::DidFinishFileOperation)); |
-} |
- |
-void FileSystemBackend::Move(const FilePath& src_path, |
- const FilePath& dest_path, |
- int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::Move( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- src_path, dest_path, callback_factory_.NewCallback( |
- &FileSystemBackend::DidFinishFileOperation)); |
-} |
- |
-void FileSystemBackend::DirectoryExists(const FilePath& path, int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::GetFileInfo( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, callback_factory_.NewCallback( |
- &FileSystemBackend::DidDirectoryExists)); |
-} |
- |
-void FileSystemBackend::FileExists(const FilePath& path, int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::GetFileInfo( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, callback_factory_.NewCallback(&FileSystemBackend::DidFileExists)); |
-} |
- |
-void FileSystemBackend::GetMetadata(const FilePath& path, int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::GetFileInfo( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, callback_factory_.NewCallback(&FileSystemBackend::DidGetMetadata)); |
-} |
- |
-void FileSystemBackend::ReadDirectory( |
- const FilePath& path, int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::ReadDirectory( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, callback_factory_.NewCallback( |
- &FileSystemBackend::DidReadDirectory)); |
-} |
- |
-void FileSystemBackend::Remove(const FilePath& path, int request_id) { |
- request_id_ = request_id; |
- base::FileUtilProxy::Delete( |
- ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
- path, callback_factory_.NewCallback( |
- &FileSystemBackend::DidFinishFileOperation)); |
-} |
- |
-void FileSystemBackend::DidCreateFileExclusive(base::PlatformFileError rv, |
- base::PassPlatformFile file, |
- bool created) { |
- DidFinishFileOperation(rv); |
-} |
- |
-void FileSystemBackend::DidCreateFileNonExclusive(base::PlatformFileError rv, |
- base::PassPlatformFile file, |
- bool created) { |
- // Supress the already exists error and report success. |
- if (rv == base::PLATFORM_FILE_OK || |
- rv == base::PLATFORM_FILE_ERROR_EXISTS) |
- client_->DidSucceed(rv); |
- else |
- client_->DidFail(PlatformToWebkitError(rv), request_id_); |
-} |
- |
-void FileSystemBackend::DidFinishFileOperation(base::PlatformFileError rv) { |
- DCHECK(client_); |
- if (rv == base::PLATFORM_FILE_OK) |
- client_->DidSucceed(request_id_); |
- else |
- client_->DidFail(PlatformToWebkitError(rv), request_id_); |
-} |
- |
-void FileSystemBackend::DidDirectoryExists( |
- base::PlatformFileError rv, const file_util::FileInfo& file_info) { |
- DCHECK(client_); |
- if (rv == base::PLATFORM_FILE_OK) { |
- if (file_info.is_directory) |
- client_->DidSucceed(request_id_); |
- else |
- client_->DidFail(WebKit::WebFileErrorInvalidState, request_id_); |
- } else { |
- // Something else went wrong. |
- client_->DidFail(PlatformToWebkitError(rv), request_id_); |
- } |
-} |
- |
-void FileSystemBackend::DidFileExists(base::PlatformFileError rv, |
- const file_util::FileInfo& file_info) { |
- DCHECK(client_); |
- if (rv == base::PLATFORM_FILE_OK) { |
- if (file_info.is_directory) |
- client_->DidFail(WebKit::WebFileErrorInvalidState, request_id_); |
- else |
- client_->DidSucceed(request_id_); |
- } else { |
- // Something else went wrong. |
- client_->DidFail(PlatformToWebkitError(rv), request_id_); |
- } |
-} |
- |
-void FileSystemBackend::DidGetMetadata(base::PlatformFileError rv, |
- const file_util::FileInfo& file_info) { |
- DCHECK(client_); |
- if (rv == base::PLATFORM_FILE_OK) |
- client_->DidReadMetadata(file_info, request_id_); |
- else |
- client_->DidFail(PlatformToWebkitError(rv), request_id_); |
-} |
- |
-void FileSystemBackend::DidReadDirectory( |
- base::PlatformFileError rv, |
- const std::vector<base::file_util_proxy::Entry>& entries) { |
- DCHECK(client_); |
- if (rv == base::PLATFORM_FILE_OK) |
- client_->DidReadDirectory(entries, false /* has_more */ , request_id_); |
- else |
- client_->DidFail(PlatformToWebkitError(rv), request_id_); |
-} |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/file_util_proxy.h" |
+#include "base/platform_file.h" |
+#include "chrome/browser/chrome_thread.h" |
+#include "chrome/browser/file_system/file_system_backend.h" |
+#include "chrome/browser/file_system/file_system_backend_client.h" |
+#include "third_party/WebKit/WebKit/chromium/public/WebFileError.h" |
+ |
+namespace { |
+// Utility method for error conversions. |
+WebKit::WebFileError PlatformToWebkitError(base::PlatformFileError rv) { |
+ switch (rv) { |
+ case base::PLATFORM_FILE_ERROR_NOT_FOUND: |
+ return WebKit::WebFileErrorNotFound; |
+ case base::PLATFORM_FILE_ERROR_INVALID_OPERATION: |
+ case base::PLATFORM_FILE_ERROR_EXISTS: |
+ case base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY: |
+ return WebKit::WebFileErrorInvalidModification; |
+ case base::PLATFORM_FILE_ERROR_ACCESS_DENIED: |
+ return WebKit::WebFileErrorInvalidModification; |
+ default: |
+ return WebKit::WebFileErrorNoModificationAllowed; |
+ } |
+} |
+} // namespace |
+ |
+FileSystemBackend::FileSystemBackend() |
+ : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {} |
+ |
+void FileSystemBackend::set_client(FileSystemBackendClient* client) { |
+ client_ = client; |
+} |
+ |
+void FileSystemBackend::CreateFile(const FilePath& path, |
+ bool exclusive, |
+ int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::CreateOrOpen( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, base::PLATFORM_FILE_CREATE, |
+ callback_factory_.NewCallback( |
+ exclusive ? &FileSystemBackend::DidCreateFileExclusive |
+ : &FileSystemBackend::DidCreateFileNonExclusive)); |
+} |
+ |
+void FileSystemBackend::CreateDirectory(const FilePath& path, |
+ bool exclusive, |
+ int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::CreateDirectory( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, exclusive, callback_factory_.NewCallback( |
+ &FileSystemBackend::DidFinishFileOperation)); |
+} |
+ |
+void FileSystemBackend::Copy(const FilePath& src_path, |
+ const FilePath& dest_path, |
+ int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::Copy( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ src_path, dest_path, callback_factory_.NewCallback( |
+ &FileSystemBackend::DidFinishFileOperation)); |
+} |
+ |
+void FileSystemBackend::Move(const FilePath& src_path, |
+ const FilePath& dest_path, |
+ int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::Move( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ src_path, dest_path, callback_factory_.NewCallback( |
+ &FileSystemBackend::DidFinishFileOperation)); |
+} |
+ |
+void FileSystemBackend::DirectoryExists(const FilePath& path, int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::GetFileInfo( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, callback_factory_.NewCallback( |
+ &FileSystemBackend::DidDirectoryExists)); |
+} |
+ |
+void FileSystemBackend::FileExists(const FilePath& path, int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::GetFileInfo( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, callback_factory_.NewCallback(&FileSystemBackend::DidFileExists)); |
+} |
+ |
+void FileSystemBackend::GetMetadata(const FilePath& path, int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::GetFileInfo( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, callback_factory_.NewCallback(&FileSystemBackend::DidGetMetadata)); |
+} |
+ |
+void FileSystemBackend::ReadDirectory( |
+ const FilePath& path, int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::ReadDirectory( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, callback_factory_.NewCallback( |
+ &FileSystemBackend::DidReadDirectory)); |
+} |
+ |
+void FileSystemBackend::Remove(const FilePath& path, int request_id) { |
+ request_id_ = request_id; |
+ base::FileUtilProxy::Delete( |
+ ChromeThread::GetMessageLoopProxyForThread(ChromeThread::FILE), |
+ path, callback_factory_.NewCallback( |
+ &FileSystemBackend::DidFinishFileOperation)); |
+} |
+ |
+void FileSystemBackend::DidCreateFileExclusive(base::PlatformFileError rv, |
+ base::PassPlatformFile file, |
+ bool created) { |
+ DidFinishFileOperation(rv); |
+} |
+ |
+void FileSystemBackend::DidCreateFileNonExclusive(base::PlatformFileError rv, |
+ base::PassPlatformFile file, |
+ bool created) { |
+ // Supress the already exists error and report success. |
+ if (rv == base::PLATFORM_FILE_OK || |
+ rv == base::PLATFORM_FILE_ERROR_EXISTS) |
+ client_->DidSucceed(rv); |
+ else |
+ client_->DidFail(PlatformToWebkitError(rv), request_id_); |
+} |
+ |
+void FileSystemBackend::DidFinishFileOperation(base::PlatformFileError rv) { |
+ DCHECK(client_); |
+ if (rv == base::PLATFORM_FILE_OK) |
+ client_->DidSucceed(request_id_); |
+ else |
+ client_->DidFail(PlatformToWebkitError(rv), request_id_); |
+} |
+ |
+void FileSystemBackend::DidDirectoryExists( |
+ base::PlatformFileError rv, const base::PlatformFileInfo& file_info) { |
+ DCHECK(client_); |
+ if (rv == base::PLATFORM_FILE_OK) { |
+ if (file_info.is_directory) |
+ client_->DidSucceed(request_id_); |
+ else |
+ client_->DidFail(WebKit::WebFileErrorInvalidState, request_id_); |
+ } else { |
+ // Something else went wrong. |
+ client_->DidFail(PlatformToWebkitError(rv), request_id_); |
+ } |
+} |
+ |
+void FileSystemBackend::DidFileExists( |
+ base::PlatformFileError rv, |
+ const base::PlatformFileInfo& file_info) { |
+ DCHECK(client_); |
+ if (rv == base::PLATFORM_FILE_OK) { |
+ if (file_info.is_directory) |
+ client_->DidFail(WebKit::WebFileErrorInvalidState, request_id_); |
+ else |
+ client_->DidSucceed(request_id_); |
+ } else { |
+ // Something else went wrong. |
+ client_->DidFail(PlatformToWebkitError(rv), request_id_); |
+ } |
+} |
+ |
+void FileSystemBackend::DidGetMetadata( |
+ base::PlatformFileError rv, |
+ const base::PlatformFileInfo& file_info) { |
+ DCHECK(client_); |
+ if (rv == base::PLATFORM_FILE_OK) |
+ client_->DidReadMetadata(file_info, request_id_); |
+ else |
+ client_->DidFail(PlatformToWebkitError(rv), request_id_); |
+} |
+ |
+void FileSystemBackend::DidReadDirectory( |
+ base::PlatformFileError rv, |
+ const std::vector<base::file_util_proxy::Entry>& entries) { |
+ DCHECK(client_); |
+ if (rv == base::PLATFORM_FILE_OK) |
+ client_->DidReadDirectory(entries, false /* has_more */ , request_id_); |
+ else |
+ client_->DidFail(PlatformToWebkitError(rv), request_id_); |
+} |