| Index: chrome/browser/render_view_host.cc
|
| diff --git a/chrome/browser/render_view_host.cc b/chrome/browser/render_view_host.cc
|
| index 6fa62b8f696ee0f5e3223a830b94f3d17764711d..3da3c03a42d1f2f0fc890885dd3a82f70c3022e4 100644
|
| --- a/chrome/browser/render_view_host.cc
|
| +++ b/chrome/browser/render_view_host.cc
|
| @@ -8,6 +8,7 @@
|
| #include <vector>
|
|
|
| #include "base/string_util.h"
|
| +#include "base/waitable_event.h"
|
| #include "chrome/app/result_codes.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/cross_site_request_manager.h"
|
| @@ -74,7 +75,7 @@ RenderViewHost* RenderViewHost::FromID(int render_process_id,
|
| RenderViewHost::RenderViewHost(SiteInstance* instance,
|
| RenderViewHostDelegate* delegate,
|
| int routing_id,
|
| - HANDLE modal_dialog_event)
|
| + base::WaitableEvent* modal_dialog_event)
|
| : RenderWidgetHost(instance->GetProcess(), routing_id),
|
| instance_(instance),
|
| enable_dom_ui_bindings_(false),
|
| @@ -93,9 +94,9 @@ RenderViewHost::RenderViewHost(SiteInstance* instance,
|
| DCHECK(instance_);
|
| DCHECK(delegate_);
|
| if (modal_dialog_event == NULL)
|
| - modal_dialog_event = CreateEvent(NULL, TRUE, FALSE, NULL);
|
| + modal_dialog_event = new base::WaitableEvent(true, false);
|
|
|
| - modal_dialog_event_.Set(modal_dialog_event);
|
| + modal_dialog_event_.reset(modal_dialog_event);
|
| #ifdef CHROME_PERSONALIZATION
|
| personalization_ = Personalization::CreateHostPersonalization(this);
|
| #endif
|
| @@ -134,7 +135,7 @@ bool RenderViewHost::CreateRenderView() {
|
| renderer_process_handle = GetCurrentProcess();
|
|
|
| BOOL result = DuplicateHandle(GetCurrentProcess(),
|
| - modal_dialog_event_.Get(),
|
| + modal_dialog_event_->handle(),
|
| renderer_process_handle,
|
| &modal_dialog_event,
|
| SYNCHRONIZE,
|
| @@ -498,7 +499,7 @@ void RenderViewHost::JavaScriptMessageBoxClosed(IPC::Message* reply_msg,
|
| }
|
|
|
| if (--modal_dialog_count_ == 0)
|
| - ResetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Reset();
|
| ViewHostMsg_RunJavaScriptMessage::WriteReplyParams(reply_msg, success, prompt);
|
| Send(reply_msg);
|
| }
|
| @@ -509,7 +510,7 @@ void RenderViewHost::ModalHTMLDialogClosed(IPC::Message* reply_msg,
|
| StartHangMonitorTimeout(TimeDelta::FromMilliseconds(kUnloadTimeoutMS));
|
|
|
| if (--modal_dialog_count_ == 0)
|
| - ResetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Reset();
|
|
|
| ViewHostMsg_ShowModalHTMLDialog::WriteReplyParams(reply_msg, json_retval);
|
| Send(reply_msg);
|
| @@ -742,7 +743,7 @@ void RenderViewHost::Shutdown() {
|
| // If we are being run modally (see RunModal), then we need to cleanup.
|
| if (run_modal_reply_msg_) {
|
| if (--modal_dialog_count_ == 0)
|
| - ResetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Reset();
|
| Send(run_modal_reply_msg_);
|
| run_modal_reply_msg_ = NULL;
|
| }
|
| @@ -753,7 +754,8 @@ void RenderViewHost::OnMsgCreateWindow(int route_id,
|
| HANDLE modal_dialog_event) {
|
| RenderViewHostDelegate::View* view = delegate_->GetViewDelegate();
|
| if (view)
|
| - view->CreateNewWindow(route_id, modal_dialog_event);
|
| + view->CreateNewWindow(route_id,
|
| + new base::WaitableEvent(modal_dialog_event));
|
| }
|
|
|
| void RenderViewHost::OnMsgCreateWidget(int route_id, bool activatable) {
|
| @@ -781,7 +783,7 @@ void RenderViewHost::OnMsgShowWidget(int route_id,
|
| void RenderViewHost::OnMsgRunModal(IPC::Message* reply_msg) {
|
| DCHECK(!run_modal_reply_msg_);
|
| if (modal_dialog_count_++ == 0)
|
| - SetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Reset();
|
| run_modal_reply_msg_ = reply_msg;
|
|
|
| // TODO(darin): Bug 1107929: Need to inform our delegate to show this view in
|
| @@ -1085,7 +1087,7 @@ void RenderViewHost::OnMsgRunJavaScriptMessage(
|
| IPC::Message* reply_msg) {
|
| StopHangMonitorTimeout();
|
| if (modal_dialog_count_++ == 0)
|
| - SetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Signal();
|
| bool did_suppress_message = false;
|
| delegate_->RunJavaScriptMessage(message, default_prompt, flags, reply_msg,
|
| &are_javascript_messages_suppressed_);
|
| @@ -1095,7 +1097,7 @@ void RenderViewHost::OnMsgRunBeforeUnloadConfirm(const std::wstring& message,
|
| IPC::Message* reply_msg) {
|
| StopHangMonitorTimeout();
|
| if (modal_dialog_count_++ == 0)
|
| - SetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Signal();
|
| delegate_->RunBeforeUnloadConfirm(message, reply_msg);
|
| }
|
|
|
| @@ -1104,7 +1106,7 @@ void RenderViewHost::OnMsgShowModalHTMLDialog(
|
| IPC::Message* reply_msg) {
|
| StopHangMonitorTimeout();
|
| if (modal_dialog_count_++ == 0)
|
| - SetEvent(modal_dialog_event_.Get());
|
| + modal_dialog_event_->Signal();
|
| delegate_->ShowModalHTMLDialog(url, width, height, json_arguments, reply_msg);
|
| }
|
|
|
|
|