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 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 IsBrowserSideNavigationEnabled() && | 405 IsBrowserSideNavigationEnabled() && |
406 !request_params.original_method.empty() | 406 !request_params.original_method.empty() |
407 ? request_params.original_method | 407 ? request_params.original_method |
408 : common_params.method; | 408 : common_params.method; |
409 WebURLRequest request(navigation_url); | 409 WebURLRequest request(navigation_url); |
410 request.SetHTTPMethod(WebString::FromUTF8(navigation_method)); | 410 request.SetHTTPMethod(WebString::FromUTF8(navigation_method)); |
411 | 411 |
412 if (is_view_source_mode_enabled) | 412 if (is_view_source_mode_enabled) |
413 request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad); | 413 request.SetCachePolicy(WebCachePolicy::kReturnCacheDataElseLoad); |
414 | 414 |
| 415 WebString web_referrer; |
415 if (common_params.referrer.url.is_valid()) { | 416 if (common_params.referrer.url.is_valid()) { |
416 WebString web_referrer = WebSecurityPolicy::GenerateReferrerHeader( | 417 web_referrer = WebSecurityPolicy::GenerateReferrerHeader( |
417 common_params.referrer.policy, common_params.url, | 418 common_params.referrer.policy, common_params.url, |
418 WebString::FromUTF8(common_params.referrer.url.spec())); | 419 WebString::FromUTF8(common_params.referrer.url.spec())); |
| 420 request.SetHTTPReferrer(web_referrer, common_params.referrer.policy); |
419 if (!web_referrer.IsEmpty()) { | 421 if (!web_referrer.IsEmpty()) { |
420 request.SetHTTPReferrer(web_referrer, common_params.referrer.policy); | |
421 request.AddHTTPOriginIfNeeded( | 422 request.AddHTTPOriginIfNeeded( |
422 WebSecurityOrigin(url::Origin(common_params.referrer.url))); | 423 WebSecurityOrigin(url::Origin(common_params.referrer.url))); |
423 } | 424 } |
424 } | 425 } |
425 | 426 |
| 427 if (!web_referrer.IsEmpty() || |
| 428 common_params.referrer.policy != blink::kWebReferrerPolicyDefault) { |
| 429 request.SetHTTPReferrer(web_referrer, common_params.referrer.policy); |
| 430 } |
| 431 |
426 request.SetIsSameDocumentNavigation(is_same_document_navigation); | 432 request.SetIsSameDocumentNavigation(is_same_document_navigation); |
427 request.SetPreviewsState( | 433 request.SetPreviewsState( |
428 static_cast<WebURLRequest::PreviewsState>(common_params.previews_state)); | 434 static_cast<WebURLRequest::PreviewsState>(common_params.previews_state)); |
429 | 435 |
430 RequestExtraData* extra_data = new RequestExtraData(); | 436 RequestExtraData* extra_data = new RequestExtraData(); |
431 extra_data->set_stream_override(std::move(stream_override)); | 437 extra_data->set_stream_override(std::move(stream_override)); |
432 extra_data->set_navigation_initiated_by_renderer( | 438 extra_data->set_navigation_initiated_by_renderer( |
433 request_params.nav_entry_id == 0); | 439 request_params.nav_entry_id == 0); |
434 request.SetExtraData(extra_data); | 440 request.SetExtraData(extra_data); |
435 | 441 |
(...skipping 6359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6795 policy(info.default_policy), | 6801 policy(info.default_policy), |
6796 replaces_current_history_item(info.replaces_current_history_item), | 6802 replaces_current_history_item(info.replaces_current_history_item), |
6797 history_navigation_in_new_child_frame( | 6803 history_navigation_in_new_child_frame( |
6798 info.is_history_navigation_in_new_child_frame), | 6804 info.is_history_navigation_in_new_child_frame), |
6799 client_redirect(info.is_client_redirect), | 6805 client_redirect(info.is_client_redirect), |
6800 cache_disabled(info.is_cache_disabled), | 6806 cache_disabled(info.is_cache_disabled), |
6801 form(info.form), | 6807 form(info.form), |
6802 source_location(info.source_location) {} | 6808 source_location(info.source_location) {} |
6803 | 6809 |
6804 } // namespace content | 6810 } // namespace content |
OLD | NEW |