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/browser/frame_host/render_frame_host_impl.h" | 5 #include "content/browser/frame_host/render_frame_host_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 1832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1843 std::string old_name = frame_tree_node()->frame_name(); | 1843 std::string old_name = frame_tree_node()->frame_name(); |
1844 frame_tree_node()->SetFrameName(name, unique_name); | 1844 frame_tree_node()->SetFrameName(name, unique_name); |
1845 if (old_name.empty() && !name.empty()) | 1845 if (old_name.empty() && !name.empty()) |
1846 frame_tree_node_->render_manager()->CreateProxiesForNewNamedFrame(); | 1846 frame_tree_node_->render_manager()->CreateProxiesForNewNamedFrame(); |
1847 delegate_->DidChangeName(this, name); | 1847 delegate_->DidChangeName(this, name); |
1848 } | 1848 } |
1849 | 1849 |
1850 void RenderFrameHostImpl::OnDidSetFeaturePolicyHeader( | 1850 void RenderFrameHostImpl::OnDidSetFeaturePolicyHeader( |
1851 const ParsedFeaturePolicyHeader& parsed_header) { | 1851 const ParsedFeaturePolicyHeader& parsed_header) { |
1852 frame_tree_node()->SetFeaturePolicyHeader(parsed_header); | 1852 frame_tree_node()->SetFeaturePolicyHeader(parsed_header); |
| 1853 ResetFeaturePolicy(); |
| 1854 feature_policy_->SetHeaderPolicy(parsed_header); |
1853 } | 1855 } |
1854 | 1856 |
1855 void RenderFrameHostImpl::OnDidAddContentSecurityPolicy( | 1857 void RenderFrameHostImpl::OnDidAddContentSecurityPolicy( |
1856 const ContentSecurityPolicyHeader& header) { | 1858 const ContentSecurityPolicyHeader& header) { |
1857 frame_tree_node()->AddContentSecurityPolicy(header); | 1859 frame_tree_node()->AddContentSecurityPolicy(header); |
1858 } | 1860 } |
1859 | 1861 |
1860 void RenderFrameHostImpl::OnEnforceInsecureRequestPolicy( | 1862 void RenderFrameHostImpl::OnEnforceInsecureRequestPolicy( |
1861 blink::WebInsecureRequestPolicy policy) { | 1863 blink::WebInsecureRequestPolicy policy) { |
1862 frame_tree_node()->SetInsecureRequestPolicy(policy); | 1864 frame_tree_node()->SetInsecureRequestPolicy(policy); |
(...skipping 1521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3384 auto it = std::find_if( | 3386 auto it = std::find_if( |
3385 web_bluetooth_services_.begin(), web_bluetooth_services_.end(), | 3387 web_bluetooth_services_.begin(), web_bluetooth_services_.end(), |
3386 [web_bluetooth_service]( | 3388 [web_bluetooth_service]( |
3387 const std::unique_ptr<WebBluetoothServiceImpl>& service) { | 3389 const std::unique_ptr<WebBluetoothServiceImpl>& service) { |
3388 return web_bluetooth_service == service.get(); | 3390 return web_bluetooth_service == service.get(); |
3389 }); | 3391 }); |
3390 DCHECK(it != web_bluetooth_services_.end()); | 3392 DCHECK(it != web_bluetooth_services_.end()); |
3391 web_bluetooth_services_.erase(it); | 3393 web_bluetooth_services_.erase(it); |
3392 } | 3394 } |
3393 | 3395 |
| 3396 void RenderFrameHostImpl::ResetFeaturePolicy() { |
| 3397 RenderFrameHostImpl* parent_frame_host = GetParent(); |
| 3398 const FeaturePolicy* parent_policy = |
| 3399 parent_frame_host ? parent_frame_host->get_feature_policy() : nullptr; |
| 3400 feature_policy_ = FeaturePolicy::CreateFromParentPolicy( |
| 3401 parent_policy, last_committed_origin_); |
| 3402 } |
| 3403 |
3394 void RenderFrameHostImpl::Create( | 3404 void RenderFrameHostImpl::Create( |
3395 const service_manager::Identity& remote_identity, | 3405 const service_manager::Identity& remote_identity, |
3396 media::mojom::InterfaceFactoryRequest request) { | 3406 media::mojom::InterfaceFactoryRequest request) { |
3397 DCHECK(!media_interface_proxy_); | 3407 DCHECK(!media_interface_proxy_); |
3398 media_interface_proxy_.reset(new MediaInterfaceProxy( | 3408 media_interface_proxy_.reset(new MediaInterfaceProxy( |
3399 this, std::move(request), | 3409 this, std::move(request), |
3400 base::Bind(&RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError, | 3410 base::Bind(&RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError, |
3401 base::Unretained(this)))); | 3411 base::Unretained(this)))); |
3402 } | 3412 } |
3403 | 3413 |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3496 // There is no pending NavigationEntry in these cases, so pass 0 as the | 3506 // There is no pending NavigationEntry in these cases, so pass 0 as the |
3497 // pending_nav_entry_id. If the previous handle was a prematurely aborted | 3507 // pending_nav_entry_id. If the previous handle was a prematurely aborted |
3498 // navigation loaded via LoadDataWithBaseURL, propagate the entry id. | 3508 // navigation loaded via LoadDataWithBaseURL, propagate the entry id. |
3499 return NavigationHandleImpl::Create( | 3509 return NavigationHandleImpl::Create( |
3500 params.url, params.redirects, frame_tree_node_, is_renderer_initiated, | 3510 params.url, params.redirects, frame_tree_node_, is_renderer_initiated, |
3501 params.was_within_same_page, base::TimeTicks::Now(), | 3511 params.was_within_same_page, base::TimeTicks::Now(), |
3502 entry_id_for_data_nav, false); // started_from_context_menu | 3512 entry_id_for_data_nav, false); // started_from_context_menu |
3503 } | 3513 } |
3504 | 3514 |
3505 } // namespace content | 3515 } // namespace content |
OLD | NEW |