OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading | 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading |
6 | 6 |
7 #include "content/child/resource_dispatcher.h" | 7 #include "content/child/resource_dispatcher.h" |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
749 request->skip_service_worker = request_info.skip_service_worker; | 749 request->skip_service_worker = request_info.skip_service_worker; |
750 request->should_reset_appcache = request_info.should_reset_appcache; | 750 request->should_reset_appcache = request_info.should_reset_appcache; |
751 request->fetch_request_mode = request_info.fetch_request_mode; | 751 request->fetch_request_mode = request_info.fetch_request_mode; |
752 request->fetch_credentials_mode = request_info.fetch_credentials_mode; | 752 request->fetch_credentials_mode = request_info.fetch_credentials_mode; |
753 request->fetch_request_context_type = request_info.fetch_request_context_type; | 753 request->fetch_request_context_type = request_info.fetch_request_context_type; |
754 request->fetch_frame_type = request_info.fetch_frame_type; | 754 request->fetch_frame_type = request_info.fetch_frame_type; |
755 request->enable_load_timing = request_info.enable_load_timing; | 755 request->enable_load_timing = request_info.enable_load_timing; |
756 request->enable_upload_progress = request_info.enable_upload_progress; | 756 request->enable_upload_progress = request_info.enable_upload_progress; |
757 request->do_not_prompt_for_login = request_info.do_not_prompt_for_login; | 757 request->do_not_prompt_for_login = request_info.do_not_prompt_for_login; |
758 | 758 |
759 if ((request_info.referrer.policy == blink::WebReferrerPolicyDefault || | |
760 request_info.referrer.policy == | |
761 blink::WebReferrerPolicyNoReferrerWhenDowngrade) && | |
762 request_info.referrer.url.SchemeIsCryptographic() && | |
763 !request_info.url.SchemeIsCryptographic()) { | |
764 LOG(FATAL) << "Trying to send secure referrer for insecure request " | |
765 << "without an appropriate referrer policy.\n" | |
766 << "URL = " << request_info.url << "\n" | |
767 << "Referrer = " << request_info.referrer.url; | |
768 } | |
769 | 759 |
770 const RequestExtraData kEmptyData; | 760 const RequestExtraData kEmptyData; |
771 const RequestExtraData* extra_data; | 761 const RequestExtraData* extra_data; |
772 if (request_info.extra_data) | 762 if (request_info.extra_data) |
773 extra_data = static_cast<RequestExtraData*>(request_info.extra_data); | 763 extra_data = static_cast<RequestExtraData*>(request_info.extra_data); |
774 else | 764 else |
775 extra_data = &kEmptyData; | 765 extra_data = &kEmptyData; |
766 | |
767 if (extra_data->navigation_provider_id() == kInvalidServiceWorkerProviderId) { | |
768 if ((request_info.referrer.policy == blink::WebReferrerPolicyDefault || | |
michaeln
2015/07/30 01:35:08
Would it make sense to explicitly use a different
nasko
2015/08/07 17:51:11
What is the rationale for that? There should be no
| |
769 request_info.referrer.policy == | |
770 blink::WebReferrerPolicyNoReferrerWhenDowngrade) && | |
771 request_info.referrer.url.SchemeIsCryptographic() && | |
772 !request_info.url.SchemeIsCryptographic()) { | |
773 LOG(FATAL) << "Trying to send secure referrer for insecure request " | |
774 << "without an appropriate referrer policy.\n" | |
775 << "URL = " << request_info.url << "\n" | |
776 << "Referrer = " << request_info.referrer.url; | |
777 } | |
778 } | |
779 | |
776 request->visiblity_state = extra_data->visibility_state(); | 780 request->visiblity_state = extra_data->visibility_state(); |
777 request->render_frame_id = extra_data->render_frame_id(); | 781 request->render_frame_id = extra_data->render_frame_id(); |
778 request->is_main_frame = extra_data->is_main_frame(); | 782 request->is_main_frame = extra_data->is_main_frame(); |
779 request->parent_is_main_frame = extra_data->parent_is_main_frame(); | 783 request->parent_is_main_frame = extra_data->parent_is_main_frame(); |
780 request->parent_render_frame_id = extra_data->parent_render_frame_id(); | 784 request->parent_render_frame_id = extra_data->parent_render_frame_id(); |
781 request->allow_download = extra_data->allow_download(); | 785 request->allow_download = extra_data->allow_download(); |
782 request->transition_type = extra_data->transition_type(); | 786 request->transition_type = extra_data->transition_type(); |
783 request->should_replace_current_entry = | 787 request->should_replace_current_entry = |
784 extra_data->should_replace_current_entry(); | 788 extra_data->should_replace_current_entry(); |
785 request->transferred_request_child_id = | 789 request->transferred_request_child_id = |
786 extra_data->transferred_request_child_id(); | 790 extra_data->transferred_request_child_id(); |
787 request->transferred_request_request_id = | 791 request->transferred_request_request_id = |
788 extra_data->transferred_request_request_id(); | 792 extra_data->transferred_request_request_id(); |
789 request->service_worker_provider_id = | 793 request->service_worker_provider_id = |
790 extra_data->service_worker_provider_id(); | 794 extra_data->service_worker_provider_id(); |
791 request->request_body = request_body; | 795 request->request_body = request_body; |
792 if (frame_origin) | 796 if (frame_origin) |
793 *frame_origin = extra_data->frame_origin(); | 797 *frame_origin = extra_data->frame_origin(); |
798 | |
799 // PlzNavigate: Hack to avoid the referrer check failure in browser process. | |
nasko
2015/08/07 17:51:11
What is this failure?
| |
800 if (extra_data->navigation_provider_id() != kInvalidServiceWorkerProviderId) | |
801 request->referrer = GURL(); | |
794 return request.Pass(); | 802 return request.Pass(); |
795 } | 803 } |
796 | 804 |
797 } // namespace content | 805 } // namespace content |
OLD | NEW |