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

Side by Side Diff: content/browser/loader/mojo_async_resource_handler.cc

Issue 2835123005: Send the decoded size when response completed and stop summing in ResourceLoader::DidReceiveData() (Closed)
Patch Set: Created 3 years, 8 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 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
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
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
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
OLDNEW
« no previous file with comments | « content/browser/loader/mojo_async_resource_handler.h ('k') | content/child/resource_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698