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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 IsBrowserSideNavigationEnabled() && | 408 IsBrowserSideNavigationEnabled() && |
409 !request_params.original_method.empty() | 409 !request_params.original_method.empty() |
410 ? request_params.original_method | 410 ? request_params.original_method |
411 : common_params.method; | 411 : common_params.method; |
412 WebURLRequest request(navigation_url); | 412 WebURLRequest request(navigation_url); |
413 request.SetHTTPMethod(WebString::FromUTF8(navigation_method)); | 413 request.SetHTTPMethod(WebString::FromUTF8(navigation_method)); |
414 | 414 |
415 if (is_view_source_mode_enabled) | 415 if (is_view_source_mode_enabled) |
416 request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad); | 416 request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad); |
417 | 417 |
| 418 WebString web_referrer; |
418 if (common_params.referrer.url.is_valid()) { | 419 if (common_params.referrer.url.is_valid()) { |
419 WebString web_referrer = WebSecurityPolicy::GenerateReferrerHeader( | 420 web_referrer = WebSecurityPolicy::GenerateReferrerHeader( |
420 common_params.referrer.policy, common_params.url, | 421 common_params.referrer.policy, common_params.url, |
421 WebString::FromUTF8(common_params.referrer.url.spec())); | 422 WebString::FromUTF8(common_params.referrer.url.spec())); |
| 423 request.SetHTTPReferrer(web_referrer, common_params.referrer.policy); |
422 if (!web_referrer.IsEmpty()) { | 424 if (!web_referrer.IsEmpty()) { |
423 request.SetHTTPReferrer(web_referrer, common_params.referrer.policy); | |
424 request.AddHTTPOriginIfNeeded( | 425 request.AddHTTPOriginIfNeeded( |
425 WebSecurityOrigin(url::Origin(common_params.referrer.url))); | 426 WebSecurityOrigin(url::Origin(common_params.referrer.url))); |
426 } | 427 } |
427 } | 428 } |
428 | 429 |
| 430 if (!web_referrer.IsEmpty() || |
| 431 common_params.referrer.policy != blink::kWebReferrerPolicyDefault) { |
| 432 request.SetHTTPReferrer(web_referrer, common_params.referrer.policy); |
| 433 } |
| 434 |
429 request.SetIsSameDocumentNavigation(is_same_document_navigation); | 435 request.SetIsSameDocumentNavigation(is_same_document_navigation); |
430 request.SetPreviewsState( | 436 request.SetPreviewsState( |
431 static_cast<WebURLRequest::PreviewsState>(common_params.previews_state)); | 437 static_cast<WebURLRequest::PreviewsState>(common_params.previews_state)); |
432 | 438 |
433 RequestExtraData* extra_data = new RequestExtraData(); | 439 RequestExtraData* extra_data = new RequestExtraData(); |
434 extra_data->set_stream_override(std::move(stream_override)); | 440 extra_data->set_stream_override(std::move(stream_override)); |
435 extra_data->set_navigation_initiated_by_renderer( | 441 extra_data->set_navigation_initiated_by_renderer( |
436 request_params.nav_entry_id == 0); | 442 request_params.nav_entry_id == 0); |
437 request.SetExtraData(extra_data); | 443 request.SetExtraData(extra_data); |
438 | 444 |
(...skipping 6408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6847 policy(info.default_policy), | 6853 policy(info.default_policy), |
6848 replaces_current_history_item(info.replaces_current_history_item), | 6854 replaces_current_history_item(info.replaces_current_history_item), |
6849 history_navigation_in_new_child_frame( | 6855 history_navigation_in_new_child_frame( |
6850 info.is_history_navigation_in_new_child_frame), | 6856 info.is_history_navigation_in_new_child_frame), |
6851 client_redirect(info.is_client_redirect), | 6857 client_redirect(info.is_client_redirect), |
6852 cache_disabled(info.is_cache_disabled), | 6858 cache_disabled(info.is_cache_disabled), |
6853 form(info.form), | 6859 form(info.form), |
6854 source_location(info.source_location) {} | 6860 source_location(info.source_location) {} |
6855 | 6861 |
6856 } // namespace content | 6862 } // namespace content |
OLD | NEW |