// Copyright (c) 2012 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 header, no traditional include guard. #include #include "base/basictypes.h" #include "base/process.h" #include "content/common/content_export.h" #include "content/public/common/common_param_traits.h" #include "ipc/ipc_channel_handle.h" #include "ipc/ipc_message_macros.h" #include "ipc/ipc_message_utils.h" #include "ppapi/c/pp_instance.h" #include "ui/gfx/size.h" #define IPC_MESSAGE_START OldBrowserPluginMsgStart // Browser plugin messages // ----------------------------------------------------------------------------- // These messages are from the embedder to the browser process // A renderer sends this to the browser process when it wants to // create a browser plugin. The browser will create a guest renderer process // if necessary. IPC_MESSAGE_ROUTED3(OldBrowserPluginHostMsg_NavigateFromEmbedder, int /* plugin instance id*/, long long /* frame id */, std::string /* src */) // Initially before we create a guest renderer, browser plugin containers // have a placeholder called BrowserPlugin where each BrowserPlugin has a unique // ID. During pepper plugin initialization, the embedder page and the plugin // negotiate an ID of type PP_Instance. The browser talks to the guest // RenderView via yet another identifier called the routing ID. The browser // has to keep track of how all these identifiers are associated with one // another. // For reference: // 1. The embedder page sees the guest renderer as a plugin and so it talks // to the guest via the PP_Instance identifer. // 2. The guest renderer talks to the browser and vice versa via a routing ID. // 3. The BrowserPlugin ID uniquely identifies a browser plugin container // instance within an embedder. // This identifier exists prior to the existence of the routing ID and the // PP_Instance identifier. // The purpose of this message is to tell the browser to map a PP_Instance // identifier to BrowserPlugin identifier. IPC_MESSAGE_ROUTED2(OldBrowserPluginHostMsg_MapInstance, int /* container_id */, PP_Instance /* instance */) // ----------------------------------------------------------------------------- // These messages are from the embedder render process to the guest render // process. IPC_MESSAGE_CONTROL2(OldBrowserPluginMsg_GuestReady, PP_Instance /* instance */, int /* embedder_container_id */) // ----------------------------------------------------------------------------- // These messages are from the guest renderer to the browser process IPC_MESSAGE_ROUTED1(OldBrowserPluginHostMsg_ConnectToChannel, IPC::ChannelHandle /* handle */) // A embedder sends this message to the browser when it wants // to resize a guest plugin container so that the guest is relaid out // according to the new size. IPC_MESSAGE_ROUTED2(OldBrowserPluginHostMsg_ResizeGuest, int32, /* width */ int32 /* height */) IPC_MESSAGE_ROUTED2(OldBrowserPluginHostMsg_NavigateFromGuest, PP_Instance /* instance */, std::string /* src */) // ----------------------------------------------------------------------------- // These messages are from the browser process to the embedder. // A guest instance is ready to be placed. IPC_MESSAGE_CONTROL3(OldBrowserPluginMsg_LoadGuest, int /* instance_id */, int /* guest_process_id */, IPC::ChannelHandle /* channel_handle */) IPC_MESSAGE_CONTROL2(OldBrowserPluginMsg_AdvanceFocus, int /* instance_id */, bool /* reverse */)