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

Unified Diff: chrome/browser/renderer_host/render_view_host.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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/render_view_host.cc
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc
index adfebaa6425eeb0af4dce123771efd37035c8cba..5bd9af56f74004c22e93602d6708ba33cb010105 100644
--- a/chrome/browser/renderer_host/render_view_host.cc
+++ b/chrome/browser/renderer_host/render_view_host.cc
@@ -7,6 +7,7 @@
#include <string>
#include <vector>
+#include "base/gfx/native_widget_types.h"
#include "base/string_util.h"
#include "base/waitable_event.h"
#include "chrome/app/result_codes.h"
@@ -129,7 +130,8 @@ bool RenderViewHost::CreateRenderView() {
renderer_initialized_ = true;
- HANDLE modal_dialog_event;
+#if defined(OS_WIN)
+ HANDLE modal_dialog_event_handle;
HANDLE renderer_process_handle = process()->process().handle();
if (renderer_process_handle == NULL)
renderer_process_handle = GetCurrentProcess();
@@ -137,14 +139,21 @@ bool RenderViewHost::CreateRenderView() {
BOOL result = DuplicateHandle(GetCurrentProcess(),
modal_dialog_event_->handle(),
renderer_process_handle,
- &modal_dialog_event,
+ &modal_dialog_event_handle,
SYNCHRONIZE,
FALSE,
0);
DCHECK(result) << "Couldn't duplicate the modal dialog handle for the renderer.";
+#endif
DCHECK(view());
- Send(new ViewMsg_New(view()->GetPluginHWND(),
+
+ ModalDialogEvent modal_dialog_event;
+#if defined(OS_WIN)
+ modal_dialog_event.event = modal_dialog_event_handle;
+#endif
+
+ Send(new ViewMsg_New(gfx::IdFromNativeView(view()->GetPluginHWND()),
modal_dialog_event,
delegate_->GetWebkitPrefs(),
routing_id()));
@@ -751,11 +760,17 @@ void RenderViewHost::Shutdown() {
}
void RenderViewHost::OnMsgCreateWindow(int route_id,
- HANDLE modal_dialog_event) {
+ ModalDialogEvent modal_dialog_event) {
RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
+ base::WaitableEvent* waitable_event = new base::WaitableEvent(
+#if defined(OS_WIN)
+ modal_dialog_event.event);
+#else
+ true, false);
+#endif
+
if (view)
- view->CreateNewWindow(route_id,
- new base::WaitableEvent(modal_dialog_event));
+ view->CreateNewWindow(route_id, waitable_event);
}
void RenderViewHost::OnMsgCreateWidget(int route_id, bool activatable) {
« no previous file with comments | « chrome/browser/renderer_host/render_view_host.h ('k') | chrome/browser/renderer_host/render_widget_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698