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

Side by Side Diff: content/renderer/render_frame_impl.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_impl.h ('k') | content/renderer/render_frame_proxy.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 // Create the RenderFrame and WebLocalFrame, linking the two. 970 // Create the RenderFrame and WebLocalFrame, linking the two.
971 render_frame = 971 render_frame =
972 RenderFrameImpl::Create(parent_proxy->render_view(), routing_id); 972 RenderFrameImpl::Create(parent_proxy->render_view(), routing_id);
973 render_frame->InitializeBlameContext(FromRoutingID(parent_routing_id)); 973 render_frame->InitializeBlameContext(FromRoutingID(parent_routing_id));
974 web_frame = parent_web_frame->createLocalChild( 974 web_frame = parent_web_frame->createLocalChild(
975 replicated_state.scope, WebString::fromUTF8(replicated_state.name), 975 replicated_state.scope, WebString::fromUTF8(replicated_state.name),
976 WebString::fromUTF8(replicated_state.unique_name), 976 WebString::fromUTF8(replicated_state.unique_name),
977 replicated_state.sandbox_flags, render_frame, 977 replicated_state.sandbox_flags, render_frame,
978 previous_sibling_web_frame, 978 previous_sibling_web_frame,
979 frame_owner_properties.ToWebFrameOwnerProperties(), 979 frame_owner_properties.ToWebFrameOwnerProperties(),
980 ResolveOpener(opener_routing_id, nullptr)); 980 ResolveOpener(opener_routing_id));
981 981
982 // The RenderFrame is created and inserted into the frame tree in the above 982 // The RenderFrame is created and inserted into the frame tree in the above
983 // call to createLocalChild. 983 // call to createLocalChild.
984 render_frame->in_frame_tree_ = true; 984 render_frame->in_frame_tree_ = true;
985 } else { 985 } else {
986 RenderFrameProxy* proxy = 986 RenderFrameProxy* proxy =
987 RenderFrameProxy::FromRoutingID(proxy_routing_id); 987 RenderFrameProxy::FromRoutingID(proxy_routing_id);
988 // The remote frame could've been detached while the remote-to-local 988 // The remote frame could've been detached while the remote-to-local
989 // navigation was being initiated in the browser process. Drop the 989 // navigation was being initiated in the browser process. Drop the
990 // navigation and don't create the frame in that case. See 990 // navigation and don't create the frame in that case. See
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 } 1031 }
1032 1032
1033 // static 1033 // static
1034 void RenderFrameImpl::InstallCreateHook( 1034 void RenderFrameImpl::InstallCreateHook(
1035 CreateRenderFrameImplFunction create_render_frame_impl) { 1035 CreateRenderFrameImplFunction create_render_frame_impl) {
1036 CHECK(!g_create_render_frame_impl); 1036 CHECK(!g_create_render_frame_impl);
1037 g_create_render_frame_impl = create_render_frame_impl; 1037 g_create_render_frame_impl = create_render_frame_impl;
1038 } 1038 }
1039 1039
1040 // static 1040 // static
1041 blink::WebFrame* RenderFrameImpl::ResolveOpener(int opener_frame_routing_id, 1041 blink::WebFrame* RenderFrameImpl::ResolveOpener(int opener_frame_routing_id) {
1042 int* opener_view_routing_id) {
1043 if (opener_view_routing_id)
1044 *opener_view_routing_id = MSG_ROUTING_NONE;
1045
1046 if (opener_frame_routing_id == MSG_ROUTING_NONE) 1042 if (opener_frame_routing_id == MSG_ROUTING_NONE)
1047 return nullptr; 1043 return nullptr;
1048 1044
1049 // Opener routing ID could refer to either a RenderFrameProxy or a 1045 // Opener routing ID could refer to either a RenderFrameProxy or a
1050 // RenderFrame, so need to check both. 1046 // RenderFrame, so need to check both.
1051 RenderFrameProxy* opener_proxy = 1047 RenderFrameProxy* opener_proxy =
1052 RenderFrameProxy::FromRoutingID(opener_frame_routing_id); 1048 RenderFrameProxy::FromRoutingID(opener_frame_routing_id);
1053 if (opener_proxy) { 1049 if (opener_proxy)
1054 if (opener_view_routing_id)
1055 *opener_view_routing_id = opener_proxy->render_view()->GetRoutingID();
1056
1057 return opener_proxy->web_frame(); 1050 return opener_proxy->web_frame();
1058 }
1059 1051
1060 RenderFrameImpl* opener_frame = 1052 RenderFrameImpl* opener_frame =
1061 RenderFrameImpl::FromRoutingID(opener_frame_routing_id); 1053 RenderFrameImpl::FromRoutingID(opener_frame_routing_id);
1062 if (opener_frame) { 1054 if (opener_frame)
1063 if (opener_view_routing_id)
1064 *opener_view_routing_id = opener_frame->render_view()->GetRoutingID();
1065 return opener_frame->GetWebFrame(); 1055 return opener_frame->GetWebFrame();
1066 }
1067 1056
1068 return nullptr; 1057 return nullptr;
1069 } 1058 }
1070 1059
1071 blink::WebURL RenderFrameImpl::overrideFlashEmbedWithHTML( 1060 blink::WebURL RenderFrameImpl::overrideFlashEmbedWithHTML(
1072 const blink::WebURL& url) { 1061 const blink::WebURL& url) {
1073 return GetContentClient()->renderer()->OverrideFlashEmbedWithHTML(url); 1062 return GetContentClient()->renderer()->OverrideFlashEmbedWithHTML(url);
1074 } 1063 }
1075 1064
1076 // RenderFrameImpl ---------------------------------------------------------- 1065 // RenderFrameImpl ----------------------------------------------------------
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2182 } 2171 }
2183 2172
2184 void RenderFrameImpl::OnSnapshotAccessibilityTree(int callback_id) { 2173 void RenderFrameImpl::OnSnapshotAccessibilityTree(int callback_id) {
2185 AXContentTreeUpdate response; 2174 AXContentTreeUpdate response;
2186 RenderAccessibilityImpl::SnapshotAccessibilityTree(this, &response); 2175 RenderAccessibilityImpl::SnapshotAccessibilityTree(this, &response);
2187 Send(new AccessibilityHostMsg_SnapshotResponse( 2176 Send(new AccessibilityHostMsg_SnapshotResponse(
2188 routing_id_, callback_id, response)); 2177 routing_id_, callback_id, response));
2189 } 2178 }
2190 2179
2191 void RenderFrameImpl::OnUpdateOpener(int opener_routing_id) { 2180 void RenderFrameImpl::OnUpdateOpener(int opener_routing_id) {
2192 WebFrame* opener = ResolveOpener(opener_routing_id, nullptr); 2181 WebFrame* opener = ResolveOpener(opener_routing_id);
2193 frame_->setOpener(opener); 2182 frame_->setOpener(opener);
2194 } 2183 }
2195 2184
2196 void RenderFrameImpl::OnDidUpdateSandboxFlags(blink::WebSandboxFlags flags) { 2185 void RenderFrameImpl::OnDidUpdateSandboxFlags(blink::WebSandboxFlags flags) {
2197 frame_->setFrameOwnerSandboxFlags(flags); 2186 frame_->setFrameOwnerSandboxFlags(flags);
2198 } 2187 }
2199 2188
2200 void RenderFrameImpl::OnSetFrameOwnerProperties( 2189 void RenderFrameImpl::OnSetFrameOwnerProperties(
2201 const FrameOwnerProperties& frame_owner_properties) { 2190 const FrameOwnerProperties& frame_owner_properties) {
2202 DCHECK(frame_); 2191 DCHECK(frame_);
(...skipping 4429 matching lines...) Expand 10 before | Expand all | Expand 10 after
6632 // event target. Potentially a Pepper plugin will receive the event. 6621 // event target. Potentially a Pepper plugin will receive the event.
6633 // In order to tell whether a plugin gets the last mouse event and which it 6622 // In order to tell whether a plugin gets the last mouse event and which it
6634 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6623 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6635 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6624 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6636 // |pepper_last_mouse_event_target_|. 6625 // |pepper_last_mouse_event_target_|.
6637 pepper_last_mouse_event_target_ = nullptr; 6626 pepper_last_mouse_event_target_ = nullptr;
6638 #endif 6627 #endif
6639 } 6628 }
6640 6629
6641 } // namespace content 6630 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_frame_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698