summaryrefslogtreecommitdiffstats
path: root/webkit/common
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-22 22:38:39 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-22 22:38:39 +0000
commit585c9dd77856582dd3bbdf773ae9b63b51f8c200 (patch)
treeffcc6dbdaf73f7866558315e4ceb234d270b4667 /webkit/common
parent63c8cb0e1d055530f8c29250c68553175f2b1287 (diff)
downloadchromium_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/DEPS3
-rw-r--r--webkit/common/plugins/ppapi/ppapi_utils.cc132
-rw-r--r--webkit/common/plugins/ppapi/ppapi_utils.h20
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_
+
+