[email protected] | 872f3a9 | 2013-05-21 08:16:08 | [diff] [blame] | 1 | // Copyright (c) 2012 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 | // |
| 5 | // Multiply-included message file, hence no include guard. |
| 6 | |
| 7 | #include "build/build_config.h" |
| 8 | #include "content/common/content_export.h" |
| 9 | #include "content/common/content_param_traits.h" |
| 10 | #include "content/public/common/common_param_traits.h" |
| 11 | #include "ipc/ipc_channel_handle.h" |
| 12 | #include "ipc/ipc_message_macros.h" |
| 13 | #include "ui/gfx/native_widget_types.h" |
| 14 | #include "ui/gfx/rect.h" |
| 15 | |
| 16 | #undef IPC_MESSAGE_EXPORT |
| 17 | #define IPC_MESSAGE_EXPORT CONTENT_EXPORT |
| 18 | |
| 19 | #define IPC_MESSAGE_START PluginProcessMsgStart |
| 20 | |
| 21 | //----------------------------------------------------------------------------- |
| 22 | // PluginProcess messages |
| 23 | // These are messages sent from the browser to the plugin process. |
| 24 | // Tells the plugin process to create a new channel for communication with a |
| 25 | // given renderer. The channel name is returned in a |
| 26 | // PluginProcessHostMsg_ChannelCreated message. The renderer ID is passed so |
| 27 | // that the plugin process reuses an existing channel to that process if it |
| 28 | // exists. This ID is a unique opaque identifier generated by the browser |
| 29 | // process. |
| 30 | IPC_MESSAGE_CONTROL2(PluginProcessMsg_CreateChannel, |
| 31 | int /* renderer_id */, |
| 32 | bool /* off_the_record */) |
| 33 | |
| 34 | // Tells the plugin process to notify every connected renderer of the pending |
| 35 | // shutdown, so we don't mistake it for a crash. |
| 36 | IPC_MESSAGE_CONTROL0(PluginProcessMsg_NotifyRenderersOfPendingShutdown) |
| 37 | |
| 38 | IPC_MESSAGE_CONTROL3(PluginProcessMsg_ClearSiteData, |
| 39 | std::string /* site */, |
| 40 | uint64 /* flags */, |
| 41 | uint64 /* max_age */) |
| 42 | |
| 43 | |
| 44 | //----------------------------------------------------------------------------- |
| 45 | // PluginProcessHost messages |
| 46 | // These are messages sent from the plugin process to the browser process. |
| 47 | // Response to a PluginProcessMsg_CreateChannel message. |
| 48 | IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_ChannelCreated, |
| 49 | IPC::ChannelHandle /* channel_handle */) |
| 50 | |
[email protected] | 01cb1991 | 2013-09-11 19:13:03 | [diff] [blame] | 51 | IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_ChannelDestroyed, |
| 52 | int /* renderer_id */) |
| 53 | |
[email protected] | 872f3a9 | 2013-05-21 08:16:08 | [diff] [blame] | 54 | IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_ClearSiteDataResult, |
| 55 | bool /* success */) |
| 56 | |
| 57 | #if defined(OS_WIN) |
| 58 | // Destroys the given window's parent on the UI thread. |
| 59 | IPC_MESSAGE_CONTROL2(PluginProcessHostMsg_PluginWindowDestroyed, |
| 60 | HWND /* window */, |
| 61 | HWND /* parent */) |
| 62 | #endif |
| 63 | |
| 64 | #if defined(USE_X11) |
| 65 | // On X11, the mapping between NativeViewId and X window ids |
| 66 | // is known only to the browser. This message lets the plugin process |
| 67 | // ask about a NativeViewId that was provided by the renderer. |
| 68 | // It will get 0 back if it's a bogus input. |
| 69 | IPC_SYNC_MESSAGE_CONTROL1_1(PluginProcessHostMsg_MapNativeViewId, |
| 70 | gfx::NativeViewId /* input: native view id */, |
| 71 | gfx::PluginWindowHandle /* output: X window id */) |
| 72 | #endif |
| 73 | |
| 74 | #if defined(OS_MACOSX) |
| 75 | // On Mac OS X, we need the browser to keep track of plugin windows so |
| 76 | // that it can add and remove them from stacking groups, hide and show the |
| 77 | // menu bar, etc. We pass the window rect for convenience so that the |
| 78 | // browser can easily tell if the window is fullscreen. |
| 79 | |
| 80 | // Notifies the browser that the plugin has selected a window (i.e., brought |
| 81 | // it to the front and wants it to have keyboard focus). |
| 82 | IPC_MESSAGE_CONTROL3(PluginProcessHostMsg_PluginSelectWindow, |
| 83 | uint32 /* window ID */, |
| 84 | gfx::Rect /* window rect */, |
| 85 | bool /* modal */) |
| 86 | |
| 87 | // Notifies the browser that the plugin has shown a window. |
| 88 | IPC_MESSAGE_CONTROL3(PluginProcessHostMsg_PluginShowWindow, |
| 89 | uint32 /* window ID */, |
| 90 | gfx::Rect /* window rect */, |
| 91 | bool /* modal */) |
| 92 | |
| 93 | // Notifies the browser that the plugin has hidden a window. |
| 94 | IPC_MESSAGE_CONTROL2(PluginProcessHostMsg_PluginHideWindow, |
| 95 | uint32 /* window ID */, |
| 96 | gfx::Rect /* window rect */) |
| 97 | |
| 98 | // Notifies the browser that a plugin instance has requested a cursor |
| 99 | // visibility change. |
| 100 | IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_PluginSetCursorVisibility, |
| 101 | bool /* cursor visibility */) |
| 102 | #endif |