pepper_talk_host.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
12fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath// Use of this source code is governed by a BSD-style license that can be 32fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath// found in the LICENSE file. 42fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath 50e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig#ifndef CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_TALK_HOST_H_ 62fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath#define CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_TALK_HOST_H_ 70e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 82fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath#include "base/memory/weak_ptr.h" 92fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath#include "ppapi/c/private/ppb_talk_private.h" 10549e2c4a9858a380b03eb6e2ff4861d2c6687d6aDmitry V. Levin#include "ppapi/host/resource_host.h" 11549e2c4a9858a380b03eb6e2ff4861d2c6687d6aDmitry V. Levin#include "ppapi/proxy/resource_message_params.h" 12549e2c4a9858a380b03eb6e2ff4861d2c6687d6aDmitry V. Levin 13549e2c4a9858a380b03eb6e2ff4861d2c6687d6aDmitry V. Levinnamespace content { 14b63256e69bf3f1a74aadb0e14556490bc8f4ef95Denys Vlasenkoclass BrowserPpapiHost; 150e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig} 16b9e897d6aa535651b400d44080e48d88ab708da2Dmitry V. Levin 172fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrathnamespace ppapi { 185273cb7d607e89043a80da36cf13580567c0dcd0Dmitry V. Levinnamespace host { 195273cb7d607e89043a80da36cf13580567c0dcd0Dmitry V. Levinstruct ReplyMessageContext; 202fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath} 212fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath} 220e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 232fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrathnamespace chrome { 242fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath 25f07367954c9b41bf87deba08e79e5bb4c3b72c55Denys Vlasenkoclass PepperTalkHost : public ppapi::host::ResourceHost { 26549e2c4a9858a380b03eb6e2ff4861d2c6687d6aDmitry V. Levin public: 279679296d56e3c0a948b1b4dcce99fd3c9b253a3dNamhyung Kim PepperTalkHost(content::BrowserPpapiHost* host, 289679296d56e3c0a948b1b4dcce99fd3c9b253a3dNamhyung Kim PP_Instance instance, 299679296d56e3c0a948b1b4dcce99fd3c9b253a3dNamhyung Kim PP_Resource resource); 300e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig virtual ~PepperTalkHost(); 31549e2c4a9858a380b03eb6e2ff4861d2c6687d6aDmitry V. Levin 320e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig private: 332fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath // ResourceHost override. 342fe7b13b2f893f7647408af98576affe2b9b123dRoland McGrath virtual int32_t OnResourceMessageReceived( 350e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig const IPC::Message& msg, 360e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig ppapi::host::HostMessageContext* context) OVERRIDE; 370e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 380e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig int32_t OnRequestPermission(ppapi::host::HostMessageContext* context, 390e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig PP_TalkPermission permission); 400e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig int32_t OnStartRemoting(ppapi::host::HostMessageContext* context); 412c42f32518e43b1e5ccb00c19010a799be6858d4Dmitry V. Levin int32_t OnStopRemoting(ppapi::host::HostMessageContext* context); 420e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig void OnRemotingStopEvent(); 430e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 440e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig void OnRequestPermissionCompleted(ppapi::host::ReplyMessageContext reply); 450e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig void OnStartRemotingCompleted(ppapi::host::ReplyMessageContext reply); 460e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig void OnStopRemotingCompleted(ppapi::host::ReplyMessageContext reply); 47e86f54272c6968a4a0ed2d9c397a6ab3f74d4749Dmitry V. Levin 4899d3e01eefa315999574e205b9c9d65ab01d1b68Denys Vlasenko base::WeakPtrFactory<PepperTalkHost> weak_factory_; 490e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig content::BrowserPpapiHost* browser_ppapi_host_; 500e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig bool remoting_started_; 510e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 520e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig DISALLOW_COPY_AND_ASSIGN(PepperTalkHost); 530e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig}; 540e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 550e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig} // namespace chrome 560e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig 57361aac5193045db0ff0d2d0a7a19964793ab1ab7Roland McGrath#endif // CHROME_BROWSER_RENDERER_HOST_PEPPER_PEPPER_TALK_HOST_H_ 580e035502d28ef981636abde3139247e6fb2bfcceMichal Ludvig