Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
| index 8f8eae2322e939fa50b51b65de12912c07ebf1dd..7fc26553cc3dcc85d8a64d5ffaa3903a97a8e32e 100644 |
| --- a/content/renderer/render_view_impl.cc |
| +++ b/content/renderer/render_view_impl.cc |
| @@ -54,6 +54,7 @@ |
| #include "content/common/page_messages.h" |
| #include "content/common/render_message_filter.mojom.h" |
| #include "content/common/view_messages.h" |
| +#include "content/public/common/associated_interface_provider.h" |
| #include "content/public/common/bindings_policy.h" |
| #include "content/public/common/browser_side_navigation_policy.h" |
| #include "content/public/common/content_client.h" |
| @@ -1393,6 +1394,8 @@ void RenderViewImpl::OnForceRedraw(const ui::LatencyInfo& latency_info) { |
| // blink::WebViewClient ------------------------------------------------------ |
| +// TODO(csharrison): Migrate this method to WebFrameClient / RenderFrameImpl, as |
| +// it is now serviced by a mojo interface scoped to the opener frame. |
| WebView* RenderViewImpl::CreateView(WebLocalFrame* creator, |
| const WebURLRequest& request, |
| const WebWindowFeatures& features, |
| @@ -1401,7 +1404,6 @@ WebView* RenderViewImpl::CreateView(WebLocalFrame* creator, |
| bool suppress_opener) { |
| RenderFrameImpl* creator_frame = RenderFrameImpl::FromWebFrame(creator); |
| mojom::CreateNewWindowParamsPtr params = mojom::CreateNewWindowParams::New(); |
| - params->opener_render_frame_id = creator_frame->GetRoutingID(); |
| params->user_gesture = WebUserGestureIndicator::IsProcessingUserGesture(); |
| if (GetContentClient()->renderer()->AllowPopup()) |
| params->user_gesture = true; |
| @@ -1448,8 +1450,9 @@ WebView* RenderViewImpl::CreateView(WebLocalFrame* creator, |
| bool opened_by_user_gesture = params->user_gesture; |
| mojom::CreateNewWindowReplyPtr reply; |
| - RenderThreadImpl::current_render_message_filter()->CreateNewWindow( |
| - std::move(params), &reply); |
| + mojom::FrameHostIPCAssociatedPtr frame_host_ptr; |
| + creator_frame->GetRemoteAssociatedInterfaces()->GetInterface(&frame_host_ptr); |
|
ncarter (slow)
2017/04/21 20:42:13
Is this one mojo IPC or two?
|
| + frame_host_ptr->CreateNewWindow(std::move(params), &reply); |
| if (reply->route_id == MSG_ROUTING_NONE) |
| return nullptr; |