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

Unified Diff: chrome/browser/extensions/extension_file_browser_private_api.cc

Issue 9016020: Cleanup FileSystemOperation for preparing for adding FSO-factory method (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 11 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
Index: chrome/browser/extensions/extension_file_browser_private_api.cc
diff --git a/chrome/browser/extensions/extension_file_browser_private_api.cc b/chrome/browser/extensions/extension_file_browser_private_api.cc
index 35988a010d63fc86805cdafe4a01b5a1ad1568aa..e2473b2960f803edaacd40f7360881ae1a082a73 100644
--- a/chrome/browser/extensions/extension_file_browser_private_api.cc
+++ b/chrome/browser/extensions/extension_file_browser_private_api.cc
@@ -45,7 +45,6 @@
#include "webkit/fileapi/file_system_context.h"
#include "webkit/fileapi/file_system_file_util.h"
#include "webkit/fileapi/file_system_mount_point_provider.h"
-#include "webkit/fileapi/file_system_operation.h"
#include "webkit/fileapi/file_system_operation_context.h"
#include "webkit/fileapi/file_system_types.h"
#include "webkit/fileapi/file_system_util.h"
@@ -308,16 +307,14 @@ base::DictionaryValue* MountPointToValue(Profile* profile,
class RequestLocalFileSystemFunction::LocalFileSystemCallbackDispatcher
: public fileapi::FileSystemCallbackDispatcher {
public:
- explicit LocalFileSystemCallbackDispatcher(
+ static scoped_ptr<FileSystemCallbackDispatcher> Create(
RequestLocalFileSystemFunction* function,
Profile* profile,
int child_id,
- scoped_refptr<const Extension> extension)
- : function_(function),
- profile_(profile),
- child_id_(child_id),
- extension_(extension) {
- DCHECK(function_);
+ scoped_refptr<const Extension> extension) {
+ return scoped_ptr<fileapi::FileSystemCallbackDispatcher>(
+ new LocalFileSystemCallbackDispatcher(
+ function, profile, child_id, extension));
}
// fileapi::FileSystemCallbackDispatcher overrides.
@@ -368,6 +365,17 @@ class RequestLocalFileSystemFunction::LocalFileSystemCallbackDispatcher
}
private:
+ LocalFileSystemCallbackDispatcher(
+ RequestLocalFileSystemFunction* function,
+ Profile* profile,
+ int child_id,
+ scoped_refptr<const Extension> extension)
+ : function_(function),
+ profile_(profile),
+ child_id_(child_id),
+ extension_(extension) {
+ DCHECK(function_);
+ }
// Grants file system access permissions to file browser component.
bool SetupFileSystemAccessPermissions() {
@@ -413,18 +421,14 @@ class RequestLocalFileSystemFunction::LocalFileSystemCallbackDispatcher
void RequestLocalFileSystemFunction::RequestOnFileThread(
const GURL& source_url, int child_id) {
- fileapi::FileSystemOperation* operation =
- new fileapi::FileSystemOperation(
- new LocalFileSystemCallbackDispatcher(
- this,
- profile(),
- child_id,
- GetExtension()),
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
- profile()->GetFileSystemContext());
GURL origin_url = source_url.GetOrigin();
- operation->OpenFileSystem(origin_url, fileapi::kFileSystemTypeExternal,
- false); // create
+ profile()->GetFileSystemContext()->OpenFileSystem(
+ origin_url, fileapi::kFileSystemTypeExternal, false, // create
+ LocalFileSystemCallbackDispatcher::Create(
+ this,
+ profile(),
+ child_id,
+ GetExtension()));
}
bool RequestLocalFileSystemFunction::RunImpl() {
@@ -472,7 +476,7 @@ bool FileWatchBrowserFunctionBase::GetLocalFilePath(
return false;
FilePath root_path = profile_->GetFileSystemContext()->external_provider()->
- ValidateFileSystemRootAndGetPathOnFileThread(
+ GetFileSystemRootPathOnFileThread(
file_origin_url,
fileapi::kFileSystemTypeExternal,
*virtual_path,
@@ -617,23 +621,18 @@ bool GetFileTasksFileBrowserFunction::RunImpl() {
class ExecuteTasksFileBrowserFunction::ExecuteTasksFileSystemCallbackDispatcher
: public fileapi::FileSystemCallbackDispatcher {
public:
- explicit ExecuteTasksFileSystemCallbackDispatcher(
+ static scoped_ptr<fileapi::FileSystemCallbackDispatcher> Create(
ExecuteTasksFileBrowserFunction* function,
Profile* profile,
int child_id,
const GURL& source_url,
scoped_refptr<const Extension> extension,
const std::string task_id,
- const std::vector<GURL>& file_urls)
- : function_(function),
- target_process_id_(0),
- profile_(profile),
- source_url_(source_url),
- extension_(extension),
- task_id_(task_id),
- origin_file_urls_(file_urls) {
- DCHECK(function_);
- ExtractTargetExtensionAndProcessID();
+ const std::vector<GURL>& file_urls) {
+ return scoped_ptr<fileapi::FileSystemCallbackDispatcher>(
+ new ExecuteTasksFileSystemCallbackDispatcher(
+ function, profile, child_id, source_url, extension,
+ task_id, file_urls));
}
// fileapi::FileSystemCallbackDispatcher overrides.
@@ -700,6 +699,25 @@ class ExecuteTasksFileBrowserFunction::ExecuteTasksFileSystemCallbackDispatcher
}
private:
+ ExecuteTasksFileSystemCallbackDispatcher(
+ ExecuteTasksFileBrowserFunction* function,
+ Profile* profile,
+ int child_id,
+ const GURL& source_url,
+ const scoped_refptr<const Extension>& extension,
+ const std::string task_id,
+ const std::vector<GURL>& file_urls)
+ : function_(function),
+ target_process_id_(0),
+ profile_(profile),
+ source_url_(source_url),
+ extension_(extension),
+ task_id_(task_id),
+ origin_file_urls_(file_urls) {
+ DCHECK(function_);
+ ExtractTargetExtensionAndProcessID();
+ }
+
// Extracts target extension's id and process from the tasks's id.
void ExtractTargetExtensionAndProcessID() {
// Get task details.
@@ -758,7 +776,7 @@ class ExecuteTasksFileBrowserFunction::ExecuteTasksFileSystemCallbackDispatcher
}
FilePath root_path =
- external_provider->ValidateFileSystemRootAndGetPathOnFileThread(
+ external_provider->GetFileSystemRootPathOnFileThread(
file_origin_url,
fileapi::kFileSystemTypeExternal,
virtual_path,
@@ -867,21 +885,17 @@ void ExecuteTasksFileBrowserFunction::RequestFileEntryOnFileThread(
const GURL& source_url, const std::string& task_id,
const std::vector<GURL>& file_urls) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- fileapi::FileSystemOperation* operation =
- new fileapi::FileSystemOperation(
- new ExecuteTasksFileSystemCallbackDispatcher(
- this,
- profile(),
- render_view_host()->process()->GetID(),
- source_url,
- GetExtension(),
- task_id,
- file_urls),
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
- profile()->GetFileSystemContext());
GURL origin_url = source_url.GetOrigin();
- operation->OpenFileSystem(origin_url, fileapi::kFileSystemTypeExternal,
- false); // create
+ profile()->GetFileSystemContext()->OpenFileSystem(
+ origin_url, fileapi::kFileSystemTypeExternal, false, // create
+ ExecuteTasksFileSystemCallbackDispatcher::Create(
+ this,
+ profile(),
+ render_view_host()->process()->GetID(),
+ source_url,
+ GetExtension(),
+ task_id,
+ file_urls));
}
void ExecuteTasksFileBrowserFunction::ExecuteFailedOnUIThread() {
@@ -1030,7 +1044,7 @@ void FileBrowserFunction::GetLocalPathsOnFileThread(
NOTREACHED();
continue;
}
- FilePath root = provider->ValidateFileSystemRootAndGetPathOnFileThread(
+ FilePath root = provider->GetFileSystemRootPathOnFileThread(
origin_url,
fileapi::kFileSystemTypeExternal,
FilePath(virtual_path),

Powered by Google App Engine
This is Rietveld 408576698