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

Unified Diff: content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc

Issue 93403002: Pepper: Add PepperFileSystemBrowserHost::GotFileSystemContext method. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 | « content/browser/renderer_host/pepper/pepper_file_system_browser_host.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc
diff --git a/content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc b/content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc
index a5064a69e4581292c2d1ff6a25d8a4dc55128cea..61762e91811deac774139d69127577211e7a1377 100644
--- a/content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc
+++ b/content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc
@@ -72,14 +72,18 @@ void PepperFileSystemBrowserHost::OpenExisting(const GURL& root_url,
NOTREACHED();
}
called_open_ = true;
- // Get the file system context asynchronously, and then complete the Open
- // operation by calling |callback|.
+ // Get the file system context asynchronously, set up the file system context,
+ // and then complete the Open operation by calling |callback|.
BrowserThread::PostTaskAndReplyWithResult(
BrowserThread::UI,
FROM_HERE,
base::Bind(&GetFileSystemContextFromRenderId, render_process_id),
- base::Bind(&PepperFileSystemBrowserHost::OpenExistingWithContext,
- weak_factory_.GetWeakPtr(), callback));
+ base::Bind(&PepperFileSystemBrowserHost::GotFileSystemContext,
+ weak_factory_.GetWeakPtr(),
+ base::Bind(
+ &PepperFileSystemBrowserHost::OpenExistingFileSystem,
+ weak_factory_.GetWeakPtr(),
+ callback)));
}
int32_t PepperFileSystemBrowserHost::OnResourceMessageReceived(
@@ -130,15 +134,16 @@ int32_t PepperFileSystemBrowserHost::OnHostMsgOpen(
base::Bind(&GetFileSystemContextFromRenderId, render_process_id),
base::Bind(&PepperFileSystemBrowserHost::GotFileSystemContext,
weak_factory_.GetWeakPtr(),
- context->MakeReplyMessageContext(),
- file_system_type));
+ base::Bind(&PepperFileSystemBrowserHost::OpenFileSystem,
+ weak_factory_.GetWeakPtr(),
+ context->MakeReplyMessageContext(),
+ file_system_type)));
return PP_OK_COMPLETIONPENDING;
}
-void PepperFileSystemBrowserHost::OpenExistingWithContext(
- const base::Closure& callback,
- scoped_refptr<fileapi::FileSystemContext> file_system_context) {
- if (file_system_context.get()) {
+void PepperFileSystemBrowserHost::OpenExistingFileSystem(
+ const base::Closure& callback) {
+ if (file_system_context_.get()) {
opened_ = true;
} else {
// If there is no file system context, we log a warning and continue with an
@@ -146,26 +151,23 @@ void PepperFileSystemBrowserHost::OpenExistingWithContext(
// way to communicate the error to the caller.
LOG(WARNING) << "Could not retrieve file system context.";
}
- SetFileSystemContext(file_system_context);
callback.Run();
}
-void PepperFileSystemBrowserHost::GotFileSystemContext(
+void PepperFileSystemBrowserHost::OpenFileSystem(
ppapi::host::ReplyMessageContext reply_context,
- fileapi::FileSystemType file_system_type,
- scoped_refptr<fileapi::FileSystemContext> file_system_context) {
- if (!file_system_context.get()) {
+ fileapi::FileSystemType file_system_type) {
+ if (!file_system_context_.get()) {
OpenFileSystemComplete(
reply_context, GURL(), std::string(), base::PLATFORM_FILE_ERROR_FAILED);
return;
}
GURL origin = browser_ppapi_host_->GetDocumentURLForInstance(
pp_instance()).GetOrigin();
- file_system_context->OpenFileSystem(origin, file_system_type,
+ file_system_context_->OpenFileSystem(origin, file_system_type,
fileapi::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT,
base::Bind(&PepperFileSystemBrowserHost::OpenFileSystemComplete,
weak_factory_.GetWeakPtr(), reply_context));
- SetFileSystemContext(file_system_context);
}
void PepperFileSystemBrowserHost::OpenFileSystemComplete(
@@ -182,16 +184,14 @@ void PepperFileSystemBrowserHost::OpenFileSystemComplete(
host()->SendReply(reply_context, PpapiPluginMsg_FileSystem_OpenReply());
}
-void PepperFileSystemBrowserHost::GotIsolatedFileSystemContext(
+void PepperFileSystemBrowserHost::OpenIsolatedFileSystem(
ppapi::host::ReplyMessageContext reply_context,
const std::string& fsid,
- PP_IsolatedFileSystemType_Private type,
- scoped_refptr<fileapi::FileSystemContext> file_system_context) {
- if (!file_system_context.get()) {
+ PP_IsolatedFileSystemType_Private type) {
+ if (!file_system_context_.get()) {
SendReplyForIsolatedFileSystem(reply_context, fsid, PP_ERROR_FAILED);
return;
}
- SetFileSystemContext(file_system_context);
root_url_ = GURL(fileapi::GetIsolatedFileSystemRootURIString(
browser_ppapi_host_->GetDocumentURLForInstance(pp_instance()).GetOrigin(),
@@ -207,7 +207,7 @@ void PepperFileSystemBrowserHost::GotIsolatedFileSystemContext(
SendReplyForIsolatedFileSystem(reply_context, fsid, PP_OK);
return;
case PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE:
- OpenPluginPrivateFileSystem(reply_context, fsid, file_system_context_);
+ OpenPluginPrivateFileSystem(reply_context, fsid);
return;
default:
NOTREACHED();
@@ -218,8 +218,7 @@ void PepperFileSystemBrowserHost::GotIsolatedFileSystemContext(
void PepperFileSystemBrowserHost::OpenPluginPrivateFileSystem(
ppapi::host::ReplyMessageContext reply_context,
- const std::string& fsid,
- scoped_refptr<fileapi::FileSystemContext> file_system_context) {
+ const std::string& fsid) {
GURL origin = browser_ppapi_host_->GetDocumentURLForInstance(
pp_instance()).GetOrigin();
if (!origin.is_valid()) {
@@ -233,7 +232,7 @@ void PepperFileSystemBrowserHost::OpenPluginPrivateFileSystem(
return;
}
- file_system_context->OpenPluginPrivateFileSystem(
+ file_system_context_->OpenPluginPrivateFileSystem(
origin, fileapi::kFileSystemTypePluginPrivate, fsid, plugin_id,
fileapi::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT,
base::Bind(
@@ -277,9 +276,13 @@ int32_t PepperFileSystemBrowserHost::OnHostMsgInitIsolatedFileSystem(
BrowserThread::UI,
FROM_HERE,
base::Bind(&GetFileSystemContextFromRenderId, render_process_id),
- base::Bind(&PepperFileSystemBrowserHost::GotIsolatedFileSystemContext,
+ base::Bind(&PepperFileSystemBrowserHost::GotFileSystemContext,
weak_factory_.GetWeakPtr(),
- context->MakeReplyMessageContext(), fsid, type));
+ base::Bind(
+ &PepperFileSystemBrowserHost::OpenIsolatedFileSystem,
+ weak_factory_.GetWeakPtr(),
+ context->MakeReplyMessageContext(), fsid, type)));
+
return PP_OK_COMPLETIONPENDING;
}
@@ -294,13 +297,15 @@ void PepperFileSystemBrowserHost::SendReplyForIsolatedFileSystem(
PpapiPluginMsg_FileSystem_InitIsolatedFileSystemReply());
}
-void PepperFileSystemBrowserHost::SetFileSystemContext(
+void PepperFileSystemBrowserHost::GotFileSystemContext(
+ const base::Closure& closure,
scoped_refptr<fileapi::FileSystemContext> file_system_context) {
file_system_context_ = file_system_context;
if (type_ != PP_FILESYSTEMTYPE_EXTERNAL) {
file_system_operation_runner_ =
file_system_context_->CreateFileSystemOperationRunner();
}
+ closure.Run();
}
std::string PepperFileSystemBrowserHost::GetPluginMimeType() const {
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_file_system_browser_host.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698