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

Unified Diff: content/renderer/pepper/pepper_plugin_delegate_impl.cc

Issue 10541113: Notify CloseFile from Pepper to FileSystem. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added DLOG, DCHECK. Created 8 years, 6 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: content/renderer/pepper/pepper_plugin_delegate_impl.cc
diff --git a/content/renderer/pepper/pepper_plugin_delegate_impl.cc b/content/renderer/pepper/pepper_plugin_delegate_impl.cc
index 39401e8849e737bd56ea69648b51cd0e19de3492..21645ae22df4af2d037f7f4e719e1304dd16aa98 100644
--- a/content/renderer/pepper/pepper_plugin_delegate_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_delegate_impl.cc
@@ -855,8 +855,10 @@ class AsyncOpenFileSystemURLCallbackTranslator
: public fileapi::FileSystemCallbackDispatcher {
public:
AsyncOpenFileSystemURLCallbackTranslator(
- const webkit::ppapi::PluginDelegate::AsyncOpenFileCallback& callback)
- : callback_(callback) {
+ const webkit::ppapi::PluginDelegate::AsyncOpenFileCallback& callback,
+ const base::FileUtilProxy::StatusCallback& close_file_callback)
+ : callback_(callback),
+ close_file_callback_(close_file_callback) {
}
virtual ~AsyncOpenFileSystemURLCallbackTranslator() {}
@@ -895,12 +897,13 @@ class AsyncOpenFileSystemURLCallbackTranslator
if (file != base::kInvalidPlatformFileValue) {
base::FileUtilProxy::Close(
RenderThreadImpl::current()->GetFileThreadMessageLoopProxy(), file,
- base::FileUtilProxy::StatusCallback());
+ close_file_callback_);
}
}
private: // TODO(ericu): Delete this?
kinuko 2012/06/26 11:13:36 nit: can you delete this comment (and fix indent)
kinaba 2012/06/27 03:47:42 Done.
webkit::ppapi::PluginDelegate::AsyncOpenFileCallback callback_;
+ base::FileUtilProxy::StatusCallback close_file_callback_;
};
bool PepperPluginDelegateImpl::AsyncOpenFileSystemURL(
@@ -909,7 +912,21 @@ bool PepperPluginDelegateImpl::AsyncOpenFileSystemURL(
FileSystemDispatcher* file_system_dispatcher =
ChildThread::current()->file_system_dispatcher();
return file_system_dispatcher->OpenFile(path, flags,
- new AsyncOpenFileSystemURLCallbackTranslator(callback));
+ new AsyncOpenFileSystemURLCallbackTranslator(
+ callback, GetCloseFileSystemURLCallback(path)));
+}
+
+base::Callback<void (base::PlatformFileError)>
+PepperPluginDelegateImpl::GetCloseFileSystemURLCallback(const GURL& path) {
+ return base::Bind(&PepperPluginDelegateImpl::DoNotifyCloseFile,
+ AsWeakPtr(),
+ path);
+}
+
+void PepperPluginDelegateImpl::DoNotifyCloseFile(
+ const GURL& path,
+ base::PlatformFileError /* unused */) {
+ ChildThread::current()->file_system_dispatcher()->NotifyCloseFile(path);
}
base::PlatformFileError PepperPluginDelegateImpl::OpenFile(

Powered by Google App Engine
This is Rietveld 408576698