Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(457)

Unified Diff: content/browser/fileapi/fileapi_message_filter.cc

Issue 10920087: Update callers of CreateFileSystemOperation so more detailed error codes can be returned. Where app… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile error Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/api/downloads/downloads_api_unittest.cc ('k') | net/base/net_errors.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/fileapi/fileapi_message_filter.cc
diff --git a/content/browser/fileapi/fileapi_message_filter.cc b/content/browser/fileapi/fileapi_message_filter.cc
index 30779569c20cb854a49062e09fb3adff5d4787c3..2237d55d6ecc57d7addbb44a47de4555bd5056d1 100644
--- a/content/browser/fileapi/fileapi_message_filter.cc
+++ b/content/browser/fileapi/fileapi_message_filter.cc
@@ -138,8 +138,10 @@ void FileAPIMessageFilter::OnChannelClosing() {
open_filesystem_urls_.begin();
iter != open_filesystem_urls_.end(); ++iter) {
FileSystemURL url(*iter);
- FileSystemOperation* operation = context_->CreateFileSystemOperation(url);
- operation->NotifyCloseFile(url);
+ FileSystemOperation* operation = context_->CreateFileSystemOperation(
+ url, NULL);
+ if (operation)
+ operation->NotifyCloseFile(url);
}
}
@@ -236,7 +238,10 @@ void FileAPIMessageFilter::OnMove(
return;
}
- GetNewOperation(src_url, request_id)->Move(
+ FileSystemOperation* operation = GetNewOperation(src_url, request_id);
+ if (!operation)
+ return;
+ operation->Move(
src_url, dest_url,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -253,7 +258,10 @@ void FileAPIMessageFilter::OnCopy(
return;
}
- GetNewOperation(src_url, request_id)->Copy(
+ FileSystemOperation* operation = GetNewOperation(src_url, request_id);
+ if (!operation)
+ return
+ operation->Copy(
src_url, dest_url,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -268,7 +276,10 @@ void FileAPIMessageFilter::OnRemove(
return;
}
- GetNewOperation(url, request_id)->Remove(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->Remove(
url, recursive,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -283,7 +294,10 @@ void FileAPIMessageFilter::OnReadMetadata(
return;
}
- GetNewOperation(url, request_id)->GetMetadata(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->GetMetadata(
url,
base::Bind(&FileAPIMessageFilter::DidGetMetadata, this, request_id));
}
@@ -299,12 +313,15 @@ void FileAPIMessageFilter::OnCreate(
return;
}
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
if (is_directory) {
- GetNewOperation(url, request_id)->CreateDirectory(
+ operation->CreateDirectory(
url, exclusive, recursive,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
} else {
- GetNewOperation(url, request_id)->CreateFile(
+ operation->CreateFile(
url, exclusive,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -320,12 +337,15 @@ void FileAPIMessageFilter::OnExists(
return;
}
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
if (is_directory) {
- GetNewOperation(url, request_id)->DirectoryExists(
+ operation->DirectoryExists(
url,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
} else {
- GetNewOperation(url, request_id)->FileExists(
+ operation->FileExists(
url,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -341,7 +361,10 @@ void FileAPIMessageFilter::OnReadDirectory(
return;
}
- GetNewOperation(url, request_id)->ReadDirectory(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->ReadDirectory(
url, base::Bind(&FileAPIMessageFilter::DidReadDirectory,
this, request_id));
}
@@ -365,7 +388,10 @@ void FileAPIMessageFilter::OnWrite(
return;
}
- GetNewOperation(url, request_id)->Write(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->Write(
request_context_, url, blob_url, offset,
base::Bind(&FileAPIMessageFilter::DidWrite, this, request_id));
}
@@ -381,7 +407,10 @@ void FileAPIMessageFilter::OnTruncate(
return;
}
- GetNewOperation(url, request_id)->Truncate(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->Truncate(
url, length,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -399,7 +428,10 @@ void FileAPIMessageFilter::OnTouchFile(
return;
}
- GetNewOperation(url, request_id)->TouchFile(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->TouchFile(
url, last_access_time, last_modified_time,
base::Bind(&FileAPIMessageFilter::DidFinish, this, request_id));
}
@@ -433,7 +465,10 @@ void FileAPIMessageFilter::OnOpenFile(
return;
}
- GetNewOperation(url, request_id)->OpenFile(
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->OpenFile(
url, file_flags, peer_handle(),
base::Bind(&FileAPIMessageFilter::DidOpenFile, this, request_id, path));
}
@@ -451,7 +486,8 @@ void FileAPIMessageFilter::OnNotifyCloseFile(const GURL& path) {
// Do not use GetNewOperation() here, because NotifyCloseFile is a one-way
// operation that does not have request_id by which we respond back.
- FileSystemOperation* operation = context_->CreateFileSystemOperation(url);
+ FileSystemOperation* operation = context_->CreateFileSystemOperation(
+ url, NULL);
if (operation)
operation->NotifyCloseFile(url);
}
@@ -496,9 +532,11 @@ void FileAPIMessageFilter::OnSyncGetPlatformPath(
// TODO(kinuko): this hack should go away once appropriate upload-stream
// handling based on element types is supported.
LocalFileSystemOperation* operation =
- context_->CreateFileSystemOperation(url)->AsLocalFileSystemOperation();
+ context_->CreateFileSystemOperation(
+ url, NULL)->AsLocalFileSystemOperation();
DCHECK(operation);
- operation->SyncGetPlatformPath(url, platform_path);
+ if (operation)
+ operation->SyncGetPlatformPath(url, platform_path);
}
void FileAPIMessageFilter::OnCreateSnapshotFile(
@@ -508,7 +546,11 @@ void FileAPIMessageFilter::OnCreateSnapshotFile(
base::Callback<void(const FilePath&)> register_file_callback =
base::Bind(&FileAPIMessageFilter::RegisterFileAsBlob,
this, blob_url, url.path());
- GetNewOperation(url, request_id)->CreateSnapshotFile(
+
+ FileSystemOperation* operation = GetNewOperation(url, request_id);
+ if (!operation)
+ return;
+ operation->CreateSnapshotFile(
url,
base::Bind(&FileAPIMessageFilter::DidCreateSnapshot,
this, request_id, register_file_callback));
@@ -795,8 +837,14 @@ bool FileAPIMessageFilter::HasPermissionsForFile(
FileSystemOperation* FileAPIMessageFilter::GetNewOperation(
const FileSystemURL& target_url,
int request_id) {
+ base::PlatformFileError error_code;
FileSystemOperation* operation =
- context_->CreateFileSystemOperation(target_url);
+ context_->CreateFileSystemOperation(target_url, &error_code);
+ if (error_code != base::PLATFORM_FILE_OK) {
+ Send(new FileSystemMsg_DidFail(request_id, error_code));
+ return NULL;
+ }
+
DCHECK(operation);
operations_.AddWithID(operation, request_id);
return operation;
« no previous file with comments | « chrome/browser/extensions/api/downloads/downloads_api_unittest.cc ('k') | net/base/net_errors.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698