Chromium Code Reviews| 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 |