Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / common / ppapi_utils.cc
blob0d8aac1509c0f025c451c5a0ffe02405c7857f70
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"
6 #include <cstring>
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_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_truetype_font_dev.h"
25 #include "ppapi/c/dev/ppb_url_util_dev.h"
26 #include "ppapi/c/dev/ppb_var_deprecated.h"
27 #include "ppapi/c/dev/ppb_video_capture_dev.h"
28 #include "ppapi/c/dev/ppb_video_decoder_dev.h"
29 #include "ppapi/c/dev/ppb_view_dev.h"
30 #include "ppapi/c/ppb_audio.h"
31 #include "ppapi/c/ppb_audio_buffer.h"
32 #include "ppapi/c/ppb_audio_config.h"
33 #include "ppapi/c/ppb_compositor.h"
34 #include "ppapi/c/ppb_compositor_layer.h"
35 #include "ppapi/c/ppb_console.h"
36 #include "ppapi/c/ppb_core.h"
37 #include "ppapi/c/ppb_file_io.h"
38 #include "ppapi/c/ppb_file_ref.h"
39 #include "ppapi/c/ppb_file_system.h"
40 #include "ppapi/c/ppb_fullscreen.h"
41 #include "ppapi/c/ppb_gamepad.h"
42 #include "ppapi/c/ppb_graphics_2d.h"
43 #include "ppapi/c/ppb_graphics_3d.h"
44 #include "ppapi/c/ppb_host_resolver.h"
45 #include "ppapi/c/ppb_image_data.h"
46 #include "ppapi/c/ppb_input_event.h"
47 #include "ppapi/c/ppb_instance.h"
48 #include "ppapi/c/ppb_media_stream_audio_track.h"
49 #include "ppapi/c/ppb_media_stream_video_track.h"
50 #include "ppapi/c/ppb_messaging.h"
51 #include "ppapi/c/ppb_mouse_cursor.h"
52 #include "ppapi/c/ppb_mouse_lock.h"
53 #include "ppapi/c/ppb_net_address.h"
54 #include "ppapi/c/ppb_network_list.h"
55 #include "ppapi/c/ppb_network_monitor.h"
56 #include "ppapi/c/ppb_network_proxy.h"
57 #include "ppapi/c/ppb_opengles2.h"
58 #include "ppapi/c/ppb_tcp_socket.h"
59 #include "ppapi/c/ppb_text_input_controller.h"
60 #include "ppapi/c/ppb_udp_socket.h"
61 #include "ppapi/c/ppb_url_loader.h"
62 #include "ppapi/c/ppb_url_request_info.h"
63 #include "ppapi/c/ppb_url_response_info.h"
64 #include "ppapi/c/ppb_var.h"
65 #include "ppapi/c/ppb_var_array.h"
66 #include "ppapi/c/ppb_var_array_buffer.h"
67 #include "ppapi/c/ppb_var_dictionary.h"
68 #include "ppapi/c/ppb_video_decoder.h"
69 #include "ppapi/c/ppb_video_encoder.h"
70 #include "ppapi/c/ppb_video_frame.h"
71 #include "ppapi/c/ppb_view.h"
72 #include "ppapi/c/ppb_websocket.h"
73 #include "ppapi/c/private/ppb_camera_capabilities_private.h"
74 #include "ppapi/c/private/ppb_camera_device_private.h"
75 #include "ppapi/c/private/ppb_content_decryptor_private.h"
76 #include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
77 #include "ppapi/c/private/ppb_file_io_private.h"
78 #include "ppapi/c/private/ppb_file_ref_private.h"
79 #include "ppapi/c/private/ppb_find_private.h"
80 #include "ppapi/c/private/ppb_flash.h"
81 #include "ppapi/c/private/ppb_flash_clipboard.h"
82 #include "ppapi/c/private/ppb_flash_device_id.h"
83 #include "ppapi/c/private/ppb_flash_drm.h"
84 #include "ppapi/c/private/ppb_flash_file.h"
85 #include "ppapi/c/private/ppb_flash_font_file.h"
86 #include "ppapi/c/private/ppb_flash_fullscreen.h"
87 #include "ppapi/c/private/ppb_flash_menu.h"
88 #include "ppapi/c/private/ppb_flash_message_loop.h"
89 #include "ppapi/c/private/ppb_flash_print.h"
90 #include "ppapi/c/private/ppb_host_resolver_private.h"
91 #include "ppapi/c/private/ppb_isolated_file_system_private.h"
92 #include "ppapi/c/private/ppb_output_protection_private.h"
93 #include "ppapi/c/private/ppb_pdf.h"
94 #include "ppapi/c/private/ppb_proxy_private.h"
95 #include "ppapi/c/private/ppb_tcp_server_socket_private.h"
96 #include "ppapi/c/private/ppb_tcp_socket_private.h"
97 #include "ppapi/c/private/ppb_testing_private.h"
98 #include "ppapi/c/private/ppb_udp_socket_private.h"
99 #include "ppapi/c/private/ppb_uma_private.h"
100 #include "ppapi/c/private/ppb_video_destination_private.h"
101 #include "ppapi/c/private/ppb_video_source_private.h"
102 #include "ppapi/c/private/ppb_x509_certificate_private.h"
103 #include "ppapi/c/trusted/ppb_broker_trusted.h"
104 #include "ppapi/c/trusted/ppb_browser_font_trusted.h"
105 #include "ppapi/c/trusted/ppb_char_set_trusted.h"
106 #include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
107 #include "ppapi/c/trusted/ppb_url_loader_trusted.h"
108 #include "ppapi/thunk/thunk.h"
110 #if defined(OS_CHROMEOS)
111 #include "ppapi/c/private/ppb_platform_verification_private.h"
112 #endif
114 bool IsSupportedPepperInterface(const char* name) {
115 // TODO(brettw) put these in a hash map for better performance.
116 #define PROXIED_IFACE(iface_str, iface_struct) \
117 if (strcmp(name, iface_str) == 0) \
118 return true;
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_dev_channel.h"
125 #include "ppapi/thunk/interfaces_ppb_public_stable.h"
127 #undef PROXIED_IFACE
129 #define LEGACY_IFACE(iface_str, dummy) \
130 if (strcmp(name, iface_str) == 0) \
131 return true;
133 #include "ppapi/thunk/interfaces_legacy.h"
135 #undef LEGACY_IFACE
136 return false;