OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Multiply-included message header, no traditional include guard. | 5 // Multiply-included message header, no traditional include guard. |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/process.h" | 10 #include "base/process.h" |
11 #include "content/common/content_export.h" | 11 #include "content/common/content_export.h" |
12 #include "content/public/common/common_param_traits.h" | 12 #include "content/public/common/common_param_traits.h" |
13 #include "ipc/ipc_channel_handle.h" | 13 #include "ipc/ipc_channel_handle.h" |
14 #include "ipc/ipc_message_macros.h" | 14 #include "ipc/ipc_message_macros.h" |
15 #include "ipc/ipc_message_utils.h" | 15 #include "ipc/ipc_message_utils.h" |
16 #include "ppapi/c/pp_instance.h" | 16 #include "ppapi/c/pp_instance.h" |
17 #include "ui/gfx/size.h" | 17 #include "ui/gfx/size.h" |
18 | 18 |
19 #define IPC_MESSAGE_START BrowserPluginMsgStart | 19 #define IPC_MESSAGE_START BrowserPluginMsgStart |
20 | 20 |
21 // Browser plugin messages | 21 // Browser plugin messages |
22 | 22 |
23 // ----------------------------------------------------------------------------- | 23 // ----------------------------------------------------------------------------- |
24 // These messages are from the embedder to the browser process | 24 // These messages are from the embedder to the browser process |
25 | 25 |
26 // A renderer sends this to the browser process when it wants to | 26 // A renderer sends this to the browser process when it wants to |
27 // create a browser plugin. The browser will create a guest renderer process | 27 // create a browser plugin. The browser will create a guest renderer process |
28 // if necessary. | 28 // if necessary. |
29 IPC_MESSAGE_ROUTED4(BrowserPluginHostMsg_NavigateFromEmbedder, | 29 IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_NavigateFromEmbedder, |
30 int /* plugin instance id*/, | 30 int /* plugin instance id*/, |
31 long long /* frame id */, | 31 long long /* frame id */, |
32 std::string /* src */, | 32 std::string /* src */) |
33 gfx::Size /* size */) | |
34 | 33 |
35 // Initially before we create a guest renderer, browser plugin containers | 34 // Initially before we create a guest renderer, browser plugin containers |
36 // have a placeholder called BrowserPlugin where each BrowserPlugin has a unique | 35 // have a placeholder called BrowserPlugin where each BrowserPlugin has a unique |
37 // ID. During pepper plugin initialization, the embedder page and the plugin | 36 // ID. During pepper plugin initialization, the embedder page and the plugin |
38 // negotiate an ID of type PP_Instance. The browser talks to the guest | 37 // negotiate an ID of type PP_Instance. The browser talks to the guest |
39 // RenderView via yet another identifier called the routing ID. The browser | 38 // RenderView via yet another identifier called the routing ID. The browser |
40 // has to keep track of how all these identifiers are associated with one | 39 // has to keep track of how all these identifiers are associated with one |
41 // another. | 40 // another. |
42 // For reference: | 41 // For reference: |
43 // 1. The embedder page sees the guest renderer as a plugin and so it talks | 42 // 1. The embedder page sees the guest renderer as a plugin and so it talks |
44 // to the guest via the PP_Instance identifer. | 43 // to the guest via the PP_Instance identifer. |
45 // 2. The guest renderer talks to the browser and vice versa via a routing ID. | 44 // 2. The guest renderer talks to the browser and vice versa via a routing ID. |
46 // 3. The BrowserPlugin ID uniquely identifies a browser plugin container | 45 // 3. The BrowserPlugin ID uniquely identifies a browser plugin container |
47 // instance within an embedder. | 46 // instance within an embedder. |
48 // This identifier exists prior to the existence of the routing ID and the | 47 // This identifier exists prior to the existence of the routing ID and the |
49 // PP_Instance identifier. | 48 // PP_Instance identifier. |
50 // The purpose of this message is to tell the browser to map a PP_Instance | 49 // The purpose of this message is to tell the browser to map a PP_Instance |
51 // identifier to BrowserPlugin identifier. | 50 // identifier to BrowserPlugin identifier. |
52 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_MapInstance, | 51 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_MapInstance, |
53 int /* container_id */, | 52 int /* container_id */, |
54 PP_Instance /* instance */) | 53 PP_Instance /* instance */) |
55 | 54 |
56 // ----------------------------------------------------------------------------- | 55 // ----------------------------------------------------------------------------- |
57 // These messages are from the browser process to the guest renderer. | 56 // These messages are from the embedder render process to the guest render |
| 57 // process. |
58 | 58 |
59 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompleteNavigation, | 59 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_GuestReady, |
60 int /* guest_routing_id */, | 60 PP_Instance /* instance */, |
61 PP_Instance /* instance */) | 61 int /* embedder_container_id */) |
62 | 62 |
63 // ----------------------------------------------------------------------------- | 63 // ----------------------------------------------------------------------------- |
64 // These messages are from the guest renderer to the browser process | 64 // These messages are from the guest renderer to the browser process |
65 | 65 |
66 IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_ConnectToChannel, | 66 IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_ConnectToChannel, |
67 IPC::ChannelHandle /* handle */) | 67 IPC::ChannelHandle /* handle */) |
68 | 68 |
69 // A embedder sends this message to the browser when it wants | 69 // A embedder sends this message to the browser when it wants |
70 // to resize a guest plugin container so that the guest is relaid out | 70 // to resize a guest plugin container so that the guest is relaid out |
71 // according to the new size. | 71 // according to the new size. |
72 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ResizeGuest, | 72 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ResizeGuest, |
73 int32, /* width */ | 73 int32, /* width */ |
74 int32 /* height */) | 74 int32 /* height */) |
75 | 75 |
76 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateFromGuest, | 76 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateFromGuest, |
77 PP_Instance /* instance */, | 77 PP_Instance /* instance */, |
78 std::string /* src */) | 78 std::string /* src */) |
79 | 79 |
80 // ----------------------------------------------------------------------------- | 80 // ----------------------------------------------------------------------------- |
81 // These messages are from the browser process to the embedder. | 81 // These messages are from the browser process to the embedder. |
82 | 82 |
83 // A guest instance is ready to be placed. | 83 // A guest instance is ready to be placed. |
84 IPC_MESSAGE_CONTROL3(BrowserPluginMsg_LoadGuest, | 84 IPC_MESSAGE_CONTROL3(BrowserPluginMsg_LoadGuest, |
85 int /* instance id */, | 85 int /* instance id */, |
86 int /* guest_process_id */, | 86 int /* guest_process_id */, |
87 IPC::ChannelHandle /* channel_handle */) | 87 IPC::ChannelHandle /* channel_handle */) |
88 | 88 |
OLD | NEW |