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

Side by Side Diff: chrome/browser/renderer_host/render_widget_helper.cc

Issue 18768: POSIX: gfx::NativeViewId and CrossProcessEvent (Closed)
Patch Set: Addressing Brett's comments Created 11 years, 11 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
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #include "chrome/browser/renderer_host/render_widget_helper.h" 5 #include "chrome/browser/renderer_host/render_widget_helper.h"
6 6
7 #include "base/thread.h" 7 #include "base/thread.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/renderer_host/render_process_host.h" 9 #include "chrome/browser/renderer_host/render_process_host.h"
10 #include "chrome/browser/renderer_host/resource_dispatcher_host.h" 10 #include "chrome/browser/renderer_host/resource_dispatcher_host.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 void RenderWidgetHelper::OnCrossSiteClosePageACK( 182 void RenderWidgetHelper::OnCrossSiteClosePageACK(
183 ResourceDispatcherHost* dispatcher, 183 ResourceDispatcherHost* dispatcher,
184 int new_render_process_host_id, 184 int new_render_process_host_id,
185 int new_request_id) { 185 int new_request_id) {
186 dispatcher->OnClosePageACK(new_render_process_host_id, new_request_id); 186 dispatcher->OnClosePageACK(new_render_process_host_id, new_request_id);
187 } 187 }
188 188
189 void RenderWidgetHelper::CreateNewWindow(int opener_id, 189 void RenderWidgetHelper::CreateNewWindow(int opener_id,
190 bool user_gesture, 190 bool user_gesture,
191 base::ProcessHandle render_process, 191 base::ProcessHandle render_process,
192 int* route_id 192 int* route_id,
193 #if defined(OS_WIN) 193 ModalDialogEvent* modal_dialog_event) {
194 , HANDLE* modal_dialog_event) {
195 #else
196 ) {
197 #endif
198 if (!user_gesture && block_popups_) { 194 if (!user_gesture && block_popups_) {
199 *route_id = MSG_ROUTING_NONE; 195 *route_id = MSG_ROUTING_NONE;
200 *modal_dialog_event = NULL; 196 #if defined(OS_WIN)
197 modal_dialog_event->event = NULL;
198 #endif
201 return; 199 return;
202 } 200 }
203 201
204 *route_id = GetNextRoutingID(); 202 *route_id = GetNextRoutingID();
205 203
204 ModalDialogEvent modal_dialog_event_internal;
206 #if defined(OS_WIN) 205 #if defined(OS_WIN)
207 HANDLE event = CreateEvent(NULL, TRUE, FALSE, NULL); 206 HANDLE event = CreateEvent(NULL, TRUE, FALSE, NULL);
207 modal_dialog_event_internal.event = event;
208
208 BOOL result = DuplicateHandle(GetCurrentProcess(), 209 BOOL result = DuplicateHandle(GetCurrentProcess(),
209 event, 210 event,
210 render_process, 211 render_process,
211 modal_dialog_event, 212 &modal_dialog_event->event,
212 SYNCHRONIZE, 213 SYNCHRONIZE,
213 FALSE, 214 FALSE,
214 0); 215 0);
215 DCHECK(result) << "Couldn't duplicate modal dialog event for the renderer."; 216 DCHECK(result) << "Couldn't duplicate modal dialog event for the renderer.";
217 #endif
216 218
217 // The easiest way to reach RenderViewHost is just to send a routed message. 219 // The easiest way to reach RenderViewHost is just to send a routed message.
218 ViewHostMsg_CreateWindowWithRoute msg(opener_id, *route_id, event); 220 ViewHostMsg_CreateWindowWithRoute msg(opener_id, *route_id,
219 #else 221 modal_dialog_event_internal);
220 // TODO(port) figure out how the modal dialog event should work.
221 ViewHostMsg_CreateWindowWithRoute msg(opener_id, *route_id);
222 #endif
223 222
224 ui_loop_->PostTask(FROM_HERE, NewRunnableMethod( 223 ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
225 this, &RenderWidgetHelper::OnSimulateReceivedMessage, msg)); 224 this, &RenderWidgetHelper::OnSimulateReceivedMessage, msg));
226 } 225 }
227 226
228 void RenderWidgetHelper::CreateNewWidget(int opener_id, 227 void RenderWidgetHelper::CreateNewWidget(int opener_id,
229 bool activatable, 228 bool activatable,
230 int* route_id) { 229 int* route_id) {
231 *route_id = GetNextRoutingID(); 230 *route_id = GetNextRoutingID();
232 ViewHostMsg_CreateWidgetWithRoute msg(opener_id, *route_id, activatable); 231 ViewHostMsg_CreateWidgetWithRoute msg(opener_id, *route_id, activatable);
233 ui_loop_->PostTask(FROM_HERE, NewRunnableMethod( 232 ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
234 this, &RenderWidgetHelper::OnSimulateReceivedMessage, msg)); 233 this, &RenderWidgetHelper::OnSimulateReceivedMessage, msg));
235 } 234 }
236 235
237 void RenderWidgetHelper::OnSimulateReceivedMessage( 236 void RenderWidgetHelper::OnSimulateReceivedMessage(
238 const IPC::Message& message) { 237 const IPC::Message& message) {
239 RenderProcessHost* host = RenderProcessHost::FromID(render_process_id_); 238 RenderProcessHost* host = RenderProcessHost::FromID(render_process_id_);
240 if (host) 239 if (host)
241 host->OnMessageReceived(message); 240 host->OnMessageReceived(message);
242 } 241 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_helper.h ('k') | chrome/browser/renderer_host/render_widget_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698