summaryrefslogtreecommitdiffstats
path: root/content/child/plugin_messages.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/child/plugin_messages.h')
-rw-r--r--content/child/plugin_messages.h380
1 files changed, 380 insertions, 0 deletions
diff --git a/content/child/plugin_messages.h b/content/child/plugin_messages.h
new file mode 100644
index 0000000..7c0d825
--- /dev/null
+++ b/content/child/plugin_messages.h
@@ -0,0 +1,380 @@
+// Copyright 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.
+//
+// Multiply-included message file, hence no include guard.
+
+#include "build/build_config.h"
+#include "content/child/plugin_param_traits.h"
+#include "content/common/content_export.h"
+#include "content/common/content_param_traits.h"
+#include "content/public/common/common_param_traits.h"
+#include "ipc/ipc_channel_handle.h"
+#include "ipc/ipc_message_macros.h"
+#include "ui/gfx/native_widget_types.h"
+#include "ui/gfx/rect.h"
+#include "webkit/common/cursors/webcursor.h"
+
+#if defined(OS_POSIX)
+#include "base/file_descriptor_posix.h"
+#endif
+
+#undef IPC_MESSAGE_EXPORT
+#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
+
+#define IPC_MESSAGE_START PluginMsgStart
+
+IPC_STRUCT_BEGIN(PluginMsg_Init_Params)
+ IPC_STRUCT_MEMBER(GURL, url)
+ IPC_STRUCT_MEMBER(GURL, page_url)
+ IPC_STRUCT_MEMBER(std::vector<std::string>, arg_names)
+ IPC_STRUCT_MEMBER(std::vector<std::string>, arg_values)
+ IPC_STRUCT_MEMBER(bool, load_manually)
+ IPC_STRUCT_MEMBER(int, host_render_view_routing_id)
+IPC_STRUCT_END()
+
+IPC_STRUCT_BEGIN(PluginHostMsg_URLRequest_Params)
+ IPC_STRUCT_MEMBER(std::string, url)
+ IPC_STRUCT_MEMBER(std::string, method)
+ IPC_STRUCT_MEMBER(std::string, target)
+ IPC_STRUCT_MEMBER(std::vector<char>, buffer)
+ IPC_STRUCT_MEMBER(int, notify_id)
+ IPC_STRUCT_MEMBER(bool, popups_allowed)
+ IPC_STRUCT_MEMBER(bool, notify_redirects)
+IPC_STRUCT_END()
+
+IPC_STRUCT_BEGIN(PluginMsg_DidReceiveResponseParams)
+ IPC_STRUCT_MEMBER(unsigned long, id)
+ IPC_STRUCT_MEMBER(std::string, mime_type)
+ IPC_STRUCT_MEMBER(std::string, headers)
+ IPC_STRUCT_MEMBER(uint32, expected_length)
+ IPC_STRUCT_MEMBER(uint32, last_modified)
+ IPC_STRUCT_MEMBER(bool, request_is_seekable)
+IPC_STRUCT_END()
+
+IPC_STRUCT_BEGIN(PluginMsg_UpdateGeometry_Param)
+ IPC_STRUCT_MEMBER(gfx::Rect, window_rect)
+ IPC_STRUCT_MEMBER(gfx::Rect, clip_rect)
+ IPC_STRUCT_MEMBER(TransportDIB::Handle, windowless_buffer0)
+ IPC_STRUCT_MEMBER(TransportDIB::Handle, windowless_buffer1)
+ IPC_STRUCT_MEMBER(int, windowless_buffer_index)
+IPC_STRUCT_END()
+
+//-----------------------------------------------------------------------------
+// Plugin messages
+// These are messages sent from the renderer process to the plugin process.
+// Tells the plugin process to create a new plugin instance with the given
+// id. A corresponding WebPluginDelegateStub is created which hosts the
+// WebPluginDelegateImpl.
+IPC_SYNC_MESSAGE_CONTROL1_1(PluginMsg_CreateInstance,
+ std::string /* mime_type */,
+ int /* instance_id */)
+
+// The WebPluginDelegateProxy sends this to the WebPluginDelegateStub in its
+// destructor, so that the stub deletes the actual WebPluginDelegateImpl
+// object that it's hosting.
+IPC_SYNC_MESSAGE_CONTROL1_0(PluginMsg_DestroyInstance,
+ int /* instance_id */)
+
+IPC_SYNC_MESSAGE_CONTROL0_1(PluginMsg_GenerateRouteID,
+ int /* id */)
+
+// The messages below all map to WebPluginDelegate methods.
+IPC_SYNC_MESSAGE_ROUTED1_2(PluginMsg_Init,
+ PluginMsg_Init_Params,
+ bool /* transparent */,
+ bool /* result */)
+
+// Used to synchronously request a paint for windowless plugins.
+IPC_SYNC_MESSAGE_ROUTED1_0(PluginMsg_Paint,
+ gfx::Rect /* damaged_rect */)
+
+// Sent by the renderer after it paints from its backing store so that the
+// plugin knows it can send more invalidates.
+IPC_MESSAGE_ROUTED0(PluginMsg_DidPaint)
+
+IPC_SYNC_MESSAGE_ROUTED0_1(PluginMsg_GetPluginScriptableObject,
+ int /* route_id */)
+
+// Gets the form value of the plugin instance synchronously.
+IPC_SYNC_MESSAGE_ROUTED0_2(PluginMsg_GetFormValue,
+ string16 /* value */,
+ bool /* success */)
+
+IPC_MESSAGE_ROUTED3(PluginMsg_DidFinishLoadWithReason,
+ GURL /* url */,
+ int /* reason */,
+ int /* notify_id */)
+
+// Updates the plugin location.
+IPC_MESSAGE_ROUTED1(PluginMsg_UpdateGeometry,
+ PluginMsg_UpdateGeometry_Param)
+
+// A synchronous version of above.
+IPC_SYNC_MESSAGE_ROUTED1_0(PluginMsg_UpdateGeometrySync,
+ PluginMsg_UpdateGeometry_Param)
+
+IPC_SYNC_MESSAGE_ROUTED1_0(PluginMsg_SetFocus,
+ bool /* focused */)
+
+IPC_SYNC_MESSAGE_ROUTED1_2(PluginMsg_HandleInputEvent,
+ IPC::WebInputEventPointer /* event */,
+ bool /* handled */,
+ WebCursor /* cursor type*/)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_SetContentAreaFocus,
+ bool /* has_focus */)
+
+#if defined(OS_WIN)
+IPC_MESSAGE_ROUTED4(PluginMsg_ImeCompositionUpdated,
+ string16 /* text */,
+ std::vector<int> /* clauses */,
+ std::vector<int>, /* target */
+ int /* cursor_position */)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_ImeCompositionCompleted,
+ string16 /* text */)
+#endif
+
+#if defined(OS_MACOSX)
+IPC_MESSAGE_ROUTED1(PluginMsg_SetWindowFocus,
+ bool /* has_focus */)
+
+IPC_MESSAGE_ROUTED0(PluginMsg_ContainerHidden)
+
+IPC_MESSAGE_ROUTED3(PluginMsg_ContainerShown,
+ gfx::Rect /* window_frame */,
+ gfx::Rect /* view_frame */,
+ bool /* has_focus */)
+
+IPC_MESSAGE_ROUTED2(PluginMsg_WindowFrameChanged,
+ gfx::Rect /* window_frame */,
+ gfx::Rect /* view_frame */)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_ImeCompositionCompleted,
+ string16 /* text */)
+#endif
+
+IPC_SYNC_MESSAGE_ROUTED3_0(PluginMsg_WillSendRequest,
+ unsigned long /* id */,
+ GURL /* url */,
+ int /* http_status_code */)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_DidReceiveResponse,
+ PluginMsg_DidReceiveResponseParams)
+
+IPC_MESSAGE_ROUTED3(PluginMsg_DidReceiveData,
+ unsigned long /* id */,
+ std::vector<char> /* buffer */,
+ int /* data_offset */)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_DidFinishLoading,
+ unsigned long /* id */)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_DidFail,
+ unsigned long /* id */)
+
+IPC_MESSAGE_ROUTED4(PluginMsg_SendJavaScriptStream,
+ GURL /* url */,
+ std::string /* result */,
+ bool /* success */,
+ int /* notify_id */)
+
+IPC_MESSAGE_ROUTED2(PluginMsg_DidReceiveManualResponse,
+ GURL /* url */,
+ PluginMsg_DidReceiveResponseParams)
+
+IPC_MESSAGE_ROUTED1(PluginMsg_DidReceiveManualData,
+ std::vector<char> /* buffer */)
+
+IPC_MESSAGE_ROUTED0(PluginMsg_DidFinishManualLoading)
+
+IPC_MESSAGE_ROUTED0(PluginMsg_DidManualLoadFail)
+
+IPC_MESSAGE_ROUTED3(PluginMsg_HandleURLRequestReply,
+ unsigned long /* resource_id */,
+ GURL /* url */,
+ int /* notify_id */)
+
+IPC_MESSAGE_ROUTED2(PluginMsg_HTTPRangeRequestReply,
+ unsigned long /* resource_id */,
+ int /* range_request_id */)
+
+IPC_MESSAGE_CONTROL1(PluginMsg_SignalModalDialogEvent,
+ int /* render_view_id */)
+
+IPC_MESSAGE_CONTROL1(PluginMsg_ResetModalDialogEvent,
+ int /* render_view_id */)
+
+#if defined(OS_MACOSX)
+// This message, used only on 10.6 and later, transmits the "fake"
+// window handle allocated by the browser on behalf of the renderer
+// to the GPU plugin.
+IPC_MESSAGE_ROUTED1(PluginMsg_SetFakeAcceleratedSurfaceWindowHandle,
+ gfx::PluginWindowHandle /* window */)
+#endif
+
+//-----------------------------------------------------------------------------
+// PluginHost messages
+// These are messages sent from the plugin process to the renderer process.
+// They all map to the corresponding WebPlugin methods.
+// Sends the plugin window information to the renderer.
+// The window parameter is a handle to the window if the plugin is a windowed
+// plugin. It is NULL for windowless plugins.
+IPC_SYNC_MESSAGE_ROUTED1_0(PluginHostMsg_SetWindow,
+ gfx::PluginWindowHandle /* window */)
+
+#if defined(OS_WIN)
+// The modal_loop_pump_messages_event parameter is an event handle which is
+// passed in for windowless plugins and is used to indicate if messages
+// are to be pumped in sync calls to the plugin process. Currently used
+// in HandleEvent calls.
+IPC_SYNC_MESSAGE_ROUTED2_0(PluginHostMsg_SetWindowlessData,
+ HANDLE /* modal_loop_pump_messages_event */,
+ gfx::NativeViewId /* dummy_activation_window*/)
+
+// Send the IME status retrieved from a windowless plug-in. A windowless plug-in
+// uses the IME attached to a browser process as a renderer does. A plug-in
+// sends this message to control the IME status of a browser process. I would
+// note that a plug-in sends this message to a renderer process that hosts this
+// plug-in (not directly to a browser process) so the renderer process can
+// update its IME status.
+IPC_MESSAGE_ROUTED2(PluginHostMsg_NotifyIMEStatus,
+ int /* input_type */,
+ gfx::Rect /* caret_rect */)
+#endif
+
+IPC_MESSAGE_ROUTED1(PluginHostMsg_URLRequest,
+ PluginHostMsg_URLRequest_Params)
+
+IPC_MESSAGE_ROUTED1(PluginHostMsg_CancelResource,
+ int /* id */)
+
+IPC_MESSAGE_ROUTED1(PluginHostMsg_InvalidateRect,
+ gfx::Rect /* rect */)
+
+IPC_SYNC_MESSAGE_ROUTED1_1(PluginHostMsg_GetWindowScriptNPObject,
+ int /* route id */,
+ bool /* success */)
+
+IPC_SYNC_MESSAGE_ROUTED1_1(PluginHostMsg_GetPluginElement,
+ int /* route id */,
+ bool /* success */)
+
+IPC_SYNC_MESSAGE_ROUTED1_2(PluginHostMsg_ResolveProxy,
+ GURL /* url */,
+ bool /* result */,
+ std::string /* proxy list */)
+
+IPC_MESSAGE_ROUTED3(PluginHostMsg_SetCookie,
+ GURL /* url */,
+ GURL /* first_party_for_cookies */,
+ std::string /* cookie */)
+
+IPC_SYNC_MESSAGE_ROUTED2_1(PluginHostMsg_GetCookies,
+ GURL /* url */,
+ GURL /* first_party_for_cookies */,
+ std::string /* cookies */)
+
+IPC_MESSAGE_ROUTED0(PluginHostMsg_CancelDocumentLoad)
+
+IPC_MESSAGE_ROUTED3(PluginHostMsg_InitiateHTTPRangeRequest,
+ std::string /* url */,
+ std::string /* range_info */,
+ int /* range_request_id */)
+
+IPC_MESSAGE_ROUTED2(PluginHostMsg_DeferResourceLoading,
+ unsigned long /* resource_id */,
+ bool /* defer */)
+
+IPC_SYNC_MESSAGE_CONTROL1_0(PluginHostMsg_SetException,
+ std::string /* message */)
+
+IPC_MESSAGE_CONTROL0(PluginHostMsg_PluginShuttingDown)
+
+#if defined(OS_MACOSX)
+IPC_MESSAGE_ROUTED1(PluginHostMsg_FocusChanged,
+ bool /* focused */)
+
+IPC_MESSAGE_ROUTED0(PluginHostMsg_StartIme)
+
+//----------------------------------------------------------------------
+// Core Animation plugin implementation rendering via compositor.
+
+// Notifies the renderer process that this plugin will be using the
+// accelerated rendering path.
+IPC_MESSAGE_ROUTED0(PluginHostMsg_AcceleratedPluginEnabledRendering)
+
+// Notifies the renderer process that the plugin allocated a new
+// IOSurface into which it is rendering. The renderer process forwards
+// this IOSurface to the GPU process, causing it to be bound to a
+// texture from which the compositor can render. Any previous
+// IOSurface allocated by this plugin must be implicitly released by
+// the receipt of this message.
+IPC_MESSAGE_ROUTED3(PluginHostMsg_AcceleratedPluginAllocatedIOSurface,
+ int32 /* width */,
+ int32 /* height */,
+ uint32 /* surface_id */)
+
+// Notifies the renderer process that the plugin produced a new frame
+// of content into its IOSurface, and therefore that the compositor
+// needs to redraw.
+IPC_MESSAGE_ROUTED0(PluginHostMsg_AcceleratedPluginSwappedIOSurface)
+#endif
+
+IPC_MESSAGE_ROUTED2(PluginHostMsg_URLRedirectResponse,
+ bool /* allow */,
+ int /* resource_id */)
+
+
+//-----------------------------------------------------------------------------
+// NPObject messages
+// These are messages used to marshall NPObjects. They are sent both from the
+// plugin to the renderer and from the renderer to the plugin.
+IPC_SYNC_MESSAGE_ROUTED0_0(NPObjectMsg_Release)
+
+IPC_SYNC_MESSAGE_ROUTED1_1(NPObjectMsg_HasMethod,
+ content::NPIdentifier_Param /* name */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED3_2(NPObjectMsg_Invoke,
+ bool /* is_default */,
+ content::NPIdentifier_Param /* method */,
+ std::vector<content::NPVariant_Param> /* args */,
+ content::NPVariant_Param /* result_param */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED1_1(NPObjectMsg_HasProperty,
+ content::NPIdentifier_Param /* name */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED1_2(NPObjectMsg_GetProperty,
+ content::NPIdentifier_Param /* name */,
+ content::NPVariant_Param /* property */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED2_1(NPObjectMsg_SetProperty,
+ content::NPIdentifier_Param /* name */,
+ content::NPVariant_Param /* property */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED1_1(NPObjectMsg_RemoveProperty,
+ content::NPIdentifier_Param /* name */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED0_0(NPObjectMsg_Invalidate)
+
+IPC_SYNC_MESSAGE_ROUTED0_2(NPObjectMsg_Enumeration,
+ std::vector<content::NPIdentifier_Param> /* value */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED1_2(NPObjectMsg_Construct,
+ std::vector<content::NPVariant_Param> /* args */,
+ content::NPVariant_Param /* result_param */,
+ bool /* result */)
+
+IPC_SYNC_MESSAGE_ROUTED2_2(NPObjectMsg_Evaluate,
+ std::string /* script */,
+ bool /* popups_allowed */,
+ content::NPVariant_Param /* result_param */,
+ bool /* result */)