ppapi_utils.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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_font_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_messaging_deprecated.h"
21#include "ppapi/c/dev/ppb_opengles2ext_dev.h"
22#include "ppapi/c/dev/ppb_printing_dev.h"
23#include "ppapi/c/dev/ppb_scrollbar_dev.h"
24#include "ppapi/c/dev/ppb_text_input_dev.h"
25#include "ppapi/c/dev/ppb_trace_event_dev.h"
26#include "ppapi/c/dev/ppb_truetype_font_dev.h"
27#include "ppapi/c/dev/ppb_url_util_dev.h"
28#include "ppapi/c/dev/ppb_var_deprecated.h"
29#include "ppapi/c/dev/ppb_video_capture_dev.h"
30#include "ppapi/c/dev/ppb_video_decoder_dev.h"
31#include "ppapi/c/dev/ppb_view_dev.h"
32#include "ppapi/c/dev/ppb_widget_dev.h"
33#include "ppapi/c/dev/ppb_zoom_dev.h"
34#include "ppapi/c/ppb_audio.h"
35#include "ppapi/c/ppb_audio_buffer.h"
36#include "ppapi/c/ppb_audio_config.h"
37#include "ppapi/c/ppb_compositor.h"
38#include "ppapi/c/ppb_compositor_layer.h"
39#include "ppapi/c/ppb_console.h"
40#include "ppapi/c/ppb_core.h"
41#include "ppapi/c/ppb_file_io.h"
42#include "ppapi/c/ppb_file_mapping.h"
43#include "ppapi/c/ppb_file_ref.h"
44#include "ppapi/c/ppb_file_system.h"
45#include "ppapi/c/ppb_fullscreen.h"
46#include "ppapi/c/ppb_gamepad.h"
47#include "ppapi/c/ppb_graphics_2d.h"
48#include "ppapi/c/ppb_graphics_3d.h"
49#include "ppapi/c/ppb_host_resolver.h"
50#include "ppapi/c/ppb_image_data.h"
51#include "ppapi/c/ppb_input_event.h"
52#include "ppapi/c/ppb_instance.h"
53#include "ppapi/c/ppb_media_stream_audio_track.h"
54#include "ppapi/c/ppb_media_stream_video_track.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_list.h"
60#include "ppapi/c/ppb_network_monitor.h"
61#include "ppapi/c/ppb_network_proxy.h"
62#include "ppapi/c/ppb_opengles2.h"
63#include "ppapi/c/ppb_tcp_socket.h"
64#include "ppapi/c/ppb_text_input_controller.h"
65#include "ppapi/c/ppb_udp_socket.h"
66#include "ppapi/c/ppb_url_loader.h"
67#include "ppapi/c/ppb_url_request_info.h"
68#include "ppapi/c/ppb_url_response_info.h"
69#include "ppapi/c/ppb_var.h"
70#include "ppapi/c/ppb_var_array.h"
71#include "ppapi/c/ppb_var_array_buffer.h"
72#include "ppapi/c/ppb_var_dictionary.h"
73#include "ppapi/c/ppb_video_decoder.h"
74#include "ppapi/c/ppb_video_frame.h"
75#include "ppapi/c/ppb_view.h"
76#include "ppapi/c/ppb_websocket.h"
77#include "ppapi/c/private/ppb_content_decryptor_private.h"
78#include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
79#include "ppapi/c/private/ppb_file_io_private.h"
80#include "ppapi/c/private/ppb_file_ref_private.h"
81#include "ppapi/c/private/ppb_find_private.h"
82#include "ppapi/c/private/ppb_flash.h"
83#include "ppapi/c/private/ppb_flash_clipboard.h"
84#include "ppapi/c/private/ppb_flash_device_id.h"
85#include "ppapi/c/private/ppb_flash_drm.h"
86#include "ppapi/c/private/ppb_flash_file.h"
87#include "ppapi/c/private/ppb_flash_font_file.h"
88#include "ppapi/c/private/ppb_flash_fullscreen.h"
89#include "ppapi/c/private/ppb_flash_menu.h"
90#include "ppapi/c/private/ppb_flash_message_loop.h"
91#include "ppapi/c/private/ppb_flash_print.h"
92#include "ppapi/c/private/ppb_host_resolver_private.h"
93#include "ppapi/c/private/ppb_input_event_private.h"
94#include "ppapi/c/private/ppb_isolated_file_system_private.h"
95#include "ppapi/c/private/ppb_output_protection_private.h"
96#include "ppapi/c/private/ppb_pdf.h"
97#include "ppapi/c/private/ppb_proxy_private.h"
98#include "ppapi/c/private/ppb_talk_private.h"
99#include "ppapi/c/private/ppb_tcp_server_socket_private.h"
100#include "ppapi/c/private/ppb_tcp_socket_private.h"
101#include "ppapi/c/private/ppb_testing_private.h"
102#include "ppapi/c/private/ppb_udp_socket_private.h"
103#include "ppapi/c/private/ppb_uma_private.h"
104#include "ppapi/c/private/ppb_video_destination_private.h"
105#include "ppapi/c/private/ppb_video_source_private.h"
106#include "ppapi/c/private/ppb_x509_certificate_private.h"
107#include "ppapi/c/trusted/ppb_broker_trusted.h"
108#include "ppapi/c/trusted/ppb_browser_font_trusted.h"
109#include "ppapi/c/trusted/ppb_char_set_trusted.h"
110#include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
111#include "ppapi/c/trusted/ppb_url_loader_trusted.h"
112#include "ppapi/thunk/thunk.h"
113
114#if defined(OS_CHROMEOS)
115#include "ppapi/c/private/ppb_platform_verification_private.h"
116#endif
117
118bool IsSupportedPepperInterface(const char* name) {
119// TODO(brettw) put these in a hash map for better performance.
120#define PROXIED_IFACE(iface_str, iface_struct) \
121  if (strcmp(name, iface_str) == 0)            \
122    return true;
123
124#include "ppapi/thunk/interfaces_ppb_private.h"
125#include "ppapi/thunk/interfaces_ppb_private_flash.h"
126#include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
127#include "ppapi/thunk/interfaces_ppb_public_dev.h"
128#include "ppapi/thunk/interfaces_ppb_public_dev_channel.h"
129#include "ppapi/thunk/interfaces_ppb_public_stable.h"
130
131#undef PROXIED_IFACE
132
133#define LEGACY_IFACE(iface_str, dummy) \
134  if (strcmp(name, iface_str) == 0)    \
135    return true;
136
137#include "ppapi/thunk/interfaces_legacy.h"
138
139#undef LEGACY_IFACE
140  return false;
141}
142