resource_creation_impl.h revision 58e6fbe4ee35d65e14b626c557d37565bf8ad179
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_RENDERER_PEPPER_RESOURCE_CREATION_IMPL_H_ 6#define CONTENT_RENDERER_PEPPER_RESOURCE_CREATION_IMPL_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "ppapi/thunk/resource_creation_api.h" 11 12namespace content { 13 14class PepperPluginInstanceImpl; 15 16// This is an abstract class. ResourceCreationAPI functions that implement 17// "old-style" resources are handled here. See 18// content/renderer/pepper/pepper_in_process_resource_creation.h for functions 19// that implement "new-style" resources. 20class ResourceCreationImpl : public ::ppapi::thunk::ResourceCreationAPI { 21 public: 22 explicit ResourceCreationImpl(PepperPluginInstanceImpl* instance); 23 virtual ~ResourceCreationImpl(); 24 25 // ResourceCreationAPI implementation. 26 virtual PP_Resource CreateAudio(PP_Instance instance, 27 PP_Resource config_id, 28 PPB_Audio_Callback audio_callback, 29 void* user_data) OVERRIDE; 30 virtual PP_Resource CreateAudioTrusted(PP_Instance instance) OVERRIDE; 31 virtual PP_Resource CreateAudioConfig(PP_Instance instance, 32 PP_AudioSampleRate sample_rate, 33 uint32_t sample_frame_count) OVERRIDE; 34 virtual PP_Resource CreateAudioInput(PP_Instance instance) OVERRIDE; 35 virtual PP_Resource CreateBroker(PP_Instance instance) OVERRIDE; 36 virtual PP_Resource CreateBuffer(PP_Instance instance, 37 uint32_t size) OVERRIDE; 38 virtual PP_Resource CreateFileRef(PP_Instance instance, 39 PP_Resource file_system, 40 const char* path) OVERRIDE; 41 virtual PP_Resource CreateFileRef( 42 const ::ppapi::PPB_FileRef_CreateInfo& serialized) OVERRIDE; 43 virtual PP_Resource CreateFlashDRM(PP_Instance instance) OVERRIDE; 44 virtual PP_Resource CreateFlashFontFile( 45 PP_Instance instance, 46 const PP_BrowserFont_Trusted_Description* description, 47 PP_PrivateFontCharset charset) OVERRIDE; 48 virtual PP_Resource CreateFlashMenu(PP_Instance instance, 49 const PP_Flash_Menu* menu_data) OVERRIDE; 50 virtual PP_Resource CreateFlashMessageLoop(PP_Instance instance) OVERRIDE; 51 virtual PP_Resource CreateGraphics3D(PP_Instance instance, 52 PP_Resource share_context, 53 const int32_t* attrib_list) OVERRIDE; 54 virtual PP_Resource CreateGraphics3DRaw(PP_Instance instance, 55 PP_Resource share_context, 56 const int32_t* attrib_list) OVERRIDE; 57 virtual PP_Resource CreateHostResolver(PP_Instance instance) OVERRIDE; 58 virtual PP_Resource CreateHostResolverPrivate(PP_Instance instance) OVERRIDE; 59 virtual PP_Resource CreateImageData(PP_Instance instance, 60 PP_ImageDataFormat format, 61 const PP_Size* size, 62 PP_Bool init_to_zero) OVERRIDE; 63 virtual PP_Resource CreateImageDataSimple(PP_Instance instance, 64 PP_ImageDataFormat format, 65 const PP_Size* size, 66 PP_Bool init_to_zero) OVERRIDE; 67 virtual PP_Resource CreateIMEInputEvent(PP_Instance instance, 68 PP_InputEvent_Type type, 69 PP_TimeTicks time_stamp, 70 struct PP_Var text, 71 uint32_t segment_number, 72 const uint32_t* segment_offsets, 73 int32_t target_segment, 74 uint32_t selection_start, 75 uint32_t selection_end) OVERRIDE; 76 virtual PP_Resource CreateIsolatedFileSystem(PP_Instance instance, 77 const char* fsid) OVERRIDE; 78 virtual PP_Resource CreateKeyboardInputEvent( 79 PP_Instance instance, 80 PP_InputEvent_Type type, 81 PP_TimeTicks time_stamp, 82 uint32_t modifiers, 83 uint32_t key_code, 84 PP_Var character_text) OVERRIDE; 85 virtual PP_Resource CreateMouseInputEvent( 86 PP_Instance instance, 87 PP_InputEvent_Type type, 88 PP_TimeTicks time_stamp, 89 uint32_t modifiers, 90 PP_InputEvent_MouseButton mouse_button, 91 const PP_Point* mouse_position, 92 int32_t click_count, 93 const PP_Point* mouse_movement) OVERRIDE; 94 virtual PP_Resource CreateNetAddressFromIPv4Address( 95 PP_Instance instance, 96 const PP_NetAddress_IPv4* ipv4_addr) OVERRIDE; 97 virtual PP_Resource CreateNetAddressFromIPv6Address( 98 PP_Instance instance, 99 const PP_NetAddress_IPv6* ipv6_addr) OVERRIDE; 100 virtual PP_Resource CreateNetAddressFromNetAddressPrivate( 101 PP_Instance instance, 102 const PP_NetAddress_Private& private_addr) OVERRIDE; 103 virtual PP_Resource CreateTouchInputEvent( 104 PP_Instance instance, 105 PP_InputEvent_Type type, 106 PP_TimeTicks time_stamp, 107 uint32_t modifiers) OVERRIDE; 108 virtual PP_Resource CreateNetworkMonitor( 109 PP_Instance instance, 110 PPB_NetworkMonitor_Callback callback, 111 void* user_data) OVERRIDE; 112 virtual PP_Resource CreateResourceArray(PP_Instance instance, 113 const PP_Resource elements[], 114 uint32_t size) OVERRIDE; 115 virtual PP_Resource CreateScrollbar(PP_Instance instance, 116 PP_Bool vertical) OVERRIDE; 117 virtual PP_Resource CreateTalk(PP_Instance instance) OVERRIDE; 118 virtual PP_Resource CreateTCPServerSocketPrivate( 119 PP_Instance instance) OVERRIDE; 120 virtual PP_Resource CreateTCPSocket(PP_Instance instance) OVERRIDE; 121 virtual PP_Resource CreateTCPSocketPrivate(PP_Instance instance) OVERRIDE; 122 virtual PP_Resource CreateUDPSocket(PP_Instance instance) OVERRIDE; 123 virtual PP_Resource CreateUDPSocketPrivate(PP_Instance instance) OVERRIDE; 124 virtual PP_Resource CreateVideoCapture(PP_Instance instance) OVERRIDE; 125 virtual PP_Resource CreateVideoDecoder( 126 PP_Instance instance, 127 PP_Resource graphics3d_id, 128 PP_VideoDecoder_Profile profile) OVERRIDE; 129 virtual PP_Resource CreateVideoDestination( 130 PP_Instance instance) OVERRIDE; 131 virtual PP_Resource CreateVideoSource( 132 PP_Instance instance) OVERRIDE; 133 virtual PP_Resource CreateWheelInputEvent( 134 PP_Instance instance, 135 PP_TimeTicks time_stamp, 136 uint32_t modifiers, 137 const PP_FloatPoint* wheel_delta, 138 const PP_FloatPoint* wheel_ticks, 139 PP_Bool scroll_by_page) OVERRIDE; 140 virtual PP_Resource CreateX509CertificatePrivate( 141 PP_Instance instance) OVERRIDE; 142 143 private: 144 DISALLOW_COPY_AND_ASSIGN(ResourceCreationImpl); 145}; 146 147} // namespace content 148 149#endif // CONTENT_RENDERER_PEPPER_RESOURCE_CREATION_IMPL_H_ 150