Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(972)

Side by Side Diff: content/common/browser_plugin_messages.h

Issue 10830072: Browser Plugin: New Implementation (Renderer Side) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Initialize content shell resources Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | content/common/content_message_generator.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 header, no traditional include guard.
6
7 #include <string>
8
9 #include "base/basictypes.h"
10 #include "base/process.h"
11 #include "content/common/content_export.h"
12 #include "content/public/common/common_param_traits.h"
13 #include "ipc/ipc_channel_handle.h"
14 #include "ipc/ipc_message_macros.h"
15 #include "ipc/ipc_message_utils.h"
16 #include "ui/gfx/rect.h"
17 #include "ui/gfx/size.h"
18 #include "webkit/glue/webcursor.h"
19
20 #undef IPC_MESSAGE_EXPORT
21 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
22
23 #define IPC_MESSAGE_START BrowserPluginMsgStart
24
25 // Browser plugin messages
26
27 // -----------------------------------------------------------------------------
28 // These messages are from the embedder to the browser process.
29
30 // Tells the guest to focus or defocus itself.
31 IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetFocus,
32 int /* instance_id */,
33 bool /* enable */)
34
35 // Message payload includes:
36 // 1. A blob that should be cast to WebInputEvent
37 // 2. An optional boolean value indicating if a RawKeyDown event is associated
38 // to a keyboard shortcut of the browser.
39 IPC_SYNC_MESSAGE_ROUTED0_2(BrowserPluginHostMsg_HandleInputEvent,
40 bool /* handled */,
41 WebCursor /* cursor */)
42
43 // An ACK to the guest process letting it know that the embedder has handled
44 // the previous frame and is ready for the next frame. If the guest sent the
45 // embedder a bitmap that does not match the size of the BrowserPlugin's
46 // container, the BrowserPlugin requests a new size as well.
47 IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_UpdateRect_ACK,
48 int /* instance_id */,
49 int /* message_id */,
50 gfx::Size /* repaint_view_size */)
51
52 // A BrowserPlugin sends this to the browser process when it wants to navigate
53 // to a given src URL. If a guest WebContents already exists, it will navigate
54 // that WebContents. If not, it will create the WebContents, associate it with
55 // the BrowserPlugin's browser-side BrowserPluginHost as a guest, and navigate
56 // it to the requested URL.
57 IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_NavigateOrCreateGuest,
58 int /* instance_id*/,
59 long long /* frame_id */,
60 std::string /* src */)
61
62 // When a BrowserPlugin has been removed from the embedder's DOM, it informs
63 // the browser process to cleanup the guest.
64 IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_PluginDestroyed,
65 int /* instance_id */)
66
67 // -----------------------------------------------------------------------------
68 // These messages are from the guest renderer to the browser process
69
70 IPC_STRUCT_BEGIN(BrowserPluginHostMsg_ResizeGuest_Params)
71 // A handle to the new buffer to use to transport damage to the
72 // embedder renderer process.
73 IPC_STRUCT_MEMBER(TransportDIB::Id, damage_buffer_id)
74 // The new width of the plugin container.
75 IPC_STRUCT_MEMBER(int, width)
76 // The new height of the plugin container.
77 IPC_STRUCT_MEMBER(int, height)
78 // Indicates whether the embedder is currently waiting on a ACK from the
79 // guest for a previous resize request.
80 IPC_STRUCT_MEMBER(bool, resize_pending)
81 // Indicates the scale factor of the embedder WebView.
82 IPC_STRUCT_MEMBER(float, scale_factor)
83 IPC_STRUCT_END()
84
85 // A embedder sends this message to the browser when it wants
86 // to resize a guest plugin container so that the guest is relaid out
87 // according to the new size.
88 IPC_SYNC_MESSAGE_ROUTED2_0(BrowserPluginHostMsg_ResizeGuest,
89 int /* instance_id*/,
90 BrowserPluginHostMsg_ResizeGuest_Params)
91
92 // -----------------------------------------------------------------------------
93 // These messages are from the browser process to the embedder.
94
95 // When the guest navigates, the browser process informs the embedder through
96 // the BrowserPluginMsg_DidNavigate message.
97 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_DidNavigate,
98 int /* instance_id */,
99 GURL /* url */)
100
101 // When the guest crashes, the browser process informs the embedder through this
102 // message.
103 IPC_MESSAGE_CONTROL1(BrowserPluginMsg_GuestCrashed,
104 int /* instance_id */)
105
106 IPC_STRUCT_BEGIN(BrowserPluginMsg_UpdateRect_Params)
107 // The position and size of the bitmap.
108 IPC_STRUCT_MEMBER(gfx::Rect, bitmap_rect)
109
110 // The scroll offset. Only one of these can be non-zero, and if they are
111 // both zero, then it means there is no scrolling and the scroll_rect is
112 // ignored.
113 IPC_STRUCT_MEMBER(int, dx)
114 IPC_STRUCT_MEMBER(int, dy)
115
116 // The rectangular region to scroll.
117 IPC_STRUCT_MEMBER(gfx::Rect, scroll_rect)
118
119 // The scroll offset of the render view.
120 IPC_STRUCT_MEMBER(gfx::Point, scroll_offset)
121
122 // The regions of the bitmap (in view coords) that contain updated pixels.
123 // In the case of scrolling, this includes the scroll damage rect.
124 IPC_STRUCT_MEMBER(std::vector<gfx::Rect>, copy_rects)
125
126 // The size of the RenderView when this message was generated. This is
127 // included so the host knows how large the view is from the perspective of
128 // the renderer process. This is necessary in case a resize operation is in
129 // progress. If auto-resize is enabled, this should update the corresponding
130 // view size.
131 IPC_STRUCT_MEMBER(gfx::Size, view_size)
132
133 // All the above coordinates are in DIP. This is the scale factor needed
134 // to convert them to pixels.
135 IPC_STRUCT_MEMBER(float, scale_factor)
136
137 // Is this UpdateRect an ACK to a resize request?
138 IPC_STRUCT_MEMBER(bool, is_resize_ack)
139 IPC_STRUCT_END()
140
141 // When the user tabs to the end of the tab stops of a guest, the browser
142 // process informs the embedder to tab out of the browser plugin.
143 IPC_MESSAGE_CONTROL2(BrowserPluginMsg_AdvanceFocus,
144 int /* instance_id */,
145 bool /* reverse */)
146
147 // The guest has damage it wants to convey to the embedder so that it can
148 // update its backing store.
149 IPC_MESSAGE_CONTROL3(BrowserPluginMsg_UpdateRect,
150 int /* instance_id */,
151 int /* message_id */,
152 BrowserPluginMsg_UpdateRect_Params)
OLDNEW
« no previous file with comments | « no previous file | content/common/content_message_generator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698