| Index: ppapi/proxy/ppb_instance_proxy.cc
|
| ===================================================================
|
| --- ppapi/proxy/ppb_instance_proxy.cc (revision 0)
|
| +++ ppapi/proxy/ppb_instance_proxy.cc (revision 0)
|
| @@ -0,0 +1,138 @@
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ppapi/proxy/ppb_instance_proxy.h"
|
| +
|
| +#include "ppapi/c/pp_var.h"
|
| +#include "ppapi/c/ppb_instance.h"
|
| +#include "ppapi/proxy/plugin_dispatcher.h"
|
| +#include "ppapi/proxy/ppapi_messages.h"
|
| +#include "ppapi/proxy/serialized_var.h"
|
| +
|
| +namespace pp {
|
| +namespace proxy {
|
| +
|
| +namespace {
|
| +
|
| +PP_Var GetWindowObject(PP_Instance instance) {
|
| + Dispatcher* dispatcher = PluginDispatcher::Get();
|
| + ReceiveSerializedVarReturnValue result;
|
| + dispatcher->Send(new PpapiHostMsg_PPBInstance_GetWindowObject(
|
| + INTERFACE_ID_PPB_INSTANCE, instance, &result));
|
| + return result.Return(dispatcher);
|
| +}
|
| +
|
| +PP_Var GetOwnerElementObject(PP_Instance instance) {
|
| + Dispatcher* dispatcher = PluginDispatcher::Get();
|
| + ReceiveSerializedVarReturnValue result;
|
| + dispatcher->Send(new PpapiHostMsg_PPBInstance_GetOwnerElementObject(
|
| + INTERFACE_ID_PPB_INSTANCE, instance, &result));
|
| + return result.Return(dispatcher);
|
| +}
|
| +
|
| +bool BindGraphics(PP_Instance instance, PP_Resource device) {
|
| + bool result;
|
| + PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBInstance_BindGraphics(
|
| + INTERFACE_ID_PPB_INSTANCE, instance, device, &result));
|
| + return result;
|
| +}
|
| +
|
| +bool IsFullFrame(PP_Instance instance) {
|
| + bool result;
|
| + PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBInstance_IsFullFrame(
|
| + INTERFACE_ID_PPB_INSTANCE, instance, &result));
|
| + return result;
|
| +}
|
| +
|
| +PP_Var ExecuteScript(PP_Instance instance, PP_Var script, PP_Var* exception) {
|
| + Dispatcher* dispatcher = PluginDispatcher::Get();
|
| + ReceiveSerializedException se(dispatcher, exception);
|
| + if (se.IsThrown())
|
| + return PP_MakeUndefined();
|
| +
|
| + ReceiveSerializedVarReturnValue result;
|
| + dispatcher->Send(new PpapiHostMsg_PPBInstance_ExecuteScript(
|
| + INTERFACE_ID_PPB_INSTANCE, instance,
|
| + SerializedVarSendInput(dispatcher, script), &se, &result));
|
| + return result.Return(dispatcher);
|
| +}
|
| +
|
| +const PPB_Instance instance_interface = {
|
| + &GetWindowObject,
|
| + &GetOwnerElementObject,
|
| + &BindGraphics,
|
| + &IsFullFrame,
|
| + &ExecuteScript
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +PPB_Instance_Proxy::PPB_Instance_Proxy(Dispatcher* dispatcher,
|
| + const void* target_interface)
|
| + : InterfaceProxy(dispatcher, target_interface) {
|
| +}
|
| +
|
| +PPB_Instance_Proxy::~PPB_Instance_Proxy() {
|
| +}
|
| +
|
| +const void* PPB_Instance_Proxy::GetSourceInterface() const {
|
| + return &instance_interface;
|
| +}
|
| +
|
| +InterfaceID PPB_Instance_Proxy::GetInterfaceId() const {
|
| + return INTERFACE_ID_PPB_INSTANCE;
|
| +}
|
| +
|
| +void PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
|
| + IPC_BEGIN_MESSAGE_MAP(PPB_Instance_Proxy, msg)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetWindowObject,
|
| + OnMsgGetWindowObject)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetOwnerElementObject,
|
| + OnMsgGetOwnerElementObject)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_BindGraphics,
|
| + OnMsgBindGraphics)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_IsFullFrame,
|
| + OnMsgIsFullFrame)
|
| + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_ExecuteScript,
|
| + OnMsgExecuteScript)
|
| + IPC_END_MESSAGE_MAP()
|
| +}
|
| +
|
| +void PPB_Instance_Proxy::OnMsgGetWindowObject(
|
| + PP_Instance instance,
|
| + SerializedVarReturnValue result) {
|
| + result.Return(dispatcher(),
|
| + ppb_instance_target()->GetWindowObject(instance));
|
| +}
|
| +
|
| +void PPB_Instance_Proxy::OnMsgGetOwnerElementObject(
|
| + PP_Instance instance,
|
| + SerializedVarReturnValue result) {
|
| + result.Return(dispatcher(),
|
| + ppb_instance_target()->GetOwnerElementObject(instance));
|
| +}
|
| +
|
| +void PPB_Instance_Proxy::OnMsgBindGraphics(PP_Instance instance,
|
| + PP_Resource device,
|
| + bool* result) {
|
| + *result = ppb_instance_target()->BindGraphics(instance, device);
|
| +}
|
| +
|
| +void PPB_Instance_Proxy::OnMsgIsFullFrame(PP_Instance instance, bool* result) {
|
| + *result = ppb_instance_target()->IsFullFrame(instance);
|
| +}
|
| +
|
| +void PPB_Instance_Proxy::OnMsgExecuteScript(
|
| + PP_Instance instance,
|
| + SerializedVarReceiveInput script,
|
| + SerializedVarOutParam out_exception,
|
| + SerializedVarReturnValue result) {
|
| + result.Return(dispatcher(), ppb_instance_target()->ExecuteScript(
|
| + instance,
|
| + script.Get(dispatcher()),
|
| + out_exception.OutParam(dispatcher())));
|
| +}
|
| +
|
| +} // namespace proxy
|
| +} // namespace pp
|
|
|
| Property changes on: ppapi/proxy/ppb_instance_proxy.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|