• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
51 IPC_MESSAGE_CONTROL1(PluginProcessHostMsg_ChannelDestroyed,
52                      int /* renderer_id */)
53 
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
103