diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-22 22:38:39 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-22 22:38:39 +0000 |
commit | 585c9dd77856582dd3bbdf773ae9b63b51f8c200 (patch) | |
tree | ffcc6dbdaf73f7866558315e4ceb234d270b4667 /webkit/common | |
parent | 63c8cb0e1d055530f8c29250c68553175f2b1287 (diff) | |
download | chromium_src-585c9dd77856582dd3bbdf773ae9b63b51f8c200.zip chromium_src-585c9dd77856582dd3bbdf773ae9b63b51f8c200.tar.gz chromium_src-585c9dd77856582dd3bbdf773ae9b63b51f8c200.tar.bz2 |
The chrome browser target should not depend on plugins.
This in turn brings with it a dependency on webkit_glue which in turn brings in webkit.
We should only depend on plugins_common in the browser.
The pepper component updater for flash is the only component in the browser which depends
on webkit\plugins\ppapi. This is to check if the interface name passed in is supported by the browser.
I added a function IsSupportedPepperInterface to the newly added ppapi_utils.cc/.h file which lives in
webkit/common/plugins/ppapi
Added a macro LEGACY_IFACE to the newly added ppapi/thunk/interfaces_legacy.h file. This macro consolidates
the list of interfaces being checked for on the browser. It is used in plugin_module.cc and ppapi_utils.cc
BUG=237249
TBR=cpu@chromium.org, jamesr@chromium.org, raymes@chromium.org, yzshen@chromium.org
Review URL: https://codereview.chromium.org/15505004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201623 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/common')
-rw-r--r-- | webkit/common/DEPS | 3 | ||||
-rw-r--r-- | webkit/common/plugins/ppapi/ppapi_utils.cc | 132 | ||||
-rw-r--r-- | webkit/common/plugins/ppapi/ppapi_utils.h | 20 |
3 files changed, 155 insertions, 0 deletions
diff --git a/webkit/common/DEPS b/webkit/common/DEPS index dea5c28..848f417 100644 --- a/webkit/common/DEPS +++ b/webkit/common/DEPS @@ -1,4 +1,7 @@ include_rules = [ + "+ppapi/c", + "+ppapi/shared_impl", + "+ppapi/thunk", "-webkit/browser", "-webkit/renderer", ] diff --git a/webkit/common/plugins/ppapi/ppapi_utils.cc b/webkit/common/plugins/ppapi/ppapi_utils.cc new file mode 100644 index 0000000..c4a65b8 --- /dev/null +++ b/webkit/common/plugins/ppapi/ppapi_utils.cc @@ -0,0 +1,132 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#include "webkit/common/plugins/ppapi/ppapi_utils.h" + +#include <cstring> + +#include "ppapi/c/dev/ppb_audio_input_dev.h" +#include "ppapi/c/dev/ppb_buffer_dev.h" +#include "ppapi/c/dev/ppb_char_set_dev.h" +#include "ppapi/c/dev/ppb_crypto_dev.h" +#include "ppapi/c/dev/ppb_cursor_control_dev.h" +#include "ppapi/c/dev/ppb_device_ref_dev.h" +#include "ppapi/c/dev/ppb_file_chooser_dev.h" +#include "ppapi/c/dev/ppb_find_dev.h" +#include "ppapi/c/dev/ppb_font_dev.h" +#include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h" +#include "ppapi/c/dev/ppb_graphics_2d_dev.h" +#include "ppapi/c/dev/ppb_ime_input_event_dev.h" +#include "ppapi/c/dev/ppb_keyboard_input_event_dev.h" +#include "ppapi/c/dev/ppb_memory_dev.h" +#include "ppapi/c/dev/ppb_opengles2ext_dev.h" +#include "ppapi/c/dev/ppb_printing_dev.h" +#include "ppapi/c/dev/ppb_resource_array_dev.h" +#include "ppapi/c/dev/ppb_scrollbar_dev.h" +#include "ppapi/c/dev/ppb_testing_dev.h" +#include "ppapi/c/dev/ppb_text_input_dev.h" +#include "ppapi/c/dev/ppb_trace_event_dev.h" +#include "ppapi/c/dev/ppb_truetype_font_dev.h" +#include "ppapi/c/dev/ppb_url_util_dev.h" +#include "ppapi/c/dev/ppb_var_array_dev.h" +#include "ppapi/c/dev/ppb_var_deprecated.h" +#include "ppapi/c/dev/ppb_var_dictionary_dev.h" +#include "ppapi/c/dev/ppb_video_capture_dev.h" +#include "ppapi/c/dev/ppb_video_decoder_dev.h" +#include "ppapi/c/dev/ppb_view_dev.h" +#include "ppapi/c/dev/ppb_widget_dev.h" +#include "ppapi/c/dev/ppb_zoom_dev.h" +#include "ppapi/c/extensions/dev/ppb_ext_alarms_dev.h" +#include "ppapi/c/extensions/dev/ppb_ext_socket_dev.h" +#include "ppapi/c/ppb_audio.h" +#include "ppapi/c/ppb_audio_config.h" +#include "ppapi/c/ppb_console.h" +#include "ppapi/c/ppb_core.h" +#include "ppapi/c/ppb_file_io.h" +#include "ppapi/c/ppb_file_ref.h" +#include "ppapi/c/ppb_file_system.h" +#include "ppapi/c/ppb_fullscreen.h" +#include "ppapi/c/ppb_gamepad.h" +#include "ppapi/c/ppb_graphics_2d.h" +#include "ppapi/c/ppb_graphics_3d.h" +#include "ppapi/c/ppb_image_data.h" +#include "ppapi/c/ppb_input_event.h" +#include "ppapi/c/ppb_instance.h" +#include "ppapi/c/ppb_messaging.h" +#include "ppapi/c/ppb_mouse_cursor.h" +#include "ppapi/c/ppb_mouse_lock.h" +#include "ppapi/c/ppb_opengles2.h" +#include "ppapi/c/ppb_url_loader.h" +#include "ppapi/c/ppb_url_request_info.h" +#include "ppapi/c/ppb_url_response_info.h" +#include "ppapi/c/ppb_var.h" +#include "ppapi/c/ppb_var_array_buffer.h" +#include "ppapi/c/ppb_view.h" +#include "ppapi/c/ppb_websocket.h" +#include "ppapi/c/private/ppb_content_decryptor_private.h" +#include "ppapi/c/private/ppb_ext_crx_file_system_private.h" +#include "ppapi/c/private/ppb_file_io_private.h" +#include "ppapi/c/private/ppb_file_ref_private.h" +#include "ppapi/c/private/ppb_flash.h" +#include "ppapi/c/private/ppb_flash_clipboard.h" +#include "ppapi/c/private/ppb_flash_device_id.h" +#include "ppapi/c/private/ppb_flash_file.h" +#include "ppapi/c/private/ppb_flash_font_file.h" +#include "ppapi/c/private/ppb_flash_fullscreen.h" +#include "ppapi/c/private/ppb_flash_menu.h" +#include "ppapi/c/private/ppb_flash_message_loop.h" +#include "ppapi/c/private/ppb_flash_print.h" +#include "ppapi/c/private/ppb_gpu_blacklist_private.h" +#include "ppapi/c/private/ppb_host_resolver_private.h" +#include "ppapi/c/private/ppb_network_list_private.h" +#include "ppapi/c/private/ppb_network_monitor_private.h" +#include "ppapi/c/private/ppb_pdf.h" +#include "ppapi/c/private/ppb_proxy_private.h" +#include "ppapi/c/private/ppb_talk_private.h" +#include "ppapi/c/private/ppb_tcp_server_socket_private.h" +#include "ppapi/c/private/ppb_tcp_socket_private.h" +#include "ppapi/c/private/ppb_udp_socket_private.h" +#include "ppapi/c/private/ppb_uma_private.h" +#include "ppapi/c/private/ppb_video_destination_private.h" +#include "ppapi/c/private/ppb_video_source_private.h" +#include "ppapi/c/private/ppb_x509_certificate_private.h" +#include "ppapi/c/trusted/ppb_broker_trusted.h" +#include "ppapi/c/trusted/ppb_browser_font_trusted.h" +#include "ppapi/c/trusted/ppb_char_set_trusted.h" +#include "ppapi/c/trusted/ppb_file_chooser_trusted.h" +#include "ppapi/c/trusted/ppb_file_io_trusted.h" +#include "ppapi/c/trusted/ppb_url_loader_trusted.h" +#include "ppapi/thunk/thunk.h" + +namespace webkit { +namespace ppapi { + +bool IsSupportedPepperInterface(const char* name) { + // TODO(brettw) put these in a hash map for better performance. + #define UNPROXIED_IFACE(api_name, iface_str, iface_struct) \ + if (strcmp(name, iface_str) == 0) \ + return true; + #define PROXIED_IFACE(api_name, iface_str, iface_struct) \ + UNPROXIED_IFACE(api_name, iface_str, iface_struct) + + #include "ppapi/thunk/interfaces_ppb_private.h" + #include "ppapi/thunk/interfaces_ppb_private_flash.h" + #include "ppapi/thunk/interfaces_ppb_private_no_permissions.h" + #include "ppapi/thunk/interfaces_ppb_public_dev.h" + #include "ppapi/thunk/interfaces_ppb_public_stable.h" + + #undef UNPROXIED_IFACE + #undef PROXIED_IFACE + + #define LEGACY_IFACE(iface_str, dummy) \ + if (strcmp(name, iface_str) == 0) \ + return true; + + #include "ppapi/thunk/interfaces_legacy.h" + + #undef LEGACY_IFACE + return false; +} + +} // namespace ppapi +} // namespace webkit diff --git a/webkit/common/plugins/ppapi/ppapi_utils.h b/webkit/common/plugins/ppapi/ppapi_utils.h new file mode 100644 index 0000000..849bac9 --- /dev/null +++ b/webkit/common/plugins/ppapi/ppapi_utils.h @@ -0,0 +1,20 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBKIT_COMMON_PLUGINS_PPAPI_PPAPI_UTILS_H_ +#define WEBKIT_COMMON_PLUGINS_PPAPI_PPAPI_UTILS_H_ + +namespace webkit { +namespace ppapi { + +// Returns true if the interface name passed in is supported by the +// browser. +bool IsSupportedPepperInterface(const char* name); + +} // namespace ppapi +} // namespace webkit + +#endif // WEBKIT_COMMON_PLUGINS_PPAPI_PPAPI_UTILS_H_ + + |