| 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 <utility> |
| 10 |
| 9 #include "base/bind.h" | 11 #include "base/bind.h" |
| 10 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" |
| 11 #include "base/debug/alias.h" | 13 #include "base/debug/alias.h" |
| 12 #include "base/debug/dump_without_crashing.h" | 14 #include "base/debug/dump_without_crashing.h" |
| 13 #include "base/debug/stack_trace.h" | 15 #include "base/debug/stack_trace.h" |
| 14 #include "base/files/file_path.h" | 16 #include "base/files/file_path.h" |
| 15 #include "base/memory/shared_memory.h" | 17 #include "base/memory/shared_memory.h" |
| 16 #include "base/message_loop/message_loop.h" | 18 #include "base/message_loop/message_loop.h" |
| 17 #include "base/metrics/histogram.h" | 19 #include "base/metrics/histogram.h" |
| 18 #include "base/rand_util.h" | 20 #include "base/rand_util.h" |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 // A threaded data provider will take care of its own ACKing, as the data | 281 // A threaded data provider will take care of its own ACKing, as the data |
| 280 // may be processed later on another thread. | 282 // may be processed later on another thread. |
| 281 send_ack = false; | 283 send_ack = false; |
| 282 request_info->threaded_data_provider->OnReceivedDataOnForegroundThread( | 284 request_info->threaded_data_provider->OnReceivedDataOnForegroundThread( |
| 283 data_ptr, data_length, encoded_data_length); | 285 data_ptr, data_length, encoded_data_length); |
| 284 } else { | 286 } else { |
| 285 scoped_ptr<RequestPeer::ReceivedData> data = | 287 scoped_ptr<RequestPeer::ReceivedData> data = |
| 286 factory->Create(data_offset, data_length, encoded_data_length); | 288 factory->Create(data_offset, data_length, encoded_data_length); |
| 287 // |data| takes care of ACKing. | 289 // |data| takes care of ACKing. |
| 288 send_ack = false; | 290 send_ack = false; |
| 289 request_info->peer->OnReceivedData(data.Pass()); | 291 request_info->peer->OnReceivedData(std::move(data)); |
| 290 } | 292 } |
| 291 | 293 |
| 292 UMA_HISTOGRAM_TIMES("ResourceDispatcher.OnReceivedDataTime", | 294 UMA_HISTOGRAM_TIMES("ResourceDispatcher.OnReceivedDataTime", |
| 293 base::TimeTicks::Now() - time_start); | 295 base::TimeTicks::Now() - time_start); |
| 294 } | 296 } |
| 295 | 297 |
| 296 // Acknowledge the reception of this data. | 298 // Acknowledge the reception of this data. |
| 297 if (send_ack) | 299 if (send_ack) |
| 298 message_sender_->Send(new ResourceHostMsg_DataReceived_ACK(request_id)); | 300 message_sender_->Send(new ResourceHostMsg_DataReceived_ACK(request_id)); |
| 299 } | 301 } |
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 853 request->transferred_request_child_id = | 855 request->transferred_request_child_id = |
| 854 extra_data->transferred_request_child_id(); | 856 extra_data->transferred_request_child_id(); |
| 855 request->transferred_request_request_id = | 857 request->transferred_request_request_id = |
| 856 extra_data->transferred_request_request_id(); | 858 extra_data->transferred_request_request_id(); |
| 857 request->service_worker_provider_id = | 859 request->service_worker_provider_id = |
| 858 extra_data->service_worker_provider_id(); | 860 extra_data->service_worker_provider_id(); |
| 859 request->lofi_state = extra_data->lofi_state(); | 861 request->lofi_state = extra_data->lofi_state(); |
| 860 request->request_body = request_body; | 862 request->request_body = request_body; |
| 861 if (frame_origin) | 863 if (frame_origin) |
| 862 *frame_origin = extra_data->frame_origin(); | 864 *frame_origin = extra_data->frame_origin(); |
| 863 return request.Pass(); | 865 return request; |
| 864 } | 866 } |
| 865 | 867 |
| 866 void ResourceDispatcher::SetResourceSchedulingFilter( | 868 void ResourceDispatcher::SetResourceSchedulingFilter( |
| 867 scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { | 869 scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { |
| 868 resource_scheduling_filter_ = resource_scheduling_filter; | 870 resource_scheduling_filter_ = resource_scheduling_filter; |
| 869 } | 871 } |
| 870 | 872 |
| 871 } // namespace content | 873 } // namespace content |
| OLD | NEW |