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 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 2108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2119 DCHECK(!frame_ || frame_ == frame); | 2119 DCHECK(!frame_ || frame_ == frame); |
2120 | 2120 |
2121 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, FrameWillClose()); | 2121 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, FrameWillClose()); |
2122 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), | 2122 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(), |
2123 FrameWillClose(frame)); | 2123 FrameWillClose(frame)); |
2124 } | 2124 } |
2125 | 2125 |
2126 void RenderFrameImpl::didChangeName(blink::WebLocalFrame* frame, | 2126 void RenderFrameImpl::didChangeName(blink::WebLocalFrame* frame, |
2127 const blink::WebString& name) { | 2127 const blink::WebString& name) { |
2128 DCHECK(!frame_ || frame_ == frame); | 2128 DCHECK(!frame_ || frame_ == frame); |
2129 if (!render_view_->renderer_preferences_.report_frame_name_changes) | |
2130 return; | |
2131 | 2129 |
2132 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, DidChangeName(name)); | 2130 // TODO(alexmos): According to https://crbug.com/169110, sending window.name |
| 2131 // updates may have performance implications for benchmarks like SunSpider. |
| 2132 // For now, send these updates only for --site-per-process, which needs to |
| 2133 // replicate frame names to frame proxies, and when |
| 2134 // |report_frame_name_changes| is set (used by <webview>). If needed, this |
| 2135 // can be optimized further by only sending the update if there are any |
| 2136 // remote frames in the frame tree, or delaying and batching up IPCs if |
| 2137 // updates are happening too frequently. |
| 2138 bool is_site_per_process = base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 2139 switches::kSitePerProcess); |
| 2140 if (is_site_per_process || |
| 2141 render_view_->renderer_preferences_.report_frame_name_changes) { |
| 2142 Send(new FrameHostMsg_DidChangeName(routing_id_, base::UTF16ToUTF8(name))); |
| 2143 } |
2133 } | 2144 } |
2134 | 2145 |
2135 void RenderFrameImpl::didChangeSandboxFlags(blink::WebFrame* child_frame, | 2146 void RenderFrameImpl::didChangeSandboxFlags(blink::WebFrame* child_frame, |
2136 blink::WebSandboxFlags flags) { | 2147 blink::WebSandboxFlags flags) { |
2137 int frame_routing_id = MSG_ROUTING_NONE; | 2148 int frame_routing_id = MSG_ROUTING_NONE; |
2138 if (child_frame->isWebRemoteFrame()) { | 2149 if (child_frame->isWebRemoteFrame()) { |
2139 frame_routing_id = | 2150 frame_routing_id = |
2140 RenderFrameProxy::FromWebFrame(child_frame)->routing_id(); | 2151 RenderFrameProxy::FromWebFrame(child_frame)->routing_id(); |
2141 } else { | 2152 } else { |
2142 frame_routing_id = | 2153 frame_routing_id = |
(...skipping 2356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4499 | 4510 |
4500 #if defined(ENABLE_BROWSER_CDMS) | 4511 #if defined(ENABLE_BROWSER_CDMS) |
4501 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 4512 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
4502 if (!cdm_manager_) | 4513 if (!cdm_manager_) |
4503 cdm_manager_ = new RendererCdmManager(this); | 4514 cdm_manager_ = new RendererCdmManager(this); |
4504 return cdm_manager_; | 4515 return cdm_manager_; |
4505 } | 4516 } |
4506 #endif // defined(ENABLE_BROWSER_CDMS) | 4517 #endif // defined(ENABLE_BROWSER_CDMS) |
4507 | 4518 |
4508 } // namespace content | 4519 } // namespace content |
OLD | NEW |