Chromium Code Reviews| Index: content/browser/loader/resource_loader.cc |
| diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc |
| index 63195120388f9192f002504600611ac05d3dfe73..9ed51a38cbe6697657574f9a69b81ce611c362e7 100644 |
| --- a/content/browser/loader/resource_loader.cc |
| +++ b/content/browser/loader/resource_loader.cc |
| @@ -6,6 +6,7 @@ |
| #include "base/command_line.h" |
| #include "base/message_loop.h" |
| +#include "base/metrics/histogram.h" |
| #include "base/time.h" |
| #include "content/browser/child_process_security_policy_impl.h" |
| #include "content/browser/loader/doomed_resource_handler.h" |
| @@ -213,6 +214,7 @@ void ResourceLoader::Init(scoped_ptr<net::URLRequest> request, |
| delegate_ = delegate; |
| last_upload_position_ = 0; |
| waiting_for_upload_progress_ack_ = false; |
| + compute_read_deferral_histogram_ = false; |
| is_transferring_ = false; |
| client_cert_store_ = client_cert_store.Pass(); |
| @@ -362,8 +364,11 @@ void ResourceLoader::OnResponseStarted(net::URLRequest* unused) { |
| CompleteResponseStarted(); |
| - if (is_deferred()) |
| + if (is_deferred()) { |
| + compute_read_deferral_histogram_ = true; |
|
pasko
2013/05/21 16:37:51
I think reflecting the state rather than intention
James Simonsen
2013/08/01 19:17:40
I don't think you need this bool at all. Just chec
clamy
2013/08/05 14:33:44
Done.
|
| + deferral_time_ = base::TimeTicks::Now(); |
|
pasko
2013/05/21 16:37:51
this would sound more logical with the name respon
|
| return; |
| + } |
| if (request_->status().is_success()) { |
| StartReading(false); // Read the first chunk. |
| @@ -585,6 +590,11 @@ void ResourceLoader::StartReading(bool is_continuation) { |
| void ResourceLoader::ResumeReading() { |
| DCHECK(!is_deferred()); |
| + if (compute_read_deferral_histogram_) { |
| + compute_read_deferral_histogram_ = false; |
| + UMA_HISTOGRAM_TIMES("Net.ResourceLoader.ReadDeferral", |
|
pasko
2013/05/21 16:37:51
please also add a pairing change in:
tools/metrics
|
| + base::TimeTicks::Now() - deferral_time_); |
| + } |
| if (request_->status().is_success()) { |
| StartReading(false); // Read the next chunk (OK to complete synchronously). |
| } else { |