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

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

Issue 13726024: Refactor FileSystem (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 8 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 d2be7ccb80dc8d3e576f38d2d4118ac9ed7013ce..91a526ea5c89cb89279ebd9321a06dbc8935c16c 100644
--- a/content/renderer/pepper/pepper_plugin_delegate_impl.cc
+++ b/content/renderer/pepper/pepper_plugin_delegate_impl.cc
@@ -43,6 +43,7 @@
#include "content/renderer/pepper/content_renderer_pepper_host_factory.h"
#include "content/renderer/pepper/pepper_broker_impl.h"
#include "content/renderer/pepper/pepper_device_enumeration_event_handler.h"
+#include "content/renderer/pepper/pepper_file_system_host.h"
#include "content/renderer/pepper/pepper_hung_plugin_filter.h"
#include "content/renderer/pepper/pepper_in_process_resource_creation.h"
#include "content/renderer/pepper/pepper_platform_audio_input_impl.h"
@@ -340,6 +341,16 @@ void CreateHostForInProcessModule(RenderViewImpl* render_view,
render_view->PpapiPluginCreated(host_impl);
}
+template <typename HostType>
+const HostType* GetRendererResourceHost(
+ PP_Instance instance, PP_Resource resource) {
+ const ppapi::host::PpapiHost* ppapi_host =
+ RendererPpapiHost::GetForPPInstance(instance)->GetPpapiHost();
+ if (!resource || !ppapi_host)
+ return NULL;
+ return static_cast<HostType*>(ppapi_host->GetResourceHost(resource));
+}
+
} // namespace
PepperPluginDelegateImpl::PepperPluginDelegateImpl(RenderViewImpl* render_view)
@@ -1016,15 +1027,25 @@ void PepperPluginDelegateImpl::WillHandleMouseEvent() {
last_mouse_event_target_ = NULL;
}
-bool PepperPluginDelegateImpl::OpenFileSystem(
- const GURL& origin_url,
- fileapi::FileSystemType type,
- long long size,
- fileapi::FileSystemCallbackDispatcher* dispatcher) {
- FileSystemDispatcher* file_system_dispatcher =
- ChildThread::current()->file_system_dispatcher();
- return file_system_dispatcher->OpenFileSystem(
- origin_url, type, size, true /* create */, dispatcher);
+bool PepperPluginDelegateImpl::IsFileSystemOpened(PP_Instance instance,
+ PP_Resource resource) const {
+ const PepperFileSystemHost* host =
+ GetRendererResourceHost<PepperFileSystemHost>(instance, resource);
+ return host && host->IsOpened();
+}
+
+PP_FileSystemType PepperPluginDelegateImpl::GetFileSystemType(
+ PP_Instance instance, PP_Resource resource) const {
+ const PepperFileSystemHost* host =
+ GetRendererResourceHost<PepperFileSystemHost>(instance, resource);
+ return host ? host->GetType() : PP_FILESYSTEMTYPE_INVALID;
+}
+
+GURL PepperPluginDelegateImpl::GetFileSystemRootUrl(
+ PP_Instance instance, PP_Resource resource) const {
+ const PepperFileSystemHost* host =
+ GetRendererResourceHost<PepperFileSystemHost>(instance, resource);
+ return host ? host->GetRootUrl() : GURL();
}
bool PepperPluginDelegateImpl::MakeDirectory(
@@ -1619,4 +1640,10 @@ IPC::PlatformFileForTransit PepperPluginDelegateImpl::ShareHandleWithRemote(
should_close_source);
}
+bool PepperPluginDelegateImpl::IsRunningInProcess(PP_Instance instance) const {
+ RendererPpapiHostImpl* host =
+ RendererPpapiHostImpl::GetForPPInstance(instance);
+ return host && host->IsRunningInProcess();
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698