a4fb6c2656480d89885e30bfb3c4f4b6fb6bbd02
[platform/framework/web/crosswalk.git] / src / content / renderer / pepper / resource_creation_impl.cc
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 #include "content/renderer/pepper/resource_creation_impl.h"
6
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"
22
23 using ppapi::InputEventData;
24 using ppapi::PPB_InputEvent_Shared;
25 using ppapi::StringVar;
26
27 namespace content {
28
29 ResourceCreationImpl::ResourceCreationImpl(PepperPluginInstanceImpl* instance) {
30 }
31
32 ResourceCreationImpl::~ResourceCreationImpl() {}
33
34 PP_Resource ResourceCreationImpl::CreateAudio1_0(
35     PP_Instance instance,
36     PP_Resource config_id,
37     PPB_Audio_Callback_1_0 audio_callback,
38     void* user_data) {
39   return 0;  // Not supported in-process.
40 }
41
42 PP_Resource ResourceCreationImpl::CreateAudio(PP_Instance instance,
43                                               PP_Resource config_id,
44                                               PPB_Audio_Callback audio_callback,
45                                               void* user_data) {
46   return 0;  // Not supported in-process.
47 }
48
49 PP_Resource ResourceCreationImpl::CreateAudioConfig(
50     PP_Instance instance,
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);
55 }
56
57 PP_Resource ResourceCreationImpl::CreateAudioTrusted(PP_Instance instance) {
58   return (new PPB_Audio_Impl(instance))->GetReference();
59 }
60
61 PP_Resource ResourceCreationImpl::CreateAudioInput(PP_Instance instance) {
62   return 0;  // Not supported in-process.
63 }
64
65 PP_Resource ResourceCreationImpl::CreateCompositor(PP_Instance instance) {
66   return 0;  // Not supported in-process.
67 }
68
69 PP_Resource ResourceCreationImpl::CreateBroker(PP_Instance instance) {
70   return (new PPB_Broker_Impl(instance))->GetReference();
71 }
72
73 PP_Resource ResourceCreationImpl::CreateBuffer(PP_Instance instance,
74                                                uint32_t size) {
75   return PPB_Buffer_Impl::Create(instance, size);
76 }
77
78 PP_Resource ResourceCreationImpl::CreateFlashDRM(PP_Instance instance) {
79   return 0;  // Not supported in-process.
80 }
81
82 PP_Resource ResourceCreationImpl::CreateFlashFontFile(
83     PP_Instance instance,
84     const PP_BrowserFont_Trusted_Description* description,
85     PP_PrivateFontCharset charset) {
86   return 0;  // Not supported in-process.
87 }
88
89 PP_Resource ResourceCreationImpl::CreateFlashMenu(
90     PP_Instance instance,
91     const PP_Flash_Menu* menu_data) {
92   return 0;  // Not supported in-process.
93 }
94
95 PP_Resource ResourceCreationImpl::CreateFlashMessageLoop(PP_Instance instance) {
96   return PPB_Flash_MessageLoop_Impl::Create(instance);
97 }
98
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);
103 }
104
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);
110 }
111
112 PP_Resource ResourceCreationImpl::CreateHostResolver(PP_Instance instance) {
113   return 0;  // Not supported in-process.
114 }
115
116 PP_Resource ResourceCreationImpl::CreateHostResolverPrivate(
117     PP_Instance instance) {
118   return 0;  // Not supported in-process.
119 }
120
121 PP_Resource ResourceCreationImpl::CreateImageData(PP_Instance instance,
122                                                   PP_ImageDataFormat format,
123                                                   const PP_Size* size,
124                                                   PP_Bool init_to_zero) {
125   return PPB_ImageData_Impl::Create(instance,
126                                     ppapi::PPB_ImageData_Shared::PLATFORM,
127                                     format,
128                                     *size,
129                                     init_to_zero);
130 }
131
132 PP_Resource ResourceCreationImpl::CreateImageDataSimple(
133     PP_Instance instance,
134     PP_ImageDataFormat format,
135     const PP_Size* size,
136     PP_Bool init_to_zero) {
137   return PPB_ImageData_Impl::Create(instance,
138                                     ppapi::PPB_ImageData_Shared::SIMPLE,
139                                     format,
140                                     *size,
141                                     init_to_zero);
142 }
143
144 PP_Resource ResourceCreationImpl::CreateIMEInputEvent(
145     PP_Instance instance,
146     PP_InputEvent_Type type,
147     PP_TimeTicks time_stamp,
148     struct PP_Var text,
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,
155                                                     instance,
156                                                     type,
157                                                     time_stamp,
158                                                     text,
159                                                     segment_number,
160                                                     segment_offsets,
161                                                     target_segment,
162                                                     selection_start,
163                                                     selection_end);
164 }
165
166 PP_Resource ResourceCreationImpl::CreateKeyboardInputEvent_1_0(
167     PP_Instance instance,
168     PP_InputEvent_Type type,
169     PP_TimeTicks time_stamp,
170     uint32_t modifiers,
171     uint32_t key_code,
172     struct PP_Var character_text) {
173   PP_Var code = StringVar::StringToPPVar("");
174   return PPB_InputEvent_Shared::CreateKeyboardInputEvent(ppapi::OBJECT_IS_IMPL,
175                                                          instance,
176                                                          type,
177                                                          time_stamp,
178                                                          modifiers,
179                                                          key_code,
180                                                          character_text,
181                                                          code);
182 }
183
184 PP_Resource ResourceCreationImpl::CreateKeyboardInputEvent_1_2(
185     PP_Instance instance,
186     PP_InputEvent_Type type,
187     PP_TimeTicks time_stamp,
188     uint32_t modifiers,
189     uint32_t key_code,
190     struct PP_Var character_text,
191     struct PP_Var code) {
192   return PPB_InputEvent_Shared::CreateKeyboardInputEvent(ppapi::OBJECT_IS_IMPL,
193                                                          instance,
194                                                          type,
195                                                          time_stamp,
196                                                          modifiers,
197                                                          key_code,
198                                                          character_text,
199                                                          code);
200 }
201
202 PP_Resource ResourceCreationImpl::CreateMediaStreamVideoTrack(
203     PP_Instance instance) {
204   return 0;  // Not supported in-process.
205 }
206
207 PP_Resource ResourceCreationImpl::CreateMouseInputEvent(
208     PP_Instance instance,
209     PP_InputEvent_Type type,
210     PP_TimeTicks time_stamp,
211     uint32_t modifiers,
212     PP_InputEvent_MouseButton mouse_button,
213     const PP_Point* mouse_position,
214     int32_t click_count,
215     const PP_Point* mouse_movement) {
216   return PPB_InputEvent_Shared::CreateMouseInputEvent(ppapi::OBJECT_IS_IMPL,
217                                                       instance,
218                                                       type,
219                                                       time_stamp,
220                                                       modifiers,
221                                                       mouse_button,
222                                                       mouse_position,
223                                                       click_count,
224                                                       mouse_movement);
225 }
226
227 PP_Resource ResourceCreationImpl::CreateNetAddressFromIPv4Address(
228     PP_Instance instance,
229     const PP_NetAddress_IPv4* ipv4_addr) {
230   return 0;  // Not supported in-process.
231 }
232
233 PP_Resource ResourceCreationImpl::CreateNetAddressFromIPv6Address(
234     PP_Instance instance,
235     const PP_NetAddress_IPv6* ipv6_addr) {
236   return 0;  // Not supported in-process.
237 }
238
239 PP_Resource ResourceCreationImpl::CreateNetAddressFromNetAddressPrivate(
240     PP_Instance instance,
241     const PP_NetAddress_Private& private_addr) {
242   return 0;  // Not supported in-process.
243 }
244
245 PP_Resource ResourceCreationImpl::CreateNetworkMonitor(PP_Instance instance) {
246   return 0;  // Not supported in-process.
247 }
248
249 PP_Resource ResourceCreationImpl::CreateOutputProtectionPrivate(
250     PP_Instance instance) {
251   return 0;  // Not supported in-process.
252 }
253
254 PP_Resource ResourceCreationImpl::CreatePlatformVerificationPrivate(
255     PP_Instance instance) {
256   return 0;  // Not supported in-process.
257 }
258
259 PP_Resource ResourceCreationImpl::CreateScrollbar(PP_Instance instance,
260                                                   PP_Bool vertical) {
261   return PPB_Scrollbar_Impl::Create(instance, PP_ToBool(vertical));
262 }
263
264 PP_Resource ResourceCreationImpl::CreateTalk(PP_Instance /* instance */) {
265   return 0;  // Not supported in-process.
266 }
267
268 PP_Resource ResourceCreationImpl::CreateTCPServerSocketPrivate(
269     PP_Instance instance) {
270   return 0;  // Not supported in-process.
271 }
272
273 PP_Resource ResourceCreationImpl::CreateTCPSocket1_0(PP_Instance instance) {
274   return 0;  // Not supported in-process.
275 }
276
277 PP_Resource ResourceCreationImpl::CreateTCPSocket(PP_Instance instance) {
278   return 0;  // Not supported in-process.
279 }
280
281 PP_Resource ResourceCreationImpl::CreateTCPSocketPrivate(PP_Instance instance) {
282   return 0;  // Not supported in-process.
283 }
284
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);
291 }
292
293 PP_Resource ResourceCreationImpl::CreateUDPSocket(PP_Instance instance) {
294   return 0;  // Not supported in-process.
295 }
296
297 PP_Resource ResourceCreationImpl::CreateUDPSocketPrivate(PP_Instance instance) {
298   return 0;  // Not supported in-process.
299 }
300
301 PP_Resource ResourceCreationImpl::CreateVideoCapture(PP_Instance instance) {
302   return 0;  // Not supported in-process.
303 }
304
305 PP_Resource ResourceCreationImpl::CreateVideoDecoder(PP_Instance instance) {
306   return 0;  // Not supported in-process.
307 }
308
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);
314 }
315
316 PP_Resource ResourceCreationImpl::CreateVideoDestination(PP_Instance instance) {
317   return 0;  // Not supported in-process.
318 }
319
320 PP_Resource ResourceCreationImpl::CreateVideoSource(PP_Instance instance) {
321   return 0;  // Not supported in-process.
322 }
323
324 PP_Resource ResourceCreationImpl::CreateWheelInputEvent(
325     PP_Instance instance,
326     PP_TimeTicks time_stamp,
327     uint32_t modifiers,
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,
332                                                       instance,
333                                                       time_stamp,
334                                                       modifiers,
335                                                       wheel_delta,
336                                                       wheel_ticks,
337                                                       scroll_by_page);
338 }
339
340 PP_Resource ResourceCreationImpl::CreateX509CertificatePrivate(
341     PP_Instance instance) {
342   return 0;  // Not supported in-process.
343 }
344
345 }  // namespace content