| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/mojo_async_resource_handler.h" | 5 #include "content/browser/loader/mojo_async_resource_handler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 shared_writer_->writer(), data, available, MOJO_WRITE_DATA_FLAG_NONE); | 393 shared_writer_->writer(), data, available, MOJO_WRITE_DATA_FLAG_NONE); |
| 394 if (result == MOJO_RESULT_OK) | 394 if (result == MOJO_RESULT_OK) |
| 395 *available = std::min(*available, static_cast<uint32_t>(kMaxChunkSize)); | 395 *available = std::min(*available, static_cast<uint32_t>(kMaxChunkSize)); |
| 396 else if (result == MOJO_RESULT_SHOULD_WAIT) | 396 else if (result == MOJO_RESULT_SHOULD_WAIT) |
| 397 handle_watcher_.ArmOrNotify(); | 397 handle_watcher_.ArmOrNotify(); |
| 398 return result; | 398 return result; |
| 399 } | 399 } |
| 400 | 400 |
| 401 MojoResult MojoAsyncResourceHandler::EndWrite(uint32_t written) { | 401 MojoResult MojoAsyncResourceHandler::EndWrite(uint32_t written) { |
| 402 MojoResult result = mojo::EndWriteDataRaw(shared_writer_->writer(), written); | 402 MojoResult result = mojo::EndWriteDataRaw(shared_writer_->writer(), written); |
| 403 if (result == MOJO_RESULT_OK) | 403 if (result == MOJO_RESULT_OK) { |
| 404 total_written_bytes_ += written; |
| 404 handle_watcher_.ArmOrNotify(); | 405 handle_watcher_.ArmOrNotify(); |
| 406 } |
| 405 return result; | 407 return result; |
| 406 } | 408 } |
| 407 | 409 |
| 408 net::IOBufferWithSize* MojoAsyncResourceHandler::GetResponseMetadata( | 410 net::IOBufferWithSize* MojoAsyncResourceHandler::GetResponseMetadata( |
| 409 net::URLRequest* request) { | 411 net::URLRequest* request) { |
| 410 return request->response_info().metadata.get(); | 412 return request->response_info().metadata.get(); |
| 411 } | 413 } |
| 412 | 414 |
| 413 void MojoAsyncResourceHandler::OnResponseCompleted( | 415 void MojoAsyncResourceHandler::OnResponseCompleted( |
| 414 const net::URLRequestStatus& status, | 416 const net::URLRequestStatus& status, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 445 DCHECK(!was_ignored_by_handler || error_code == net::ERR_ABORTED); | 447 DCHECK(!was_ignored_by_handler || error_code == net::ERR_ABORTED); |
| 446 | 448 |
| 447 ResourceRequestCompletionStatus request_complete_data; | 449 ResourceRequestCompletionStatus request_complete_data; |
| 448 request_complete_data.error_code = error_code; | 450 request_complete_data.error_code = error_code; |
| 449 request_complete_data.was_ignored_by_handler = was_ignored_by_handler; | 451 request_complete_data.was_ignored_by_handler = was_ignored_by_handler; |
| 450 request_complete_data.exists_in_cache = request()->response_info().was_cached; | 452 request_complete_data.exists_in_cache = request()->response_info().was_cached; |
| 451 request_complete_data.completion_time = base::TimeTicks::Now(); | 453 request_complete_data.completion_time = base::TimeTicks::Now(); |
| 452 request_complete_data.encoded_data_length = | 454 request_complete_data.encoded_data_length = |
| 453 request()->GetTotalReceivedBytes(); | 455 request()->GetTotalReceivedBytes(); |
| 454 request_complete_data.encoded_body_length = request()->GetRawBodyBytes(); | 456 request_complete_data.encoded_body_length = request()->GetRawBodyBytes(); |
| 457 request_complete_data.decoded_body_length = total_written_bytes_; |
| 455 | 458 |
| 456 url_loader_client_->OnComplete(request_complete_data); | 459 url_loader_client_->OnComplete(request_complete_data); |
| 457 controller->Resume(); | 460 controller->Resume(); |
| 458 } | 461 } |
| 459 | 462 |
| 460 bool MojoAsyncResourceHandler::CopyReadDataToDataPipe(bool* defer) { | 463 bool MojoAsyncResourceHandler::CopyReadDataToDataPipe(bool* defer) { |
| 461 while (buffer_bytes_read_ > 0) { | 464 while (buffer_bytes_read_ > 0) { |
| 462 scoped_refptr<net::IOBufferWithSize> dest; | 465 scoped_refptr<net::IOBufferWithSize> dest; |
| 463 if (!AllocateWriterIOBuffer(&dest, defer)) | 466 if (!AllocateWriterIOBuffer(&dest, defer)) |
| 464 return false; | 467 return false; |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 base::Bind(&MojoAsyncResourceHandler::OnUploadProgressACK, | 597 base::Bind(&MojoAsyncResourceHandler::OnUploadProgressACK, |
| 595 weak_factory_.GetWeakPtr())); | 598 weak_factory_.GetWeakPtr())); |
| 596 } | 599 } |
| 597 | 600 |
| 598 void MojoAsyncResourceHandler::OnUploadProgressACK() { | 601 void MojoAsyncResourceHandler::OnUploadProgressACK() { |
| 599 if (upload_progress_tracker_) | 602 if (upload_progress_tracker_) |
| 600 upload_progress_tracker_->OnAckReceived(); | 603 upload_progress_tracker_->OnAckReceived(); |
| 601 } | 604 } |
| 602 | 605 |
| 603 } // namespace content | 606 } // namespace content |
| OLD | NEW |