Index: content/common/browser_plugin_messages.h |
diff --git a/content/common/browser_plugin_messages.h b/content/common/browser_plugin_messages.h |
index db40c45554c58d488fbcd054bcda34631cf083a9..ae4c622c646f4335f42b70749b7e9d0f41a988ad 100644 |
--- a/content/common/browser_plugin_messages.h |
+++ b/content/common/browser_plugin_messages.h |
@@ -13,6 +13,7 @@ |
#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 BrowserPluginMsgStart |
@@ -20,53 +21,68 @@ |
// Browser plugin messages |
// ----------------------------------------------------------------------------- |
-// These messages are from the host renderer to the browser process |
+// 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_ROUTED4(BrowserPluginHostMsg_OpenChannel, |
+IPC_MESSAGE_ROUTED4(BrowserPluginHostMsg_NavigateFromEmbedder, |
int /* plugin instance id*/, |
long long /* frame id */, |
std::string /* src */, |
gfx::Size /* size */) |
+// 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(BrowserPluginHostMsg_MapInstance, |
+ int /* container_id */, |
+ PP_Instance /* instance */) |
+ |
// ----------------------------------------------------------------------------- |
// These messages are from the browser process to the guest renderer. |
-// Creates a channel to talk to a renderer. The guest renderer will respond |
-// with BrowserPluginHostMsg_ChannelCreated. |
-IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CreateChannel, |
- base::ProcessHandle /* host_renderer_process_handle */, |
- int /* host_renderer_id */) |
+IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompleteNavigation, |
+ int /* guest_routing_id */, |
+ PP_Instance /* instance */) |
// ----------------------------------------------------------------------------- |
// These messages are from the guest renderer to the browser process |
-// Reply to BrowserPluginMsg_CreateChannel. The handle will be NULL if the |
-// channel could not be established. This could be because the IPC could not be |
-// created for some weird reason, but more likely that the renderer failed to |
-// initialize properly. |
-IPC_MESSAGE_CONTROL1(BrowserPluginHostMsg_ChannelCreated, |
- IPC::ChannelHandle /* handle */) |
- |
-// Indicates the guest renderer is ready in response to a ViewMsg_New |
-IPC_MESSAGE_ROUTED0(BrowserPluginHostMsg_GuestReady) |
+IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_ConnectToChannel, |
+ IPC::ChannelHandle /* handle */) |
-// A host renderer sends this message to the browser when it wants |
+// 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(BrowserPluginHostMsg_ResizeGuest, |
int32, /* width */ |
int32 /* height */) |
+IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateFromGuest, |
+ PP_Instance /* instance */, |
+ std::string /* src */) |
+ |
// ----------------------------------------------------------------------------- |
-// These messages are from the browser process to the host renderer. |
+// These messages are from the browser process to the embedder. |
// A guest instance is ready to be placed. |
-IPC_MESSAGE_ROUTED3(BrowserPluginMsg_GuestReady_ACK, |
- int /* instance id */, |
- base::ProcessHandle /* plugin_process_handle */, |
- IPC::ChannelHandle /* handle to channel */) |
- |
+IPC_MESSAGE_CONTROL3(BrowserPluginMsg_LoadGuest, |
+ int /* instance id */, |
+ int /* guest_process_id */, |
+ IPC::ChannelHandle /* channel_handle */) |