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

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

Issue 1181493002: [Patch 3 of 6] Split out content/child's SiteIsolationPolicy into two new classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rename_policy_to_sniffer2
Patch Set: Add crbug. Created 5 years, 6 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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 RequestPeer* new_peer = 154 RequestPeer* new_peer =
155 delegate_->OnReceivedResponse( 155 delegate_->OnReceivedResponse(
156 request_info->peer, response_head.mime_type, request_info->url); 156 request_info->peer, response_head.mime_type, request_info->url);
157 if (new_peer) 157 if (new_peer)
158 request_info->peer = new_peer; 158 request_info->peer = new_peer;
159 } 159 }
160 160
161 ResourceResponseInfo renderer_response_info; 161 ResourceResponseInfo renderer_response_info;
162 ToResourceResponseInfo(*request_info, response_head, &renderer_response_info); 162 ToResourceResponseInfo(*request_info, response_head, &renderer_response_info);
163 request_info->site_isolation_metadata = 163 request_info->site_isolation_metadata =
164 SiteIsolationPolicy::OnReceivedResponse(request_info->frame_origin, 164 SiteIsolationStatsGatherer::OnReceivedResponse(
165 request_info->response_url, 165 request_info->frame_origin, request_info->response_url,
166 request_info->resource_type, 166 request_info->resource_type, request_info->origin_pid,
167 request_info->origin_pid, 167 renderer_response_info);
168 renderer_response_info);
169 request_info->peer->OnReceivedResponse(renderer_response_info); 168 request_info->peer->OnReceivedResponse(renderer_response_info);
170 } 169 }
171 170
172 void ResourceDispatcher::OnReceivedCachedMetadata( 171 void ResourceDispatcher::OnReceivedCachedMetadata(
173 int request_id, const std::vector<char>& data) { 172 int request_id, const std::vector<char>& data) {
174 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id); 173 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id);
175 if (!request_info) 174 if (!request_info)
176 return; 175 return;
177 176
178 if (data.size()) 177 if (data.size())
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 base::TimeTicks time_start = base::TimeTicks::Now(); 233 base::TimeTicks time_start = base::TimeTicks::Now();
235 234
236 const char* data_start = static_cast<char*>(request_info->buffer->memory()); 235 const char* data_start = static_cast<char*>(request_info->buffer->memory());
237 CHECK(data_start); 236 CHECK(data_start);
238 CHECK(data_start + data_offset); 237 CHECK(data_start + data_offset);
239 const char* data_ptr = data_start + data_offset; 238 const char* data_ptr = data_start + data_offset;
240 239
241 // Check whether this response data is compliant with our cross-site 240 // Check whether this response data is compliant with our cross-site
242 // document blocking policy. We only do this for the first chunk of data. 241 // document blocking policy. We only do this for the first chunk of data.
243 if (request_info->site_isolation_metadata.get()) { 242 if (request_info->site_isolation_metadata.get()) {
244 SiteIsolationPolicy::OnReceivedFirstChunk( 243 SiteIsolationStatsGatherer::OnReceivedFirstChunk(
245 request_info->site_isolation_metadata, data_ptr, data_length); 244 request_info->site_isolation_metadata, data_ptr, data_length);
246 request_info->site_isolation_metadata.reset(); 245 request_info->site_isolation_metadata.reset();
247 } 246 }
248 247
249 if (request_info->threaded_data_provider) { 248 if (request_info->threaded_data_provider) {
250 // A threaded data provider will take care of its own ACKing, as the data 249 // A threaded data provider will take care of its own ACKing, as the data
251 // may be processed later on another thread. 250 // may be processed later on another thread.
252 send_ack = false; 251 send_ack = false;
253 request_info->threaded_data_provider->OnReceivedDataOnForegroundThread( 252 request_info->threaded_data_provider->OnReceivedDataOnForegroundThread(
254 data_ptr, data_length, encoded_data_length); 253 data_ptr, data_length, encoded_data_length);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 ResourceResponseInfo renderer_response_info; 294 ResourceResponseInfo renderer_response_info;
296 ToResourceResponseInfo(*request_info, response_head, &renderer_response_info); 295 ToResourceResponseInfo(*request_info, response_head, &renderer_response_info);
297 if (request_info->peer->OnReceivedRedirect(redirect_info, 296 if (request_info->peer->OnReceivedRedirect(redirect_info,
298 renderer_response_info)) { 297 renderer_response_info)) {
299 // Double-check if the request is still around. The call above could 298 // Double-check if the request is still around. The call above could
300 // potentially remove it. 299 // potentially remove it.
301 request_info = GetPendingRequestInfo(request_id); 300 request_info = GetPendingRequestInfo(request_id);
302 if (!request_info) 301 if (!request_info)
303 return; 302 return;
304 // We update the response_url here so that we can send it to 303 // We update the response_url here so that we can send it to
305 // SiteIsolationPolicy later when OnReceivedResponse is called. 304 // SiteIsolationStatsGatherer later when OnReceivedResponse is called.
306 request_info->response_url = redirect_info.new_url; 305 request_info->response_url = redirect_info.new_url;
307 request_info->pending_redirect_message.reset( 306 request_info->pending_redirect_message.reset(
308 new ResourceHostMsg_FollowRedirect(request_id)); 307 new ResourceHostMsg_FollowRedirect(request_id));
309 if (!request_info->is_deferred) { 308 if (!request_info->is_deferred) {
310 FollowPendingRedirect(request_id, *request_info); 309 FollowPendingRedirect(request_id, *request_info);
311 } 310 }
312 } else { 311 } else {
313 Cancel(request_id); 312 Cancel(request_id);
314 } 313 }
315 } 314 }
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 extra_data->transferred_request_request_id(); 788 extra_data->transferred_request_request_id();
790 request->service_worker_provider_id = 789 request->service_worker_provider_id =
791 extra_data->service_worker_provider_id(); 790 extra_data->service_worker_provider_id();
792 request->request_body = request_body; 791 request->request_body = request_body;
793 if (frame_origin) 792 if (frame_origin)
794 *frame_origin = extra_data->frame_origin(); 793 *frame_origin = extra_data->frame_origin();
795 return request.Pass(); 794 return request.Pass();
796 } 795 }
797 796
798 } // namespace content 797 } // namespace content
OLDNEW
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.cc ('k') | content/child/site_isolation_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698