diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 07:09:35 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-12 07:09:35 +0000 |
commit | a3010332c2dcf4ca8f30c8b21a459b67f90b7f24 (patch) | |
tree | 416f5dd7e324f86202ebd72336e43721b484b876 /ppapi/proxy/ppb_fullscreen_proxy.cc | |
parent | c149f3b443acffe9924cb92c62d6adeb92c1d145 (diff) | |
download | chromium_src-a3010332c2dcf4ca8f30c8b21a459b67f90b7f24.zip chromium_src-a3010332c2dcf4ca8f30c8b21a459b67f90b7f24.tar.gz chromium_src-a3010332c2dcf4ca8f30c8b21a459b67f90b7f24.tar.bz2 |
Re-land previous change r65856. Add implementations for Fullscreen and CursorControl interfaces.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65914 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_fullscreen_proxy.cc')
-rw-r--r-- | ppapi/proxy/ppb_fullscreen_proxy.cc | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/ppapi/proxy/ppb_fullscreen_proxy.cc b/ppapi/proxy/ppb_fullscreen_proxy.cc new file mode 100644 index 0000000..ddf0cdb --- /dev/null +++ b/ppapi/proxy/ppb_fullscreen_proxy.cc @@ -0,0 +1,75 @@ +// 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_fullscreen_proxy.h" + +#include "ppapi/c/dev/ppb_fullscreen_dev.h" +#include "ppapi/proxy/plugin_dispatcher.h" +#include "ppapi/proxy/ppapi_messages.h" + +namespace pp { +namespace proxy { + +namespace { + +PP_Bool IsFullscreen(PP_Instance instance) { + PP_Bool result = PP_FALSE; + PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBFullscreen_IsFullscreen( + INTERFACE_ID_PPB_FULLSCREEN, instance, &result)); + return result; +} + +PP_Bool SetFullscreen(PP_Instance instance, PP_Bool fullscreen) { + PP_Bool result = PP_FALSE; + PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBFullscreen_SetFullscreen( + INTERFACE_ID_PPB_FULLSCREEN, instance, fullscreen, &result)); + return result; +} + +const PPB_Fullscreen_Dev ppb_fullscreen = { + &IsFullscreen, + &SetFullscreen +}; + +} // namespace + +PPB_Fullscreen_Proxy::PPB_Fullscreen_Proxy(Dispatcher* dispatcher, + const void* target_interface) + : InterfaceProxy(dispatcher, target_interface) { +} + +PPB_Fullscreen_Proxy::~PPB_Fullscreen_Proxy() { +} + +const void* PPB_Fullscreen_Proxy::GetSourceInterface() const { + return &ppb_fullscreen; +} + +InterfaceID PPB_Fullscreen_Proxy::GetInterfaceId() const { + return INTERFACE_ID_PPB_FULLSCREEN; +} + +void PPB_Fullscreen_Proxy::OnMessageReceived(const IPC::Message& msg) { + IPC_BEGIN_MESSAGE_MAP(PPB_Fullscreen_Proxy, msg) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFullscreen_IsFullscreen, + OnMsgIsFullscreen) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFullscreen_SetFullscreen, + OnMsgSetFullscreen) + IPC_END_MESSAGE_MAP() + // TODO(brettw): handle bad messages! +} + +void PPB_Fullscreen_Proxy::OnMsgIsFullscreen(PP_Instance instance, + PP_Bool* result) { + *result = ppb_fullscreen_target()->IsFullscreen(instance); +} + +void PPB_Fullscreen_Proxy::OnMsgSetFullscreen(PP_Instance instance, + PP_Bool fullscreen, + PP_Bool* result) { + *result = ppb_fullscreen_target()->SetFullscreen(instance, fullscreen); +} + +} // namespace proxy +} // namespace pp |