| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 7b83e8b62c0fb4cb2f9f959088f59562a40c5109..94b4fa95e7cc06a2ac12c4f5ae9e020a5f2e2744 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -2364,13 +2364,20 @@ void RenderViewImpl::didBlur() {
|
| // created RenderView (i.e., as a blocked popup or as a new tab).
|
| //
|
| void RenderViewImpl::show(WebNavigationPolicy policy) {
|
| - DCHECK(!did_show_) << "received extraneous Show call";
|
| - DCHECK(opener_id_ != MSG_ROUTING_NONE);
|
| -
|
| - if (did_show_)
|
| + if (did_show_) {
|
| +#if defined(OS_ANDROID)
|
| + // When supports_multiple_windows is disabled, popups are reusing
|
| + // the same view. In some scenarios, this makes WebKit to call show() twice.
|
| + if (!webkit_preferences_.supports_multiple_windows)
|
| + return;
|
| +#endif
|
| + NOTREACHED() << "received extraneous Show call";
|
| return;
|
| + }
|
| did_show_ = true;
|
|
|
| + DCHECK(opener_id_ != MSG_ROUTING_NONE);
|
| +
|
| if (GetContentClient()->renderer()->AllowPopup(creator_url_))
|
| opened_by_user_gesture_ = true;
|
|
|
|
|