| 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 #include "content/browser/loader/async_resource_handler.h" | 5 #include "content/browser/loader/async_resource_handler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 return false; | 324 return false; |
| 325 | 325 |
| 326 // TODO(erikchen): Temporary debugging. http://crbug.com/527588. | 326 // TODO(erikchen): Temporary debugging. http://crbug.com/527588. |
| 327 CHECK_LE(size, kBufferSize); | 327 CHECK_LE(size, kBufferSize); |
| 328 filter->Send(new ResourceMsg_SetDataBuffer( | 328 filter->Send(new ResourceMsg_SetDataBuffer( |
| 329 GetRequestID(), handle, size, filter->peer_pid())); | 329 GetRequestID(), handle, size, filter->peer_pid())); |
| 330 sent_first_data_msg_ = true; | 330 sent_first_data_msg_ = true; |
| 331 } | 331 } |
| 332 | 332 |
| 333 int data_offset = buffer_->GetLastAllocationOffset(); | 333 int data_offset = buffer_->GetLastAllocationOffset(); |
| 334 | 334 int encoded_data_length = CalculateEncodedDataLengthToReport(); |
| 335 int64_t current_transfer_size = request()->GetTotalReceivedBytes(); | |
| 336 int encoded_data_length = current_transfer_size - reported_transfer_size_; | |
| 337 reported_transfer_size_ = current_transfer_size; | |
| 338 | 335 |
| 339 // TODO(erikchen): Temporary debugging. http://crbug.com/527588. | 336 // TODO(erikchen): Temporary debugging. http://crbug.com/527588. |
| 340 CHECK_LE(data_offset, kBufferSize); | 337 CHECK_LE(data_offset, kBufferSize); |
| 341 | 338 |
| 342 filter->Send(new ResourceMsg_DataReceivedDebug(GetRequestID(), data_offset)); | 339 filter->Send(new ResourceMsg_DataReceivedDebug(GetRequestID(), data_offset)); |
| 343 filter->Send(new ResourceMsg_DataReceivedDebug2( | 340 filter->Send(new ResourceMsg_DataReceivedDebug2( |
| 344 GetRequestID(), data_offset, bytes_read, encoded_data_length)); | 341 GetRequestID(), data_offset, bytes_read, encoded_data_length)); |
| 345 filter->Send(new ResourceMsg_DataReceived( | 342 filter->Send(new ResourceMsg_DataReceived( |
| 346 GetRequestID(), data_offset, bytes_read, encoded_data_length)); | 343 GetRequestID(), data_offset, bytes_read, encoded_data_length)); |
| 347 ++pending_data_count_; | 344 ++pending_data_count_; |
| 348 | 345 |
| 349 if (!buffer_->CanAllocate()) { | 346 if (!buffer_->CanAllocate()) { |
| 350 *defer = did_defer_ = true; | 347 *defer = did_defer_ = true; |
| 351 OnDefer(); | 348 OnDefer(); |
| 352 } | 349 } |
| 353 | 350 |
| 354 return true; | 351 return true; |
| 355 } | 352 } |
| 356 | 353 |
| 357 void AsyncResourceHandler::OnDataDownloaded(int bytes_downloaded) { | 354 void AsyncResourceHandler::OnDataDownloaded(int bytes_downloaded) { |
| 358 int64_t current_transfer_size = request()->GetTotalReceivedBytes(); | 355 int encoded_data_length = CalculateEncodedDataLengthToReport(); |
| 359 int encoded_data_length = current_transfer_size - reported_transfer_size_; | |
| 360 reported_transfer_size_ = current_transfer_size; | |
| 361 | 356 |
| 362 ResourceMessageFilter* filter = GetFilter(); | 357 ResourceMessageFilter* filter = GetFilter(); |
| 363 if (filter) { | 358 if (filter) { |
| 364 filter->Send(new ResourceMsg_DataDownloaded( | 359 filter->Send(new ResourceMsg_DataDownloaded( |
| 365 GetRequestID(), bytes_downloaded, encoded_data_length)); | 360 GetRequestID(), bytes_downloaded, encoded_data_length)); |
| 366 } | 361 } |
| 367 } | 362 } |
| 368 | 363 |
| 369 void AsyncResourceHandler::OnResponseCompleted( | 364 void AsyncResourceHandler::OnResponseCompleted( |
| 370 const net::URLRequestStatus& status, | 365 const net::URLRequestStatus& status, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 return true; | 443 return true; |
| 449 has_checked_for_sufficient_resources_ = true; | 444 has_checked_for_sufficient_resources_ = true; |
| 450 | 445 |
| 451 if (rdh_->HasSufficientResourcesForRequest(request())) | 446 if (rdh_->HasSufficientResourcesForRequest(request())) |
| 452 return true; | 447 return true; |
| 453 | 448 |
| 454 controller()->CancelWithError(net::ERR_INSUFFICIENT_RESOURCES); | 449 controller()->CancelWithError(net::ERR_INSUFFICIENT_RESOURCES); |
| 455 return false; | 450 return false; |
| 456 } | 451 } |
| 457 | 452 |
| 453 int AsyncResourceHandler::CalculateEncodedDataLengthToReport() { |
| 454 int64_t current_transfer_size = request()->GetTotalReceivedBytes(); |
| 455 int encoded_data_length = current_transfer_size - reported_transfer_size_; |
| 456 reported_transfer_size_ = current_transfer_size; |
| 457 return encoded_data_length; |
| 458 } |
| 459 |
| 458 } // namespace content | 460 } // namespace content |
| OLD | NEW |