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)94bool 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