Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(132)

Side by Side Diff: content/child/resource_dispatcher.cc

Issue 1257553002: [Proof-of-concept] PlzNavigate and Service Worker Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pass navigation_provider_id Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698