summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/resource_creation_proxy.cc
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-04 23:29:06 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-04 23:29:06 +0000
commit2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf (patch)
tree76f2667611cd906a5eda052d8c59ec5979bc387e /ppapi/proxy/resource_creation_proxy.cc
parent1098044ebaddc4b637b043e7e6654f33969fef67 (diff)
downloadchromium_src-2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf.zip
chromium_src-2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf.tar.gz
chromium_src-2a1d6d91c755f42a4b15f4c64f7ffeddb38e8fdf.tar.bz2
Regularize how ImageData and Graphics2D are created.
These objects were created differently than any other resoures. This cleans them up to behave like the other resources. BUG= TEST= Review URL: http://codereview.chromium.org/8790009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112946 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/resource_creation_proxy.cc')
-rw-r--r--ppapi/proxy/resource_creation_proxy.cc89
1 files changed, 3 insertions, 86 deletions
diff --git a/ppapi/proxy/resource_creation_proxy.cc b/ppapi/proxy/resource_creation_proxy.cc
index 77936c4..0a0846e 100644
--- a/ppapi/proxy/resource_creation_proxy.cc
+++ b/ppapi/proxy/resource_creation_proxy.cc
@@ -168,25 +168,8 @@ PP_Resource ResourceCreationProxy::CreateImageData(PP_Instance instance,
PP_ImageDataFormat format,
const PP_Size& size,
PP_Bool init_to_zero) {
- PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
- if (!dispatcher)
- return 0;
-
- HostResource result;
- std::string image_data_desc;
- ImageHandle image_handle = ImageData::NullHandle;
- dispatcher->Send(new PpapiHostMsg_ResourceCreation_ImageData(
- API_ID_RESOURCE_CREATION, instance, format, size, init_to_zero,
- &result, &image_data_desc, &image_handle));
-
- if (result.is_null() || image_data_desc.size() != sizeof(PP_ImageDataDesc))
- return 0;
-
- // We serialize the PP_ImageDataDesc just by copying to a string.
- PP_ImageDataDesc desc;
- memcpy(&desc, image_data_desc.data(), sizeof(PP_ImageDataDesc));
-
- return (new ImageData(result, desc, image_handle))->GetReference();
+ return PPB_ImageData_Proxy::CreateProxyResource(instance, format, size,
+ init_to_zero);
}
PP_Resource ResourceCreationProxy::CreateKeyboardInputEvent(
@@ -345,73 +328,7 @@ bool ResourceCreationProxy::Send(IPC::Message* msg) {
}
bool ResourceCreationProxy::OnMessageReceived(const IPC::Message& msg) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(ResourceCreationProxy, msg)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_ResourceCreation_Graphics2D,
- OnMsgCreateGraphics2D)
- IPC_MESSAGE_HANDLER(PpapiHostMsg_ResourceCreation_ImageData,
- OnMsgCreateImageData)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-void ResourceCreationProxy::OnMsgCreateGraphics2D(PP_Instance instance,
- const PP_Size& size,
- PP_Bool is_always_opaque,
- HostResource* result) {
- ppapi::thunk::EnterFunction<ResourceCreationAPI> enter(instance, false);
- if (enter.succeeded()) {
- result->SetHostResource(instance, enter.functions()->CreateGraphics2D(
- instance, size, is_always_opaque));
- }
-}
-
-void ResourceCreationProxy::OnMsgCreateImageData(
- PP_Instance instance,
- int32_t format,
- const PP_Size& size,
- PP_Bool init_to_zero,
- HostResource* result,
- std::string* image_data_desc,
- ImageHandle* result_image_handle) {
- *result_image_handle = ImageData::NullHandle;
-
- ppapi::thunk::EnterFunction<ResourceCreationAPI> enter(instance, false);
- if (enter.failed())
- return;
-
- PP_Resource resource = enter.functions()->CreateImageData(
- instance, static_cast<PP_ImageDataFormat>(format), size, init_to_zero);
- if (!resource)
- return;
- result->SetHostResource(instance, resource);
-
- // Get the description, it's just serialized as a string.
- ppapi::thunk::EnterResourceNoLock<ppapi::thunk::PPB_ImageData_API>
- enter_resource(resource, false);
- PP_ImageDataDesc desc;
- if (enter_resource.object()->Describe(&desc) == PP_TRUE) {
- image_data_desc->resize(sizeof(PP_ImageDataDesc));
- memcpy(&(*image_data_desc)[0], &desc, sizeof(PP_ImageDataDesc));
- }
-
- // Get the shared memory handle.
- const PPB_ImageDataTrusted* trusted =
- reinterpret_cast<const PPB_ImageDataTrusted*>(
- dispatcher()->local_get_interface()(PPB_IMAGEDATA_TRUSTED_INTERFACE));
- uint32_t byte_count = 0;
- if (trusted) {
- int32_t handle;
- if (trusted->GetSharedMemory(resource, &handle, &byte_count) == PP_OK) {
-#if defined(OS_WIN)
- ImageHandle ih = ImageData::HandleFromInt(handle);
- *result_image_handle = dispatcher()->ShareHandleWithRemote(ih, false);
-#else
- *result_image_handle = ImageData::HandleFromInt(handle);
-#endif
- }
- }
+ return false;
}
} // namespace proxy