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.
5 #include "content/renderer/pepper/resource_creation_impl.h"
7 #include "content/renderer/pepper/common.h"
8 #include "content/renderer/pepper/ppb_audio_impl.h"
9 #include "content/renderer/pepper/ppb_broker_impl.h"
10 #include "content/renderer/pepper/ppb_buffer_impl.h"
11 #include "content/renderer/pepper/ppb_flash_message_loop_impl.h"
12 #include "content/renderer/pepper/ppb_graphics_3d_impl.h"
13 #include "content/renderer/pepper/ppb_image_data_impl.h"
14 #include "content/renderer/pepper/ppb_scrollbar_impl.h"
15 #include "content/renderer/pepper/ppb_video_decoder_impl.h"
16 #include "ppapi/c/pp_size.h"
17 #include "ppapi/shared_impl/ppb_audio_config_shared.h"
18 #include "ppapi/shared_impl/ppb_audio_shared.h"
19 #include "ppapi/shared_impl/ppb_image_data_shared.h"
20 #include "ppapi/shared_impl/ppb_input_event_shared.h"
21 #include "ppapi/shared_impl/var.h"
23 using ppapi::InputEventData;
24 using ppapi::PPB_InputEvent_Shared;
25 using ppapi::StringVar;
29 ResourceCreationImpl::ResourceCreationImpl(PepperPluginInstanceImpl* instance) {
32 ResourceCreationImpl::~ResourceCreationImpl() {}
34 PP_Resource ResourceCreationImpl::CreateAudio1_0(
36 PP_Resource config_id,
37 PPB_Audio_Callback_1_0 audio_callback,
39 return 0; // Not supported in-process.
42 PP_Resource ResourceCreationImpl::CreateAudio(PP_Instance instance,
43 PP_Resource config_id,
44 PPB_Audio_Callback audio_callback,
46 return 0; // Not supported in-process.
49 PP_Resource ResourceCreationImpl::CreateAudioConfig(
51 PP_AudioSampleRate sample_rate,
52 uint32_t sample_frame_count) {
53 return ppapi::PPB_AudioConfig_Shared::Create(
54 ppapi::OBJECT_IS_IMPL, instance, sample_rate, sample_frame_count);
57 PP_Resource ResourceCreationImpl::CreateAudioTrusted(PP_Instance instance) {
58 return (new PPB_Audio_Impl(instance))->GetReference();
61 PP_Resource ResourceCreationImpl::CreateAudioInput(PP_Instance instance) {
62 return 0; // Not supported in-process.
65 PP_Resource ResourceCreationImpl::CreateCompositor(PP_Instance instance) {
66 return 0; // Not supported in-process.
69 PP_Resource ResourceCreationImpl::CreateBroker(PP_Instance instance) {
70 return (new PPB_Broker_Impl(instance))->GetReference();
73 PP_Resource ResourceCreationImpl::CreateBuffer(PP_Instance instance,
75 return PPB_Buffer_Impl::Create(instance, size);
78 PP_Resource ResourceCreationImpl::CreateFlashDRM(PP_Instance instance) {
79 return 0; // Not supported in-process.
82 PP_Resource ResourceCreationImpl::CreateFlashFontFile(
84 const PP_BrowserFont_Trusted_Description* description,
85 PP_PrivateFontCharset charset) {
86 return 0; // Not supported in-process.
89 PP_Resource ResourceCreationImpl::CreateFlashMenu(
91 const PP_Flash_Menu* menu_data) {
92 return 0; // Not supported in-process.
95 PP_Resource ResourceCreationImpl::CreateFlashMessageLoop(PP_Instance instance) {
96 return PPB_Flash_MessageLoop_Impl::Create(instance);
99 PP_Resource ResourceCreationImpl::CreateGraphics3D(PP_Instance instance,
100 PP_Resource share_context,
101 const int32_t* attrib_list) {
102 return PPB_Graphics3D_Impl::Create(instance, share_context, attrib_list);
105 PP_Resource ResourceCreationImpl::CreateGraphics3DRaw(
106 PP_Instance instance,
107 PP_Resource share_context,
108 const int32_t* attrib_list) {
109 return PPB_Graphics3D_Impl::CreateRaw(instance, share_context, attrib_list);
112 PP_Resource ResourceCreationImpl::CreateHostResolver(PP_Instance instance) {
113 return 0; // Not supported in-process.
116 PP_Resource ResourceCreationImpl::CreateHostResolverPrivate(
117 PP_Instance instance) {
118 return 0; // Not supported in-process.
121 PP_Resource ResourceCreationImpl::CreateImageData(PP_Instance instance,
122 PP_ImageDataFormat format,
124 PP_Bool init_to_zero) {
125 return PPB_ImageData_Impl::Create(instance,
126 ppapi::PPB_ImageData_Shared::PLATFORM,
132 PP_Resource ResourceCreationImpl::CreateImageDataSimple(
133 PP_Instance instance,
134 PP_ImageDataFormat format,
136 PP_Bool init_to_zero) {
137 return PPB_ImageData_Impl::Create(instance,
138 ppapi::PPB_ImageData_Shared::SIMPLE,
144 PP_Resource ResourceCreationImpl::CreateIMEInputEvent(
145 PP_Instance instance,
146 PP_InputEvent_Type type,
147 PP_TimeTicks time_stamp,
149 uint32_t segment_number,
150 const uint32_t* segment_offsets,
151 int32_t target_segment,
152 uint32_t selection_start,
153 uint32_t selection_end) {
154 return PPB_InputEvent_Shared::CreateIMEInputEvent(ppapi::OBJECT_IS_IMPL,
166 PP_Resource ResourceCreationImpl::CreateKeyboardInputEvent_1_0(
167 PP_Instance instance,
168 PP_InputEvent_Type type,
169 PP_TimeTicks time_stamp,
172 struct PP_Var character_text) {
173 PP_Var code = StringVar::StringToPPVar("");
174 return PPB_InputEvent_Shared::CreateKeyboardInputEvent(ppapi::OBJECT_IS_IMPL,
184 PP_Resource ResourceCreationImpl::CreateKeyboardInputEvent_1_2(
185 PP_Instance instance,
186 PP_InputEvent_Type type,
187 PP_TimeTicks time_stamp,
190 struct PP_Var character_text,
191 struct PP_Var code) {
192 return PPB_InputEvent_Shared::CreateKeyboardInputEvent(ppapi::OBJECT_IS_IMPL,
202 PP_Resource ResourceCreationImpl::CreateMediaStreamVideoTrack(
203 PP_Instance instance) {
204 return 0; // Not supported in-process.
207 PP_Resource ResourceCreationImpl::CreateMouseInputEvent(
208 PP_Instance instance,
209 PP_InputEvent_Type type,
210 PP_TimeTicks time_stamp,
212 PP_InputEvent_MouseButton mouse_button,
213 const PP_Point* mouse_position,
215 const PP_Point* mouse_movement) {
216 return PPB_InputEvent_Shared::CreateMouseInputEvent(ppapi::OBJECT_IS_IMPL,
227 PP_Resource ResourceCreationImpl::CreateNetAddressFromIPv4Address(
228 PP_Instance instance,
229 const PP_NetAddress_IPv4* ipv4_addr) {
230 return 0; // Not supported in-process.
233 PP_Resource ResourceCreationImpl::CreateNetAddressFromIPv6Address(
234 PP_Instance instance,
235 const PP_NetAddress_IPv6* ipv6_addr) {
236 return 0; // Not supported in-process.
239 PP_Resource ResourceCreationImpl::CreateNetAddressFromNetAddressPrivate(
240 PP_Instance instance,
241 const PP_NetAddress_Private& private_addr) {
242 return 0; // Not supported in-process.
245 PP_Resource ResourceCreationImpl::CreateNetworkMonitor(PP_Instance instance) {
246 return 0; // Not supported in-process.
249 PP_Resource ResourceCreationImpl::CreateOutputProtectionPrivate(
250 PP_Instance instance) {
251 return 0; // Not supported in-process.
254 PP_Resource ResourceCreationImpl::CreatePlatformVerificationPrivate(
255 PP_Instance instance) {
256 return 0; // Not supported in-process.
259 PP_Resource ResourceCreationImpl::CreateScrollbar(PP_Instance instance,
261 return PPB_Scrollbar_Impl::Create(instance, PP_ToBool(vertical));
264 PP_Resource ResourceCreationImpl::CreateTalk(PP_Instance /* instance */) {
265 return 0; // Not supported in-process.
268 PP_Resource ResourceCreationImpl::CreateTCPServerSocketPrivate(
269 PP_Instance instance) {
270 return 0; // Not supported in-process.
273 PP_Resource ResourceCreationImpl::CreateTCPSocket1_0(PP_Instance instance) {
274 return 0; // Not supported in-process.
277 PP_Resource ResourceCreationImpl::CreateTCPSocket(PP_Instance instance) {
278 return 0; // Not supported in-process.
281 PP_Resource ResourceCreationImpl::CreateTCPSocketPrivate(PP_Instance instance) {
282 return 0; // Not supported in-process.
285 PP_Resource ResourceCreationImpl::CreateTouchInputEvent(PP_Instance instance,
286 PP_InputEvent_Type type,
287 PP_TimeTicks time_stamp,
288 uint32_t modifiers) {
289 return PPB_InputEvent_Shared::CreateTouchInputEvent(
290 ppapi::OBJECT_IS_IMPL, instance, type, time_stamp, modifiers);
293 PP_Resource ResourceCreationImpl::CreateUDPSocket(PP_Instance instance) {
294 return 0; // Not supported in-process.
297 PP_Resource ResourceCreationImpl::CreateUDPSocketPrivate(PP_Instance instance) {
298 return 0; // Not supported in-process.
301 PP_Resource ResourceCreationImpl::CreateVideoCapture(PP_Instance instance) {
302 return 0; // Not supported in-process.
305 PP_Resource ResourceCreationImpl::CreateVideoDecoder(PP_Instance instance) {
306 return 0; // Not supported in-process.
309 PP_Resource ResourceCreationImpl::CreateVideoDecoderDev(
310 PP_Instance instance,
311 PP_Resource graphics3d_id,
312 PP_VideoDecoder_Profile profile) {
313 return PPB_VideoDecoder_Impl::Create(instance, graphics3d_id, profile);
316 PP_Resource ResourceCreationImpl::CreateVideoDestination(PP_Instance instance) {
317 return 0; // Not supported in-process.
320 PP_Resource ResourceCreationImpl::CreateVideoSource(PP_Instance instance) {
321 return 0; // Not supported in-process.
324 PP_Resource ResourceCreationImpl::CreateWheelInputEvent(
325 PP_Instance instance,
326 PP_TimeTicks time_stamp,
328 const PP_FloatPoint* wheel_delta,
329 const PP_FloatPoint* wheel_ticks,
330 PP_Bool scroll_by_page) {
331 return PPB_InputEvent_Shared::CreateWheelInputEvent(ppapi::OBJECT_IS_IMPL,
340 PP_Resource ResourceCreationImpl::CreateX509CertificatePrivate(
341 PP_Instance instance) {
342 return 0; // Not supported in-process.
345 } // namespace content