1 // Copyright (c) 2015 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 #include "chrome/common/ppapi_utils.h"
5 
6 #include <cstring>
7 
8 #include "build/build_config.h"
9 #include "ppapi/c/dev/ppb_audio_input_dev.h"
10 #include "ppapi/c/dev/ppb_audio_output_dev.h"
11 #include "ppapi/c/dev/ppb_buffer_dev.h"
12 #include "ppapi/c/dev/ppb_char_set_dev.h"
13 #include "ppapi/c/dev/ppb_crypto_dev.h"
14 #include "ppapi/c/dev/ppb_cursor_control_dev.h"
15 #include "ppapi/c/dev/ppb_device_ref_dev.h"
16 #include "ppapi/c/dev/ppb_file_chooser_dev.h"
17 #include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h"
18 #include "ppapi/c/dev/ppb_ime_input_event_dev.h"
19 #include "ppapi/c/dev/ppb_memory_dev.h"
20 #include "ppapi/c/dev/ppb_opengles2ext_dev.h"
21 #include "ppapi/c/dev/ppb_printing_dev.h"
22 #include "ppapi/c/dev/ppb_text_input_dev.h"
23 #include "ppapi/c/dev/ppb_trace_event_dev.h"
24 #include "ppapi/c/dev/ppb_url_util_dev.h"
25 #include "ppapi/c/dev/ppb_var_deprecated.h"
26 #include "ppapi/c/dev/ppb_video_capture_dev.h"
27 #include "ppapi/c/dev/ppb_video_decoder_dev.h"
28 #include "ppapi/c/dev/ppb_view_dev.h"
29 #include "ppapi/c/ppb_audio.h"
30 #include "ppapi/c/ppb_audio_buffer.h"
31 #include "ppapi/c/ppb_audio_config.h"
32 #include "ppapi/c/ppb_console.h"
33 #include "ppapi/c/ppb_core.h"
34 #include "ppapi/c/ppb_file_io.h"
35 #include "ppapi/c/ppb_file_ref.h"
36 #include "ppapi/c/ppb_file_system.h"
37 #include "ppapi/c/ppb_fullscreen.h"
38 #include "ppapi/c/ppb_gamepad.h"
39 #include "ppapi/c/ppb_graphics_2d.h"
40 #include "ppapi/c/ppb_graphics_3d.h"
41 #include "ppapi/c/ppb_host_resolver.h"
42 #include "ppapi/c/ppb_image_data.h"
43 #include "ppapi/c/ppb_input_event.h"
44 #include "ppapi/c/ppb_instance.h"
45 #include "ppapi/c/ppb_media_stream_audio_track.h"
46 #include "ppapi/c/ppb_media_stream_video_track.h"
47 #include "ppapi/c/ppb_messaging.h"
48 #include "ppapi/c/ppb_mouse_cursor.h"
49 #include "ppapi/c/ppb_mouse_lock.h"
50 #include "ppapi/c/ppb_net_address.h"
51 #include "ppapi/c/ppb_network_list.h"
52 #include "ppapi/c/ppb_network_monitor.h"
53 #include "ppapi/c/ppb_network_proxy.h"
54 #include "ppapi/c/ppb_opengles2.h"
55 #include "ppapi/c/ppb_tcp_socket.h"
56 #include "ppapi/c/ppb_text_input_controller.h"
57 #include "ppapi/c/ppb_udp_socket.h"
58 #include "ppapi/c/ppb_url_loader.h"
59 #include "ppapi/c/ppb_url_request_info.h"
60 #include "ppapi/c/ppb_url_response_info.h"
61 #include "ppapi/c/ppb_var.h"
62 #include "ppapi/c/ppb_var_array.h"
63 #include "ppapi/c/ppb_var_array_buffer.h"
64 #include "ppapi/c/ppb_var_dictionary.h"
65 #include "ppapi/c/ppb_video_decoder.h"
66 #include "ppapi/c/ppb_video_encoder.h"
67 #include "ppapi/c/ppb_video_frame.h"
68 #include "ppapi/c/ppb_view.h"
69 #include "ppapi/c/ppb_vpn_provider.h"
70 #include "ppapi/c/ppb_websocket.h"
71 #include "ppapi/c/private/ppb_camera_capabilities_private.h"
72 #include "ppapi/c/private/ppb_camera_device_private.h"
73 #include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
74 #include "ppapi/c/private/ppb_file_io_private.h"
75 #include "ppapi/c/private/ppb_file_ref_private.h"
76 #include "ppapi/c/private/ppb_find_private.h"
77 #include "ppapi/c/private/ppb_flash_font_file.h"
78 #include "ppapi/c/private/ppb_host_resolver_private.h"
79 #include "ppapi/c/private/ppb_isolated_file_system_private.h"
80 #include "ppapi/c/private/ppb_pdf.h"
81 #include "ppapi/c/private/ppb_proxy_private.h"
82 #include "ppapi/c/private/ppb_tcp_server_socket_private.h"
83 #include "ppapi/c/private/ppb_tcp_socket_private.h"
84 #include "ppapi/c/private/ppb_testing_private.h"
85 #include "ppapi/c/private/ppb_udp_socket_private.h"
86 #include "ppapi/c/private/ppb_uma_private.h"
87 #include "ppapi/c/private/ppb_x509_certificate_private.h"
88 #include "ppapi/c/trusted/ppb_browser_font_trusted.h"
89 #include "ppapi/c/trusted/ppb_char_set_trusted.h"
90 #include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
91 #include "ppapi/c/trusted/ppb_url_loader_trusted.h"
92 #include "ppapi/thunk/thunk.h"
93 
IsSupportedPepperInterface(const char * name)94 bool IsSupportedPepperInterface(const char* name) {
95 // TODO(brettw) put these in a hash map for better performance.
96 #define PROXIED_IFACE(iface_str, iface_struct) \
97   if (strcmp(name, iface_str) == 0)            \
98     return true;
99 
100 #include "ppapi/thunk/interfaces_ppb_private.h"
101 #include "ppapi/thunk/interfaces_ppb_private_flash.h"
102 #include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
103 #include "ppapi/thunk/interfaces_ppb_private_pdf.h"
104 #include "ppapi/thunk/interfaces_ppb_public_dev.h"
105 #include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
106 #include "ppapi/thunk/interfaces_ppb_public_socket.h"
107 #include "ppapi/thunk/interfaces_ppb_public_stable.h"
108 
109 #undef PROXIED_IFACE
110 
111 #define LEGACY_IFACE(iface_str, dummy) \
112   if (strcmp(name, iface_str) == 0)    \
113     return true;
114 
115 #include "ppapi/thunk/interfaces_legacy.h"
116 
117 #undef LEGACY_IFACE
118   return false;
119 }
120