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

Side by Side Diff: content/browser/loader/resource_dispatcher_host_impl.cc

Issue 23583039: Convert a bunch of resource IPCs to be control messages. They didn't need to be routed. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: remove dcheck from RenderProcessHost instead Created 7 years, 3 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 | Annotate | Revision Log
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/browser/loader/resource_dispatcher_host_impl.h" 7 #include "content/browser/loader/resource_dispatcher_host_impl.h"
8 8
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 // are all positive (since histograms expect positive sample values). 131 // are all positive (since histograms expect positive sample values).
132 const int kAllNetErrorCodes[] = { 132 const int kAllNetErrorCodes[] = {
133 #define NET_ERROR(label, value) -(value), 133 #define NET_ERROR(label, value) -(value),
134 #include "net/base/net_error_list.h" 134 #include "net/base/net_error_list.h"
135 #undef NET_ERROR 135 #undef NET_ERROR
136 }; 136 };
137 137
138 // Aborts a request before an URLRequest has actually been created. 138 // Aborts a request before an URLRequest has actually been created.
139 void AbortRequestBeforeItStarts(ResourceMessageFilter* filter, 139 void AbortRequestBeforeItStarts(ResourceMessageFilter* filter,
140 IPC::Message* sync_result, 140 IPC::Message* sync_result,
141 int route_id,
142 int request_id) { 141 int request_id) {
143 if (sync_result) { 142 if (sync_result) {
144 SyncLoadResult result; 143 SyncLoadResult result;
145 result.error_code = net::ERR_ABORTED; 144 result.error_code = net::ERR_ABORTED;
146 ResourceHostMsg_SyncLoad::WriteReplyParams(sync_result, result); 145 ResourceHostMsg_SyncLoad::WriteReplyParams(sync_result, result);
147 filter->Send(sync_result); 146 filter->Send(sync_result);
148 } else { 147 } else {
149 // Tell the renderer that this request was disallowed. 148 // Tell the renderer that this request was disallowed.
150 filter->Send(new ResourceMsg_RequestComplete( 149 filter->Send(new ResourceMsg_RequestComplete(
151 route_id,
152 request_id, 150 request_id,
153 net::ERR_ABORTED, 151 net::ERR_ABORTED,
154 false, 152 false,
155 std::string(), // No security info needed, connection not established. 153 std::string(), // No security info needed, connection not established.
156 base::TimeTicks())); 154 base::TimeTicks()));
157 } 155 }
158 } 156 }
159 157
160 void SetReferrerForRequest(net::URLRequest* request, const Referrer& referrer) { 158 void SetReferrerForRequest(net::URLRequest* request, const Referrer& referrer) {
161 if (!referrer.url.is_valid() || 159 if (!referrer.url.is_valid() ||
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 } 920 }
923 } 921 }
924 922
925 ResourceContext* resource_context = filter_->resource_context(); 923 ResourceContext* resource_context = filter_->resource_context();
926 // http://crbug.com/90971 924 // http://crbug.com/90971
927 CHECK(ContainsKey(active_resource_contexts_, resource_context)); 925 CHECK(ContainsKey(active_resource_contexts_, resource_context));
928 926
929 if (is_shutdown_ || 927 if (is_shutdown_ ||
930 !ShouldServiceRequest(process_type, child_id, request_data, 928 !ShouldServiceRequest(process_type, child_id, request_data,
931 filter_->file_system_context())) { 929 filter_->file_system_context())) {
932 AbortRequestBeforeItStarts(filter_, sync_result, route_id, request_id); 930 AbortRequestBeforeItStarts(filter_, sync_result, request_id);
933 return; 931 return;
934 } 932 }
935 933
936 const Referrer referrer(request_data.referrer, request_data.referrer_policy); 934 const Referrer referrer(request_data.referrer, request_data.referrer_policy);
937 935
938 // Allow the observer to block/handle the request. 936 // Allow the observer to block/handle the request.
939 if (delegate_ && !delegate_->ShouldBeginRequest(child_id, 937 if (delegate_ && !delegate_->ShouldBeginRequest(child_id,
940 route_id, 938 route_id,
941 request_data.method, 939 request_data.method,
942 request_data.url, 940 request_data.url,
943 request_data.resource_type, 941 request_data.resource_type,
944 resource_context)) { 942 resource_context)) {
945 AbortRequestBeforeItStarts(filter_, sync_result, route_id, request_id); 943 AbortRequestBeforeItStarts(filter_, sync_result, request_id);
946 return; 944 return;
947 } 945 }
948 946
949 bool is_sync_load = sync_result != NULL; 947 bool is_sync_load = sync_result != NULL;
950 int load_flags = 948 int load_flags =
951 BuildLoadFlagsForRequest(request_data, child_id, is_sync_load); 949 BuildLoadFlagsForRequest(request_data, child_id, is_sync_load);
952 950
953 GlobalRoutingID id(child_id, route_id); 951 GlobalRoutingID id(child_id, route_id);
954 if (!offline_policy_map_[id]) 952 if (!offline_policy_map_[id])
955 offline_policy_map_[id] = new OfflinePolicy(); 953 offline_policy_map_[id] = new OfflinePolicy();
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 appcache::AppCacheInterceptor::SetExtraRequestInfo( 1032 appcache::AppCacheInterceptor::SetExtraRequestInfo(
1035 request, filter_->appcache_service(), child_id, 1033 request, filter_->appcache_service(), child_id,
1036 request_data.appcache_host_id, request_data.resource_type); 1034 request_data.appcache_host_id, request_data.resource_type);
1037 1035
1038 // Construct the IPC resource handler. 1036 // Construct the IPC resource handler.
1039 scoped_ptr<ResourceHandler> handler; 1037 scoped_ptr<ResourceHandler> handler;
1040 if (sync_result) { 1038 if (sync_result) {
1041 handler.reset(new SyncResourceHandler( 1039 handler.reset(new SyncResourceHandler(
1042 filter_, request, sync_result, this)); 1040 filter_, request, sync_result, this));
1043 } else { 1041 } else {
1044 handler.reset(new AsyncResourceHandler( 1042 handler.reset(new AsyncResourceHandler(filter_, request, this));
1045 filter_, route_id, request, this));
1046 } 1043 }
1047 1044
1048 // The RedirectToFileResourceHandler depends on being next in the chain. 1045 // The RedirectToFileResourceHandler depends on being next in the chain.
1049 if (request_data.download_to_file) { 1046 if (request_data.download_to_file) {
1050 handler.reset( 1047 handler.reset(
1051 new RedirectToFileResourceHandler(handler.Pass(), child_id, this)); 1048 new RedirectToFileResourceHandler(handler.Pass(), child_id, this));
1052 } 1049 }
1053 1050
1054 // Install a CrossSiteResourceHandler if this request is coming from a 1051 // Install a CrossSiteResourceHandler if this request is coming from a
1055 // RenderViewHost with a pending cross-site request. We only check this for 1052 // RenderViewHost with a pending cross-site request. We only check this for
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
1879 if ((load_flags & net::LOAD_REPORT_RAW_HEADERS) 1876 if ((load_flags & net::LOAD_REPORT_RAW_HEADERS)
1880 && !policy->CanReadRawCookies(child_id)) { 1877 && !policy->CanReadRawCookies(child_id)) {
1881 VLOG(1) << "Denied unauthorized request for raw headers"; 1878 VLOG(1) << "Denied unauthorized request for raw headers";
1882 load_flags &= ~net::LOAD_REPORT_RAW_HEADERS; 1879 load_flags &= ~net::LOAD_REPORT_RAW_HEADERS;
1883 } 1880 }
1884 1881
1885 return load_flags; 1882 return load_flags;
1886 } 1883 }
1887 1884
1888 } // namespace content 1885 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/async_resource_handler.cc ('k') | content/browser/loader/resource_dispatcher_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698