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

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

Issue 21219002: Remove PluginDelegate completely. In a followup I'll rename PepperPluginDelegateImpl to something c… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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 | « content/renderer/pepper/pepper_file_io_host.h ('k') | content/renderer/pepper/pepper_graphics_2d_host.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/pepper/pepper_file_io_host.cc
===================================================================
--- content/renderer/pepper/pepper_file_io_host.cc (revision 214295)
+++ content/renderer/pepper/pepper_file_io_host.cc (working copy)
@@ -16,9 +16,11 @@
#include "content/public/common/content_client.h"
#include "content/public/renderer/content_renderer_client.h"
#include "content/renderer/pepper/host_globals.h"
+#include "content/renderer/pepper/pepper_plugin_delegate_impl.h"
#include "content/renderer/pepper/pepper_plugin_instance_impl.h"
#include "content/renderer/pepper/ppb_file_ref_impl.h"
#include "content/renderer/pepper/quota_file_io.h"
+#include "content/renderer/pepper/resource_helper.h"
#include "content/renderer/render_thread_impl.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/host/dispatch_host_message.h"
@@ -141,17 +143,12 @@
PP_Instance instance,
PP_Resource resource)
: ResourceHost(host->GetPpapiHost(), instance, resource),
- plugin_delegate_(NULL),
file_(base::kInvalidPlatformFileValue),
file_system_type_(PP_FILESYSTEMTYPE_INVALID),
quota_policy_(quota::kQuotaLimitTypeUnknown),
is_running_in_process_(host->IsRunningInProcess()),
open_flags_(0),
weak_factory_(this) {
- // TODO(victorhsieh): eliminate plugin_delegate_ as it's no longer needed.
- PepperPluginInstanceImpl* plugin_instance =
- HostGlobals::Get()->GetInstance(instance);
- plugin_delegate_ = plugin_instance ? plugin_instance->delegate() : NULL;
}
PepperFileIOHost::~PepperFileIOHost() {
@@ -217,9 +214,6 @@
return PP_ERROR_FAILED;
file_system_type_ = type;
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
PPB_FileRef_Impl* file_ref = static_cast<PPB_FileRef_Impl*>(file_ref_api);
if (file_ref->HasValidFileSystem()) {
file_system_url_ = file_ref->GetFileSystemURL();
@@ -235,9 +229,12 @@
base::Bind(&DidOpenFileSystemURL, callback),
base::Bind(&DidFailOpenFileSystemURL, callback));
} else {
- if (file_system_type_ != PP_FILESYSTEMTYPE_EXTERNAL)
+ PepperPluginDelegateImpl* plugin_delegate =
+ static_cast<PepperPluginInstanceImpl*>(
+ PepperPluginInstance::Get(pp_instance()))->delegate();
+ if (file_system_type_ != PP_FILESYSTEMTYPE_EXTERNAL || !plugin_delegate)
return PP_ERROR_FAILED;
- if (!plugin_delegate_->AsyncOpenFile(
+ if (!plugin_delegate->AsyncOpenFile(
file_ref->GetSystemPath(), flags,
base::Bind(&PepperFileIOHost::ExecutePlatformOpenFileCallback,
weak_factory_.GetWeakPtr(),
@@ -256,11 +253,8 @@
if (rv != PP_OK)
return rv;
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
if (!base::FileUtilProxy::GetFileInfoFromPlatformFile(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
base::Bind(&PepperFileIOHost::ExecutePlatformQueryCallback,
weak_factory_.GetWeakPtr(),
@@ -280,9 +274,6 @@
if (rv != PP_OK)
return rv;
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
if (file_system_type_ != PP_FILESYSTEMTYPE_EXTERNAL) {
FileSystemDispatcher* file_system_dispatcher =
ChildThread::current()->file_system_dispatcher();
@@ -300,7 +291,7 @@
// TODO(nhiroki): fix a failure of FileIO.Touch for an external filesystem on
// Mac and Linux due to sandbox restrictions (http://crbug.com/101128).
if (!base::FileUtilProxy::Touch(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
PPTimeToTime(last_access_time),
PPTimeToTime(last_modified_time),
@@ -332,11 +323,8 @@
return PP_OK_COMPLETIONPENDING;
}
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
if (!base::FileUtilProxy::Read(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
offset,
max_read_length,
@@ -366,11 +354,8 @@
context->MakeReplyMessageContext())))
return PP_ERROR_FAILED;
} else {
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
if (!base::FileUtilProxy::Write(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
offset,
buffer.c_str(),
@@ -393,9 +378,6 @@
if (rv != PP_OK)
return rv;
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
if (file_system_type_ != PP_FILESYSTEMTYPE_EXTERNAL) {
FileSystemDispatcher* file_system_dispatcher =
ChildThread::current()->file_system_dispatcher();
@@ -408,7 +390,7 @@
// TODO(nhiroki): fix a failure of FileIO.SetLength for an external
// filesystem on Mac due to sandbox restrictions (http://crbug.com/156077).
if (!base::FileUtilProxy::Truncate(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
length,
base::Bind(&PepperFileIOHost::ExecutePlatformGeneralCallback,
@@ -428,11 +410,8 @@
if (rv != PP_OK)
return rv;
- if (!plugin_delegate_)
- return PP_ERROR_FAILED;
-
if (!base::FileUtilProxy::Flush(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
base::Bind(&PepperFileIOHost::ExecutePlatformGeneralCallback,
weak_factory_.GetWeakPtr(),
@@ -445,9 +424,9 @@
int32_t PepperFileIOHost::OnHostMsgClose(
ppapi::host::HostMessageContext* context) {
- if (file_ != base::kInvalidPlatformFileValue && plugin_delegate_) {
+ if (file_ != base::kInvalidPlatformFileValue) {
base::FileUtilProxy::Close(
- plugin_delegate_->GetFileThreadMessageLoopProxy().get(),
+ RenderThreadImpl::current()->GetFileThreadMessageLoopProxy().get(),
file_,
base::ResetAndReturn(&notify_close_file_callback_));
file_ = base::kInvalidPlatformFileValue;
« no previous file with comments | « content/renderer/pepper/pepper_file_io_host.h ('k') | content/renderer/pepper/pepper_graphics_2d_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698