| Index: content/renderer/render_view_impl.cc
|
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
|
| index 82567ede99a6d08a95f396901c3dbb99530086ee..ecbef86666e867e9c7c5a819ef3b384287527cc4 100644
|
| --- a/content/renderer/render_view_impl.cc
|
| +++ b/content/renderer/render_view_impl.cc
|
| @@ -555,6 +555,8 @@ static WindowOpenDisposition NavigationPolicyToDisposition(
|
| return NEW_WINDOW;
|
| case blink::WebNavigationPolicyNewPopup:
|
| return NEW_POPUP;
|
| + case blink::WebNavigationPolicyPresentationWindow:
|
| + return PRESENTATION_WINDOW;
|
| default:
|
| NOTREACHED() << "Unexpected WebNavigationPolicy";
|
| return IGNORE_ACTION;
|
| @@ -2236,6 +2238,7 @@ WebView* RenderViewImpl::createView(
|
| params.opener_security_origin = security_url;
|
| params.opener_suppressed = suppress_opener;
|
| params.disposition = NavigationPolicyToDisposition(policy);
|
| +
|
| if (!request.isNull()) {
|
| params.target_url = request.url();
|
| params.referrer = GetReferrerFromRequest(creator, request);
|
| @@ -2882,16 +2885,19 @@ void RenderViewImpl::show(WebNavigationPolicy policy) {
|
| // We exempt background tabs for compat with older versions of Chrome.
|
| // TODO(darin): This seems bogus. These should have a user gesture, so
|
| // we probably don't need this check.
|
| - if (policy != blink::WebNavigationPolicyNewBackgroundTab)
|
| + if (policy != blink::WebNavigationPolicyNewBackgroundTab ||
|
| + policy != blink::WebNavigationPolicyPresentationWindow)
|
| policy = blink::WebNavigationPolicyNewPopup;
|
| }
|
|
|
| // NOTE: initial_pos_ may still have its default values at this point, but
|
| // that's okay. It'll be ignored if disposition is not NEW_POPUP, or the
|
| // browser process will impose a default position otherwise.
|
| +
|
| Send(new ViewHostMsg_ShowView(opener_id_, routing_id_,
|
| NavigationPolicyToDisposition(policy), initial_pos_,
|
| opened_by_user_gesture_));
|
| +
|
| SetPendingWindowRect(initial_pos_);
|
| }
|
|
|
|
|