| 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 "chrome/renderer/page_load_histograms.h" | 5 #include "chrome/renderer/page_load_histograms.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 416 "PLT.Abandoned", "Prerender"), | 416 "PLT.Abandoned", "Prerender"), |
| 417 abandoned_page ? 1 : 0, 2); | 417 abandoned_page ? 1 : 0, 2); |
| 418 PLT_HISTOGRAM(base::FieldTrial::MakeName( | 418 PLT_HISTOGRAM(base::FieldTrial::MakeName( |
| 419 "PLT.BeginToFinishDoc", "Prerender"), | 419 "PLT.BeginToFinishDoc", "Prerender"), |
| 420 begin_to_finish_doc); | 420 begin_to_finish_doc); |
| 421 PLT_HISTOGRAM(base::FieldTrial::MakeName( | 421 PLT_HISTOGRAM(base::FieldTrial::MakeName( |
| 422 "PLT.BeginToFinish", "Prerender"), | 422 "PLT.BeginToFinish", "Prerender"), |
| 423 begin_to_finish_all_loads); | 423 begin_to_finish_all_loads); |
| 424 } | 424 } |
| 425 | 425 |
| 426 // Histograms to determine effect of idle socket timeout. | |
| 427 static const bool use_idle_socket_timeout_histogram = | |
| 428 base::FieldTrialList::TrialExists("IdleSktToImpact"); | |
| 429 if (use_idle_socket_timeout_histogram) { | |
| 430 UMA_HISTOGRAM_ENUMERATION( | |
| 431 base::FieldTrial::MakeName("PLT.Abandoned", "IdleSktToImpact"), | |
| 432 abandoned_page ? 1 : 0, 2); | |
| 433 switch (load_type) { | |
| 434 case DocumentState::NORMAL_LOAD: | |
| 435 PLT_HISTOGRAM(base::FieldTrial::MakeName( | |
| 436 "PLT.BeginToFinish_NormalLoad", "IdleSktToImpact"), | |
| 437 begin_to_finish_all_loads); | |
| 438 break; | |
| 439 case DocumentState::LINK_LOAD_NORMAL: | |
| 440 PLT_HISTOGRAM(base::FieldTrial::MakeName( | |
| 441 "PLT.BeginToFinish_LinkLoadNormal", "IdleSktToImpact"), | |
| 442 begin_to_finish_all_loads); | |
| 443 break; | |
| 444 case DocumentState::LINK_LOAD_RELOAD: | |
| 445 PLT_HISTOGRAM(base::FieldTrial::MakeName( | |
| 446 "PLT.BeginToFinish_LinkLoadReload", "IdleSktToImpact"), | |
| 447 begin_to_finish_all_loads); | |
| 448 break; | |
| 449 case DocumentState::LINK_LOAD_CACHE_STALE_OK: | |
| 450 PLT_HISTOGRAM(base::FieldTrial::MakeName( | |
| 451 "PLT.BeginToFinish_LinkLoadStaleOk", "IdleSktToImpact"), | |
| 452 begin_to_finish_all_loads); | |
| 453 break; | |
| 454 default: | |
| 455 break; | |
| 456 } | |
| 457 } | |
| 458 | |
| 459 // Histograms to determine if SDCH has an impact. | 426 // Histograms to determine if SDCH has an impact. |
| 460 // TODO(jar): Consider removing per-link load types and the enumeration. | 427 // TODO(jar): Consider removing per-link load types and the enumeration. |
| 461 static const bool use_sdch_histogram = | 428 static const bool use_sdch_histogram = |
| 462 base::FieldTrialList::TrialExists("GlobalSdch"); | 429 base::FieldTrialList::TrialExists("GlobalSdch"); |
| 463 if (use_sdch_histogram) { | 430 if (use_sdch_histogram) { |
| 464 UMA_HISTOGRAM_ENUMERATION( | 431 UMA_HISTOGRAM_ENUMERATION( |
| 465 base::FieldTrial::MakeName("PLT.LoadType", "GlobalSdch"), | 432 base::FieldTrial::MakeName("PLT.LoadType", "GlobalSdch"), |
| 466 load_type, DocumentState::kLoadTypeMax); | 433 load_type, DocumentState::kLoadTypeMax); |
| 467 switch (load_type) { | 434 switch (load_type) { |
| 468 case DocumentState::NORMAL_LOAD: | 435 case DocumentState::NORMAL_LOAD: |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 | 854 |
| 888 DCHECK(document_state); | 855 DCHECK(document_state); |
| 889 DCHECK(ds); | 856 DCHECK(ds); |
| 890 GURL url(ds->request().url()); | 857 GURL url(ds->request().url()); |
| 891 Time start = document_state->start_load_time(); | 858 Time start = document_state->start_load_time(); |
| 892 Time finish = document_state->finish_load_time(); | 859 Time finish = document_state->finish_load_time(); |
| 893 // TODO(mbelshe): should we log more stats? | 860 // TODO(mbelshe): should we log more stats? |
| 894 VLOG(1) << "PLT: " << (finish - start).InMilliseconds() << "ms " | 861 VLOG(1) << "PLT: " << (finish - start).InMilliseconds() << "ms " |
| 895 << url.spec(); | 862 << url.spec(); |
| 896 } | 863 } |
| OLD | NEW |