| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 42bca241cd283508d1d2214bad08c14b153ad69c..a5666cf85b96a7fce999b5b668610e4eb8411700 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -1580,8 +1580,6 @@ bool RenderViewImpl::SendAndRunNestedMessageLoop(IPC::SyncMessage* message) {
|
| // equivalent of WebView::willEnterModalLoop. In the case of showModalDialog
|
| // it is particularly important that we do not call willEnterModalLoop as
|
| // that would defer resource loads for the dialog itself.
|
| - // TODO(jamesr): Now that we no longer support showModalDialog, see if we can
|
| - // simplify this logic.
|
| if (RenderThreadImpl::current()) // Will be NULL during unit tests.
|
| RenderThreadImpl::current()->DoNotNotifyWebKitOfModalLoop();
|
|
|
| @@ -2263,6 +2261,28 @@ void RenderViewImpl::show(WebNavigationPolicy policy) {
|
| SetPendingWindowRect(initial_pos_);
|
| }
|
|
|
| +void RenderViewImpl::runModal() {
|
| + DCHECK(did_show_) << "should already have shown the view";
|
| +
|
| + // Don't allow further dialogs if we are waiting to swap out, since the
|
| + // PageGroupLoadDeferrer in our stack prevents it.
|
| + if (suppress_dialogs_until_swap_out_)
|
| + return;
|
| +
|
| + // We must keep WebKit's shared timer running in this case in order to allow
|
| + // showModalDialog to function properly.
|
| + //
|
| + // TODO(darin): WebKit should really be smarter about suppressing events and
|
| + // timers so that we do not need to manage the shared timer in such a heavy
|
| + // handed manner.
|
| + //
|
| + if (RenderThreadImpl::current()) // Will be NULL during unit tests.
|
| + RenderThreadImpl::current()->DoNotSuspendWebKitSharedTimer();
|
| +
|
| + SendAndRunNestedMessageLoop(new ViewHostMsg_RunModal(
|
| + routing_id_, opener_id_));
|
| +}
|
| +
|
| bool RenderViewImpl::enterFullScreen() {
|
| Send(new ViewHostMsg_ToggleFullscreen(routing_id_, true));
|
| return true;
|
|
|