15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_PROXY_PPB_INSTANCE_PROXY_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_PROXY_PPB_INSTANCE_PROXY_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_var.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/proxy/interface_proxy.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/proxy/proxy_completion_callback_factory.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/shared_impl/host_resource.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/shared_impl/ppb_instance_shared.h" 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/shared_impl/singleton_resource_id.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/thunk/ppb_instance_api.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/utility/completion_callback_factory.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Windows headers interfere with this file. 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PostMessage 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef PostMessage 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_DecryptedBlockInfo; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_DecryptedFrameInfo; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace proxy { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarReceiveInput; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarOutParam; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SerializedVarReturnValue; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PPB_Instance_Proxy : public InterfaceProxy, 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public PPB_Instance_Shared { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PPB_Instance_Proxy(Dispatcher* dispatcher); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~PPB_Instance_Proxy(); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static const Info* GetInfoPrivate(); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // InterfaceProxy implementation. 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& msg); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // PPB_Instance_API implementation. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool BindGraphics(PP_Instance instance, 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource device) OVERRIDE; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool IsFullFrame(PP_Instance instance) OVERRIDE; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual const ViewData* GetViewData(PP_Instance instance) OVERRIDE; 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual PP_Bool FlashIsFullscreen(PP_Instance instance) OVERRIDE; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var GetWindowObject(PP_Instance instance) OVERRIDE; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var GetOwnerElementObject(PP_Instance instance) OVERRIDE; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var ExecuteScript(PP_Instance instance, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var script, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var* exception) OVERRIDE; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual uint32_t GetAudioHardwareOutputSampleRate(PP_Instance instance) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OVERRIDE; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OVERRIDE; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var GetDefaultCharSet(PP_Instance instance) OVERRIDE; 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void NumberOfFindResultsChanged(PP_Instance instance, 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t total, 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool final_result) OVERRIDE; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SelectedFindResultChanged(PP_Instance instance, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t index) OVERRIDE; 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual PP_Bool IsFullscreen(PP_Instance instance) OVERRIDE; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool SetFullscreen(PP_Instance instance, 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool fullscreen) OVERRIDE; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool GetScreenSize(PP_Instance instance, 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Size* size) OVERRIDE; 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual Resource* GetSingletonResource(PP_Instance instance, 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SingletonResourceID id) OVERRIDE; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int32_t RequestInputEvents(PP_Instance instance, 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t event_classes) OVERRIDE; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int32_t RequestFilteringInputEvents(PP_Instance instance, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t event_classes) OVERRIDE; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ClearInputEventRequest(PP_Instance instance, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t event_classes) OVERRIDE; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ZoomChanged(PP_Instance instance, double factor) OVERRIDE; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ZoomLimitsChanged(PP_Instance instance, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double minimum_factor, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double maximium_factor) OVERRIDE; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void PostMessage(PP_Instance instance, PP_Var message) OVERRIDE; 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool SetCursor(PP_Instance instance, 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_MouseCursor_Type type, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource image, 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_Point* hot_spot) OVERRIDE; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int32_t LockMouse(PP_Instance instance, 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<TrackedCallback> callback) OVERRIDE; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void UnlockMouse(PP_Instance instance) OVERRIDE; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetTextInputType(PP_Instance instance, 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_TextInput_Type type) OVERRIDE; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void UpdateCaretPosition(PP_Instance instance, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_Rect& caret, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_Rect& bounding_box) OVERRIDE; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void CancelCompositionText(PP_Instance instance) OVERRIDE; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SelectionChanged(PP_Instance instance) OVERRIDE; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void UpdateSurroundingText(PP_Instance instance, 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* text, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t caret, 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t anchor) OVERRIDE; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var GetDocumentURL(PP_Instance instance, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLComponents_Dev* components) OVERRIDE; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(OS_NACL) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var ResolveRelativeToDocument( 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var relative, 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLComponents_Dev* components) OVERRIDE; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) OVERRIDE; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Bool DocumentCanAccessDocument(PP_Instance instance, 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance target) OVERRIDE; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual PP_Var GetPluginInstanceURL( 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLComponents_Dev* components) OVERRIDE; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void NeedKey(PP_Instance instance, 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var key_system, 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var session_id, 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var init_data) OVERRIDE; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void KeyAdded(PP_Instance instance, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var key_system, 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var session_id) OVERRIDE; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void KeyMessage(PP_Instance instance, 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var key_system, 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var session_id, 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Var message, 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var default_url) OVERRIDE; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void KeyError(PP_Instance instance, 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var key_system, 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Var session_id, 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t media_error, 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t system_code) OVERRIDE; 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DeliverBlock(PP_Instance instance, 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource decrypted_block, 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_DecryptedBlockInfo* block_info) OVERRIDE; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DecoderInitializeDone(PP_Instance instance, 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id, 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool success) OVERRIDE; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DecoderDeinitializeDone(PP_Instance instance, 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id) OVERRIDE; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DecoderResetDone(PP_Instance instance, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id) OVERRIDE; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DeliverFrame(PP_Instance instance, 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource decrypted_frame, 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_DecryptedFrameInfo* frame_info) OVERRIDE; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DeliverSamples(PP_Instance instance, 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource audio_frames, 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_DecryptedBlockInfo* block_info) OVERRIDE; 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // !defined(OS_NACL) 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static const ApiID kApiID = API_ID_PPB_INSTANCE; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Plugin -> Host message handlers. 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetWindowObject(PP_Instance instance, 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetOwnerElementObject(PP_Instance instance, 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgBindGraphics(PP_Instance instance, 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource device); 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgIsFullFrame(PP_Instance instance, PP_Bool* result); 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgExecuteScript(PP_Instance instance, 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput script, 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarOutParam out_exception, 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetAudioHardwareOutputSampleRate(PP_Instance instance, 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t *result); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetAudioHardwareOutputBufferSize(PP_Instance instance, 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t *result); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetDefaultCharSet(PP_Instance instance, 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgSetFullscreen(PP_Instance instance, 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool fullscreen, 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetScreenSize(PP_Instance instance, 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result, 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Size* size); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgRequestInputEvents(PP_Instance instance, 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_filtering, 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t event_classes); 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgClearInputEvents(PP_Instance instance, 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t event_classes); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgPostMessage(PP_Instance instance, 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput message); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgLockMouse(PP_Instance instance); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgUnlockMouse(PP_Instance instance); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgSetCursor(PP_Instance instance, 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t type, 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ppapi::HostResource& custom_image, 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_Point& hot_spot); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgSetTextInputType(PP_Instance instance, PP_TextInput_Type type); 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgUpdateCaretPosition(PP_Instance instance, 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_Rect& caret, 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const PP_Rect& bounding_box); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgCancelCompositionText(PP_Instance instance); 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgUpdateSurroundingText( 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& text, 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t caret, 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t anchor); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetDocumentURL(PP_Instance instance, 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_URLComponents_Dev* components, 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(OS_NACL) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgResolveRelativeToDocument(PP_Instance instance, 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput relative, 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgDocumentCanRequest(PP_Instance instance, 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput url, 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgDocumentCanAccessDocument(PP_Instance active, 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance target, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool* result); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnHostMsgGetPluginInstanceURL(PP_Instance instance, 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReturnValue result); 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgNeedKey(PP_Instance instance, 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput key_system, 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput session_id, 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput init_data); 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgKeyAdded(PP_Instance instance, 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput key_system, 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput session_id); 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgKeyMessage(PP_Instance instance, 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput key_system, 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput session_id, 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SerializedVarReceiveInput message, 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput default_url); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgKeyError(PP_Instance instance, 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput key_system, 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SerializedVarReceiveInput session_id, 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t media_error, 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t system_code); 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgDecoderInitializeDone( 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id, 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool success); 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgDecoderDeinitializeDone( 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id); 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgDecoderResetDone(PP_Instance instance, 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id); 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgDeliverBlock(PP_Instance instance, 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource decrypted_block, 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& serialized_block_info); 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgDeliverFrame(PP_Instance instance, 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource decrypted_frame, 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& serialized_block_info); 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnHostMsgDeliverSamples( 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Instance instance, 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource audio_frames, 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& serialized_block_info); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // !defined(OS_NACL) 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Host -> Plugin message handlers. 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginMsgMouseLockComplete(PP_Instance instance, int32_t result); 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void MouseLockCompleteInHost(int32_t result, PP_Instance instance); 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Other helpers. 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CancelAnyPendingRequestSurroundingText(PP_Instance instance); 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProxyCompletionCallbackFactory<PPB_Instance_Proxy> callback_factory_; 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace proxy 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ppapi 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // PPAPI_PROXY_PPB_INSTANCE_PROXY_H_ 277