Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: content/renderer/render_frame_proxy.cc

Issue 2499053003: Simplify RenderFrameImpl::ResolveOpener() (Closed)
Patch Set: Rebase. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/render_frame_proxy.h ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_proxy.h" 5 #include "content/renderer/render_frame_proxy.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <map> 8 #include <map>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 : RenderFrameProxy::FromWebFrame( 75 : RenderFrameProxy::FromWebFrame(
76 frame_to_replace->GetWebFrame()->parent()) 76 frame_to_replace->GetWebFrame()->parent())
77 ->render_widget(); 77 ->render_widget();
78 proxy->Init(web_frame, frame_to_replace->render_view(), widget); 78 proxy->Init(web_frame, frame_to_replace->render_view(), widget);
79 return proxy.release(); 79 return proxy.release();
80 } 80 }
81 81
82 RenderFrameProxy* RenderFrameProxy::CreateFrameProxy( 82 RenderFrameProxy* RenderFrameProxy::CreateFrameProxy(
83 int routing_id, 83 int routing_id,
84 int render_view_routing_id, 84 int render_view_routing_id,
85 int opener_routing_id, 85 blink::WebFrame* opener,
86 int parent_routing_id, 86 int parent_routing_id,
87 const FrameReplicationState& replicated_state) { 87 const FrameReplicationState& replicated_state) {
88 RenderFrameProxy* parent = nullptr; 88 RenderFrameProxy* parent = nullptr;
89 if (parent_routing_id != MSG_ROUTING_NONE) { 89 if (parent_routing_id != MSG_ROUTING_NONE) {
90 parent = RenderFrameProxy::FromRoutingID(parent_routing_id); 90 parent = RenderFrameProxy::FromRoutingID(parent_routing_id);
91 // It is possible that the parent proxy has been detached in this renderer 91 // It is possible that the parent proxy has been detached in this renderer
92 // process, just as the parent's real frame was creating this child frame. 92 // process, just as the parent's real frame was creating this child frame.
93 // In this case, do not create the proxy. See https://crbug.com/568670. 93 // In this case, do not create the proxy. See https://crbug.com/568670.
94 if (!parent) 94 if (!parent)
95 return nullptr; 95 return nullptr;
96 } 96 }
97 97
98 blink::WebFrame* opener =
99 RenderFrameImpl::ResolveOpener(opener_routing_id, nullptr);
100
101 std::unique_ptr<RenderFrameProxy> proxy( 98 std::unique_ptr<RenderFrameProxy> proxy(
102 new RenderFrameProxy(routing_id, MSG_ROUTING_NONE)); 99 new RenderFrameProxy(routing_id, MSG_ROUTING_NONE));
103 RenderViewImpl* render_view = nullptr; 100 RenderViewImpl* render_view = nullptr;
104 RenderWidget* render_widget = nullptr; 101 RenderWidget* render_widget = nullptr;
105 blink::WebRemoteFrame* web_frame = nullptr; 102 blink::WebRemoteFrame* web_frame = nullptr;
106 103
107 if (!parent) { 104 if (!parent) {
108 // Create a top level WebRemoteFrame. 105 // Create a top level WebRemoteFrame.
109 render_view = RenderViewImpl::FromRoutingID(render_view_routing_id); 106 render_view = RenderViewImpl::FromRoutingID(render_view_routing_id);
110 web_frame = blink::WebRemoteFrame::create(replicated_state.scope, 107 web_frame = blink::WebRemoteFrame::create(replicated_state.scope,
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 317
321 if (!compositing_helper_.get()) { 318 if (!compositing_helper_.get()) {
322 compositing_helper_ = 319 compositing_helper_ =
323 ChildFrameCompositingHelper::CreateForRenderFrameProxy(this); 320 ChildFrameCompositingHelper::CreateForRenderFrameProxy(this);
324 } 321 }
325 compositing_helper_->OnSetSurface(surface_id, frame_size, scale_factor, 322 compositing_helper_->OnSetSurface(surface_id, frame_size, scale_factor,
326 sequence); 323 sequence);
327 } 324 }
328 325
329 void RenderFrameProxy::OnUpdateOpener(int opener_routing_id) { 326 void RenderFrameProxy::OnUpdateOpener(int opener_routing_id) {
330 blink::WebFrame* opener = 327 blink::WebFrame* opener = RenderFrameImpl::ResolveOpener(opener_routing_id);
331 RenderFrameImpl::ResolveOpener(opener_routing_id, nullptr);
332 web_frame_->setOpener(opener); 328 web_frame_->setOpener(opener);
333 } 329 }
334 330
335 void RenderFrameProxy::OnDidStartLoading() { 331 void RenderFrameProxy::OnDidStartLoading() {
336 web_frame_->didStartLoading(); 332 web_frame_->didStartLoading();
337 } 333 }
338 334
339 void RenderFrameProxy::OnDidStopLoading() { 335 void RenderFrameProxy::OnDidStopLoading() {
340 web_frame_->didStopLoading(); 336 web_frame_->didStopLoading();
341 } 337 }
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 blink::WebLocalFrame* source) { 503 blink::WebLocalFrame* source) {
508 int source_routing_id = RenderFrameImpl::FromWebFrame(source)->GetRoutingID(); 504 int source_routing_id = RenderFrameImpl::FromWebFrame(source)->GetRoutingID();
509 Send(new FrameHostMsg_AdvanceFocus(routing_id_, type, source_routing_id)); 505 Send(new FrameHostMsg_AdvanceFocus(routing_id_, type, source_routing_id));
510 } 506 }
511 507
512 void RenderFrameProxy::frameFocused() { 508 void RenderFrameProxy::frameFocused() {
513 Send(new FrameHostMsg_FrameFocused(routing_id_)); 509 Send(new FrameHostMsg_FrameFocused(routing_id_));
514 } 510 }
515 511
516 } // namespace 512 } // namespace
OLDNEW
« no previous file with comments | « content/renderer/render_frame_proxy.h ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698