| 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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 } | 330 } |
| 331 | 331 |
| 332 bool AsyncResourceHandler::OnWillStart(const GURL& url, bool* defer) { | 332 bool AsyncResourceHandler::OnWillStart(const GURL& url, bool* defer) { |
| 333 ResourceMessageFilter* filter = GetFilter(); | 333 ResourceMessageFilter* filter = GetFilter(); |
| 334 if (!filter) | 334 if (!filter) |
| 335 return false; | 335 return false; |
| 336 | 336 |
| 337 if (GetRequestInfo()->is_upload_progress_enabled() && | 337 if (GetRequestInfo()->is_upload_progress_enabled() && |
| 338 request()->has_upload()) { | 338 request()->has_upload()) { |
| 339 upload_progress_tracker_ = base::MakeUnique<UploadProgressTracker>( | 339 upload_progress_tracker_ = base::MakeUnique<UploadProgressTracker>( |
| 340 FROM_HERE, | 340 FROM_HERE, this, base::ThreadTaskRunnerHandle::Get()); |
| 341 base::BindRepeating(&AsyncResourceHandler::SendUploadProgress, | |
| 342 base::Unretained(this)), | |
| 343 request()); | |
| 344 } | 341 } |
| 345 return true; | 342 return true; |
| 346 } | 343 } |
| 347 | 344 |
| 348 bool AsyncResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, | 345 bool AsyncResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
| 349 int* buf_size, | 346 int* buf_size, |
| 350 int min_size) { | 347 int min_size) { |
| 351 DCHECK_EQ(-1, min_size); | 348 DCHECK_EQ(-1, min_size); |
| 352 | 349 |
| 353 if (!CheckForSufficientResource()) | 350 if (!CheckForSufficientResource()) |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 request_complete_data.encoded_data_length = | 474 request_complete_data.encoded_data_length = |
| 478 request()->GetTotalReceivedBytes(); | 475 request()->GetTotalReceivedBytes(); |
| 479 request_complete_data.encoded_body_length = request()->GetRawBodyBytes(); | 476 request_complete_data.encoded_body_length = request()->GetRawBodyBytes(); |
| 480 filter->Send( | 477 filter->Send( |
| 481 new ResourceMsg_RequestComplete(GetRequestID(), request_complete_data)); | 478 new ResourceMsg_RequestComplete(GetRequestID(), request_complete_data)); |
| 482 | 479 |
| 483 if (status.is_success()) | 480 if (status.is_success()) |
| 484 RecordHistogram(); | 481 RecordHistogram(); |
| 485 } | 482 } |
| 486 | 483 |
| 484 net::UploadProgress AsyncResourceHandler::GetUploadProgress() { |
| 485 return request()->GetUploadProgress(); |
| 486 } |
| 487 |
| 488 void AsyncResourceHandler::ReportUploadProgress(int64_t current_position, |
| 489 int64_t total_size) { |
| 490 ResourceMessageFilter* filter = GetFilter(); |
| 491 if (!filter) |
| 492 return; |
| 493 filter->Send(new ResourceMsg_UploadProgress(GetRequestID(), current_position, |
| 494 total_size)); |
| 495 } |
| 496 |
| 487 bool AsyncResourceHandler::EnsureResourceBufferIsInitialized() { | 497 bool AsyncResourceHandler::EnsureResourceBufferIsInitialized() { |
| 488 DCHECK(has_checked_for_sufficient_resources_); | 498 DCHECK(has_checked_for_sufficient_resources_); |
| 489 | 499 |
| 490 if (buffer_.get() && buffer_->IsInitialized()) | 500 if (buffer_.get() && buffer_->IsInitialized()) |
| 491 return true; | 501 return true; |
| 492 | 502 |
| 493 buffer_ = new ResourceBuffer(); | 503 buffer_ = new ResourceBuffer(); |
| 494 return buffer_->Initialize(kBufferSize, | 504 return buffer_->Initialize(kBufferSize, |
| 495 kMinAllocationSize, | 505 kMinAllocationSize, |
| 496 kMaxAllocationSize); | 506 kMaxAllocationSize); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 elapsed_time, 1, 100000, 100); | 556 elapsed_time, 1, 100000, 100); |
| 547 } else { | 557 } else { |
| 548 UMA_HISTOGRAM_CUSTOM_COUNTS( | 558 UMA_HISTOGRAM_CUSTOM_COUNTS( |
| 549 "Net.ResourceLoader.ResponseStartToEnd.Over_512kB", | 559 "Net.ResourceLoader.ResponseStartToEnd.Over_512kB", |
| 550 elapsed_time, 1, 100000, 100); | 560 elapsed_time, 1, 100000, 100); |
| 551 } | 561 } |
| 552 | 562 |
| 553 inlining_helper_->RecordHistogram(elapsed_time); | 563 inlining_helper_->RecordHistogram(elapsed_time); |
| 554 } | 564 } |
| 555 | 565 |
| 556 void AsyncResourceHandler::SendUploadProgress(int64_t current_position, | |
| 557 int64_t total_size) { | |
| 558 ResourceMessageFilter* filter = GetFilter(); | |
| 559 if (!filter) | |
| 560 return; | |
| 561 filter->Send(new ResourceMsg_UploadProgress( | |
| 562 GetRequestID(), current_position, total_size)); | |
| 563 } | |
| 564 | |
| 565 } // namespace content | 566 } // namespace content |
| OLD | NEW |