Home | History | Annotate | Download | only in common
      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