ppapi_utils.cc revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
1// Copyright (c) 2013 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/browser/component_updater/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_buffer_dev.h"
11#include "ppapi/c/dev/ppb_char_set_dev.h"
12#include "ppapi/c/dev/ppb_crypto_dev.h"
13#include "ppapi/c/dev/ppb_cursor_control_dev.h"
14#include "ppapi/c/dev/ppb_device_ref_dev.h"
15#include "ppapi/c/dev/ppb_file_chooser_dev.h"
16#include "ppapi/c/dev/ppb_find_dev.h"
17#include "ppapi/c/dev/ppb_font_dev.h"
18#include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h"
19#include "ppapi/c/dev/ppb_graphics_2d_dev.h"
20#include "ppapi/c/dev/ppb_ime_input_event_dev.h"
21#include "ppapi/c/dev/ppb_keyboard_input_event_dev.h"
22#include "ppapi/c/dev/ppb_memory_dev.h"
23#include "ppapi/c/dev/ppb_opengles2ext_dev.h"
24#include "ppapi/c/dev/ppb_printing_dev.h"
25#include "ppapi/c/dev/ppb_resource_array_dev.h"
26#include "ppapi/c/dev/ppb_scrollbar_dev.h"
27#include "ppapi/c/dev/ppb_testing_dev.h"
28#include "ppapi/c/dev/ppb_text_input_dev.h"
29#include "ppapi/c/dev/ppb_trace_event_dev.h"
30#include "ppapi/c/dev/ppb_truetype_font_dev.h"
31#include "ppapi/c/dev/ppb_url_util_dev.h"
32#include "ppapi/c/dev/ppb_var_deprecated.h"
33#include "ppapi/c/dev/ppb_video_capture_dev.h"
34#include "ppapi/c/dev/ppb_video_decoder_dev.h"
35#include "ppapi/c/dev/ppb_view_dev.h"
36#include "ppapi/c/dev/ppb_widget_dev.h"
37#include "ppapi/c/dev/ppb_zoom_dev.h"
38#include "ppapi/c/extensions/dev/ppb_ext_alarms_dev.h"
39#include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
40#include "ppapi/c/ppb_audio.h"
41#include "ppapi/c/ppb_audio_config.h"
42#include "ppapi/c/ppb_console.h"
43#include "ppapi/c/ppb_core.h"
44#include "ppapi/c/ppb_file_io.h"
45#include "ppapi/c/ppb_file_ref.h"
46#include "ppapi/c/ppb_file_system.h"
47#include "ppapi/c/ppb_fullscreen.h"
48#include "ppapi/c/ppb_gamepad.h"
49#include "ppapi/c/ppb_graphics_2d.h"
50#include "ppapi/c/ppb_graphics_3d.h"
51#include "ppapi/c/ppb_host_resolver.h"
52#include "ppapi/c/ppb_image_data.h"
53#include "ppapi/c/ppb_input_event.h"
54#include "ppapi/c/ppb_instance.h"
55#include "ppapi/c/ppb_messaging.h"
56#include "ppapi/c/ppb_mouse_cursor.h"
57#include "ppapi/c/ppb_mouse_lock.h"
58#include "ppapi/c/ppb_net_address.h"
59#include "ppapi/c/ppb_network_proxy.h"
60#include "ppapi/c/ppb_opengles2.h"
61#include "ppapi/c/ppb_tcp_socket.h"
62#include "ppapi/c/ppb_text_input_controller.h"
63#include "ppapi/c/ppb_udp_socket.h"
64#include "ppapi/c/ppb_url_loader.h"
65#include "ppapi/c/ppb_url_request_info.h"
66#include "ppapi/c/ppb_url_response_info.h"
67#include "ppapi/c/ppb_var.h"
68#include "ppapi/c/ppb_var_array.h"
69#include "ppapi/c/ppb_var_array_buffer.h"
70#include "ppapi/c/ppb_var_dictionary.h"
71#include "ppapi/c/ppb_view.h"
72#include "ppapi/c/ppb_websocket.h"
73#include "ppapi/c/private/ppb_content_decryptor_private.h"
74#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
75#include "ppapi/c/private/ppb_file_io_private.h"
76#include "ppapi/c/private/ppb_file_ref_private.h"
77#include "ppapi/c/private/ppb_flash.h"
78#include "ppapi/c/private/ppb_flash_clipboard.h"
79#include "ppapi/c/private/ppb_flash_device_id.h"
80#include "ppapi/c/private/ppb_flash_drm.h"
81#include "ppapi/c/private/ppb_flash_file.h"
82#include "ppapi/c/private/ppb_flash_font_file.h"
83#include "ppapi/c/private/ppb_flash_fullscreen.h"
84#include "ppapi/c/private/ppb_flash_menu.h"
85#include "ppapi/c/private/ppb_flash_message_loop.h"
86#include "ppapi/c/private/ppb_flash_print.h"
87#include "ppapi/c/private/ppb_host_resolver_private.h"
88#include "ppapi/c/private/ppb_network_list_private.h"
89#include "ppapi/c/private/ppb_network_monitor_private.h"
90#include "ppapi/c/private/ppb_pdf.h"
91#include "ppapi/c/private/ppb_proxy_private.h"
92#include "ppapi/c/private/ppb_talk_private.h"
93#include "ppapi/c/private/ppb_tcp_server_socket_private.h"
94#include "ppapi/c/private/ppb_tcp_socket_private.h"
95#include "ppapi/c/private/ppb_udp_socket_private.h"
96#include "ppapi/c/private/ppb_uma_private.h"
97#include "ppapi/c/private/ppb_video_destination_private.h"
98#include "ppapi/c/private/ppb_video_source_private.h"
99#include "ppapi/c/private/ppb_x509_certificate_private.h"
100#include "ppapi/c/trusted/ppb_broker_trusted.h"
101#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
102#include "ppapi/c/trusted/ppb_char_set_trusted.h"
103#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
104#include "ppapi/c/trusted/ppb_file_io_trusted.h"
105#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
106#include "ppapi/thunk/thunk.h"
107
108#if defined(OS_CHROMEOS)
109#include "ppapi/c/private/ppb_platform_verification_private.h"
110#endif
111
112bool IsSupportedPepperInterface(const char* name) {
113  // TODO(brettw) put these in a hash map for better performance.
114  #define UNPROXIED_IFACE(api_name, iface_str, iface_struct) \
115      if (strcmp(name, iface_str) == 0) \
116        return true;
117  #define PROXIED_IFACE(api_name, iface_str, iface_struct) \
118      UNPROXIED_IFACE(api_name, iface_str, iface_struct)
119
120  #include "ppapi/thunk/interfaces_ppb_private.h"
121  #include "ppapi/thunk/interfaces_ppb_private_flash.h"
122  #include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
123  #include "ppapi/thunk/interfaces_ppb_public_dev.h"
124  #include "ppapi/thunk/interfaces_ppb_public_stable.h"
125
126  #undef UNPROXIED_IFACE
127  #undef PROXIED_IFACE
128
129  #define LEGACY_IFACE(iface_str, dummy) \
130      if (strcmp(name, iface_str) == 0) \
131        return true;
132
133  #include "ppapi/thunk/interfaces_legacy.h"
134
135  #undef LEGACY_IFACE
136  return false;
137}
138