plugin_process_messages.h revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
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. 30IPC_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. 36IPC_MESSAGE_CONTROL0(PluginProcessMsg_NotifyRenderersOfPendingShutdown) 37 38IPC_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. 48IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_ChannelCreated, 49 IPC::ChannelHandle /* channel_handle */) 50 51IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_ClearSiteDataResult, 52 bool /* success */) 53 54#if defined(OS_WIN) 55// Destroys the given window's parent on the UI thread. 56IPC_MESSAGE_CONTROL2(PluginProcessHostMsg_PluginWindowDestroyed, 57 HWND /* window */, 58 HWND /* parent */) 59#endif 60 61#if defined(USE_X11) 62// On X11, the mapping between NativeViewId and X window ids 63// is known only to the browser. This message lets the plugin process 64// ask about a NativeViewId that was provided by the renderer. 65// It will get 0 back if it's a bogus input. 66IPC_SYNC_MESSAGE_CONTROL1_1(PluginProcessHostMsg_MapNativeViewId, 67 gfx::NativeViewId /* input: native view id */, 68 gfx::PluginWindowHandle /* output: X window id */) 69#endif 70 71#if defined(OS_MACOSX) 72// On Mac OS X, we need the browser to keep track of plugin windows so 73// that it can add and remove them from stacking groups, hide and show the 74// menu bar, etc. We pass the window rect for convenience so that the 75// browser can easily tell if the window is fullscreen. 76 77// Notifies the browser that the plugin has selected a window (i.e., brought 78// it to the front and wants it to have keyboard focus). 79IPC_MESSAGE_CONTROL3(PluginProcessHostMsg_PluginSelectWindow, 80 uint32 /* window ID */, 81 gfx::Rect /* window rect */, 82 bool /* modal */) 83 84// Notifies the browser that the plugin has shown a window. 85IPC_MESSAGE_CONTROL3(PluginProcessHostMsg_PluginShowWindow, 86 uint32 /* window ID */, 87 gfx::Rect /* window rect */, 88 bool /* modal */) 89 90// Notifies the browser that the plugin has hidden a window. 91IPC_MESSAGE_CONTROL2(PluginProcessHostMsg_PluginHideWindow, 92 uint32 /* window ID */, 93 gfx::Rect /* window rect */) 94 95// Notifies the browser that a plugin instance has requested a cursor 96// visibility change. 97IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_PluginSetCursorVisibility, 98 bool /* cursor visibility */) 99#endif 100