| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |