Fix Win8 metro startup crash from window switcher button
[chromium-blink-merge.git] / webkit / common / plugins / ppapi / ppapi_utils.cc
blobc4a65b8ea9ee29abb9395156d28a86b93409fab2
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 "webkit/common/plugins/ppapi/ppapi_utils.h"
6 #include <cstring>
8 #include "ppapi/c/dev/ppb_audio_input_dev.h"
9 #include "ppapi/c/dev/ppb_buffer_dev.h"
10 #include "ppapi/c/dev/ppb_char_set_dev.h"
11 #include "ppapi/c/dev/ppb_crypto_dev.h"
12 #include "ppapi/c/dev/ppb_cursor_control_dev.h"
13 #include "ppapi/c/dev/ppb_device_ref_dev.h"
14 #include "ppapi/c/dev/ppb_file_chooser_dev.h"
15 #include "ppapi/c/dev/ppb_find_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_graphics_2d_dev.h"
19 #include "ppapi/c/dev/ppb_ime_input_event_dev.h"
20 #include "ppapi/c/dev/ppb_keyboard_input_event_dev.h"
21 #include "ppapi/c/dev/ppb_memory_dev.h"
22 #include "ppapi/c/dev/ppb_opengles2ext_dev.h"
23 #include "ppapi/c/dev/ppb_printing_dev.h"
24 #include "ppapi/c/dev/ppb_resource_array_dev.h"
25 #include "ppapi/c/dev/ppb_scrollbar_dev.h"
26 #include "ppapi/c/dev/ppb_testing_dev.h"
27 #include "ppapi/c/dev/ppb_text_input_dev.h"
28 #include "ppapi/c/dev/ppb_trace_event_dev.h"
29 #include "ppapi/c/dev/ppb_truetype_font_dev.h"
30 #include "ppapi/c/dev/ppb_url_util_dev.h"
31 #include "ppapi/c/dev/ppb_var_array_dev.h"
32 #include "ppapi/c/dev/ppb_var_deprecated.h"
33 #include "ppapi/c/dev/ppb_var_dictionary_dev.h"
34 #include "ppapi/c/dev/ppb_video_capture_dev.h"
35 #include "ppapi/c/dev/ppb_video_decoder_dev.h"
36 #include "ppapi/c/dev/ppb_view_dev.h"
37 #include "ppapi/c/dev/ppb_widget_dev.h"
38 #include "ppapi/c/dev/ppb_zoom_dev.h"
39 #include "ppapi/c/extensions/dev/ppb_ext_alarms_dev.h"
40 #include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h"
41 #include "ppapi/c/ppb_audio.h"
42 #include "ppapi/c/ppb_audio_config.h"
43 #include "ppapi/c/ppb_console.h"
44 #include "ppapi/c/ppb_core.h"
45 #include "ppapi/c/ppb_file_io.h"
46 #include "ppapi/c/ppb_file_ref.h"
47 #include "ppapi/c/ppb_file_system.h"
48 #include "ppapi/c/ppb_fullscreen.h"
49 #include "ppapi/c/ppb_gamepad.h"
50 #include "ppapi/c/ppb_graphics_2d.h"
51 #include "ppapi/c/ppb_graphics_3d.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_opengles2.h"
59 #include "ppapi/c/ppb_url_loader.h"
60 #include "ppapi/c/ppb_url_request_info.h"
61 #include "ppapi/c/ppb_url_response_info.h"
62 #include "ppapi/c/ppb_var.h"
63 #include "ppapi/c/ppb_var_array_buffer.h"
64 #include "ppapi/c/ppb_view.h"
65 #include "ppapi/c/ppb_websocket.h"
66 #include "ppapi/c/private/ppb_content_decryptor_private.h"
67 #include "ppapi/c/private/ppb_ext_crx_file_system_private.h"
68 #include "ppapi/c/private/ppb_file_io_private.h"
69 #include "ppapi/c/private/ppb_file_ref_private.h"
70 #include "ppapi/c/private/ppb_flash.h"
71 #include "ppapi/c/private/ppb_flash_clipboard.h"
72 #include "ppapi/c/private/ppb_flash_device_id.h"
73 #include "ppapi/c/private/ppb_flash_file.h"
74 #include "ppapi/c/private/ppb_flash_font_file.h"
75 #include "ppapi/c/private/ppb_flash_fullscreen.h"
76 #include "ppapi/c/private/ppb_flash_menu.h"
77 #include "ppapi/c/private/ppb_flash_message_loop.h"
78 #include "ppapi/c/private/ppb_flash_print.h"
79 #include "ppapi/c/private/ppb_gpu_blacklist_private.h"
80 #include "ppapi/c/private/ppb_host_resolver_private.h"
81 #include "ppapi/c/private/ppb_network_list_private.h"
82 #include "ppapi/c/private/ppb_network_monitor_private.h"
83 #include "ppapi/c/private/ppb_pdf.h"
84 #include "ppapi/c/private/ppb_proxy_private.h"
85 #include "ppapi/c/private/ppb_talk_private.h"
86 #include "ppapi/c/private/ppb_tcp_server_socket_private.h"
87 #include "ppapi/c/private/ppb_tcp_socket_private.h"
88 #include "ppapi/c/private/ppb_udp_socket_private.h"
89 #include "ppapi/c/private/ppb_uma_private.h"
90 #include "ppapi/c/private/ppb_video_destination_private.h"
91 #include "ppapi/c/private/ppb_video_source_private.h"
92 #include "ppapi/c/private/ppb_x509_certificate_private.h"
93 #include "ppapi/c/trusted/ppb_broker_trusted.h"
94 #include "ppapi/c/trusted/ppb_browser_font_trusted.h"
95 #include "ppapi/c/trusted/ppb_char_set_trusted.h"
96 #include "ppapi/c/trusted/ppb_file_chooser_trusted.h"
97 #include "ppapi/c/trusted/ppb_file_io_trusted.h"
98 #include "ppapi/c/trusted/ppb_url_loader_trusted.h"
99 #include "ppapi/thunk/thunk.h"
101 namespace webkit {
102 namespace ppapi {
104 bool IsSupportedPepperInterface(const char* name) {
105 // TODO(brettw) put these in a hash map for better performance.
106 #define UNPROXIED_IFACE(api_name, iface_str, iface_struct) \
107 if (strcmp(name, iface_str) == 0) \
108 return true;
109 #define PROXIED_IFACE(api_name, iface_str, iface_struct) \
110 UNPROXIED_IFACE(api_name, iface_str, iface_struct)
112 #include "ppapi/thunk/interfaces_ppb_private.h"
113 #include "ppapi/thunk/interfaces_ppb_private_flash.h"
114 #include "ppapi/thunk/interfaces_ppb_private_no_permissions.h"
115 #include "ppapi/thunk/interfaces_ppb_public_dev.h"
116 #include "ppapi/thunk/interfaces_ppb_public_stable.h"
118 #undef UNPROXIED_IFACE
119 #undef PROXIED_IFACE
121 #define LEGACY_IFACE(iface_str, dummy) \
122 if (strcmp(name, iface_str) == 0) \
123 return true;
125 #include "ppapi/thunk/interfaces_legacy.h"
127 #undef LEGACY_IFACE
128 return false;
131 } // namespace ppapi
132 } // namespace webkit